프로젝트
-
Spring WebSocket 활용프로젝트/WebSocket 2023. 6. 12. 00:01
개요 - WebSocket connect, disconnect시 클라이언트에게 알리기 - 서버에서 클라이언트에 disconnect 요청 보내기 - 개발테스트를 위한 http로 메시지 발송 개발자도구와 SocketJS http://host:port/myApp/myEndpoint/{server-id}/{session-id}/{transport} 소켓을 연결하면 다음과 같은 url로 연동됩니다. server-id는 클러스터 환경에서 요청을 라우팅 하기 위해 사용 session_id는 SockJS 세션에 속하는 HTTP 요청을 연관시킴 transport는 전송 타입을 가리킴 (websocket, xhr-streaming, xhr-polling) 예를들어 제가한 튜토리얼의 개발자도구 -> Network -> ws..
-
Spring Websocket 이론과 간단한 구현프로젝트/WebSocket 2023. 6. 11. 00:01
개요 https://spring.io/guides/gs/messaging-stomp-websocket/ Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io QR 로그인을 구현하기 전, 브라우저와 서버 간 메시지를 주고받는 웹소켓의 Hello, World 애플리케이션을 만드는 과정을 수행해 봅니다. 웹소켓은 TCP 위에 있는 가벼운 계층이며 WebSocket 위에서 동작하는 STOMP라는 프로토콜을 활용합니다. WebSocket이란? HTTP프로토콜과 호환되며, 실시간 양뱡향 통신을 제공하기 위한 프로토콜입니다. 웹 초창기의..
-
RedisTemplate으로 Set 자료구조 사용하기프로젝트/선착순 쿠폰 발급 시스템 2023. 6. 9. 00:01
개요 선착순 쿠폰 발급을 위해 이벤트 쿠폰을 Set에 저장하고 사용자에게 발급할 때는 pop 하여서 발급해 주자 RedisTemplate 등록 @Bean fun redisTemplate(): RedisTemplate { val objectMapper = ObjectMapper() objectMapper.registerModule(JavaTimeModule()) // Java 8 시간 타입 처리 모듈 등록 objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) // 날짜 포맷 설정 val serializer = Jackson2JsonRedisSerializer(CouponRedisEntity::class.java) serializer.se..
-
Rest API로 Apple 로그인을 구현프로젝트/WebRTC 화상통화 프로젝트 2023. 6. 6. 00:01
[1] Sign In with Apple REST API 문서 정리 [2] Rest API로 Apple 로그인 구현 프런트엔드에서 사용자의 Apple 로그인 수행 후 code 받아오기 https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server Request an authorization to the Sign in with Apple server | Apple Developer Documentation Add a Sign in with Apple authorization flow to apps and web services that can’t direct..
-
QR코드 인증방식 원리프로젝트/WebSocket 2023. 6. 2. 00:01
QR코드란? QR 코드는 Quck Response Code의 약자로 컴퓨터가 만든 흑백 격자무늬 패턴 코드입니다. 이 코드를 통해 정보를 나타낼 수 있는 매트릭스 형태의 이차원 코드입니다. 각 사각형 또는 점은 문자, 숫자 또는 기호와 같은 정보를 나타냅니다. QR 코드는 어디에 사용될까? QR 코드는 웹사이트 URL, 쿠폰, 제품 코드 또는 연락처 정보와 같은 정보를 인코딩하는 데 자주 사용됩니다. 내가 하려고 하는 것 앱을 이용해 QR로그인을 생성하고 TV에서 편리하게 로그인할 수 있도록 한다. 1. TV에서 로그인 시도 시, QR코드를 제공한다. 2.앱에서 QR코드 인식 시, 계정 정보를 TV로 전달한다. 3. TV에서 로그인이 완료된다. QR 코드의 인증방식 1. 사용자가 앱에 로그인한다. 2. ..
-
Spring Event 사용하기프로젝트/선착순 쿠폰 발급 시스템 2023. 5. 30. 00:01
개요 이벤트를 사용하는 이유는 무엇일까요? 개인적으로 생각했을 때 가장 주된 이유는 서비스 간의 의존성을 줄이기 위해서입니다. 서비스 의존성을 줄이기 예를 들어 회원가입으로 보았을 때, 회원가입을 수행하고 사용자에게 회원가입 성공 알림을 전송하거나, 신규가입 쿠폰을 할당한다고 가정해 보겠습니다. 이때 알림에서 장애가 발생하거나, 신규가입 쿠폰할당 과정에서 오류가 난다면 회원가입도 같이 실패하게 됩니다. 하지만 회원가입은 성공하였는데 회원가입이 끝나고 수행되는 그 외의 작업들로 회원가입이 실패하면 안 됩니다. 이벤트 발행하기 @Service class SignUpService( private val memberRepository: MemberRepository, private val applicationE..
-
Kotlin JPA Update Query 작성하기프로젝트/선착순 쿠폰 발급 시스템 2023. 5. 28. 00:01
UserJpaRepositry @Repository interface UserJpaRepository : JpaRepository{ @Modifying @Query("update UserJpaEntity u set u.representationMobileNumber = :mobileNumber where u.userId = :userId") fun updateMobileNumber(mobileNumber: String, userId: String): Int } @Modifying과 @Query를 사용하여 update쿼리를 작성해 주었습니다. userId와 mobileNumber를 인자로 받아 userId가 동일한 row의 representationMobileNumber를 변경해 주는 역할을 수행합니다. ..
-
Kotlin JPA 양방향 연관관계 매핑프로젝트/선착순 쿠폰 발급 시스템 2023. 5. 25. 00:01
연관관계란? 객체와 관계형 데이터베이스의 테이블의 불일치를 해결하기 위해 테이블 간의 연관관계를 매핑할 수 있습니다. 데이터베이스와 객체와의 다른점 데이터베이스는 외래키 하나만으로 양쪽 테이블 조인이 어디에서나 가능합니다. 하지만 객체는 참조용 필드가 있는 객체만 다른 객체를 참조하는 것이 가능합니다. 예를 들어 Account에 Member 프로퍼티가 존재하면 Account에서 Member를 조회할 수 있습니다. JPA를 사용하여 데이터베이스와 패러다임을 맞추기 위해서 객체는 단방향 연관 관계를 가질지, 양방향 연관 관계를 가질지 선택해야 합니다. 양방향과 단방향 양방향은 기본적으로 단방향 참조 2개로 구성됩니다. 처음에는 외래키를 가진 쪽(연관관계의 주인)에 단방향으로 연관관계를 매핑하고 필요시에 양방..