Library/Backend
-
Lombok Builder, Jackson을 이용하여 Json data 받아오기 (Get Json data using Lombok Builder, Jackson)Library/Backend 2020. 4. 11. 14:48
안녕하세요. 이번 시간에는 Spring 기반 Web application에서 흔히 사용하는 Lombok 및 Jackson을 이용해서, Builder 기반 Json Data를 받는 방법에 대해 간략하게 공유하고자 합니다. 우선 Json data를 받는다는 것은 무엇을 의미할까요? Json data를 받는다는 것은 특정 Data source를 통해 Json으로 된 형태의 Data를 받고, 그 받은 Data를 내 Application에서 정의해놓은 특정 Data class로 인식시키는 것(이를 Deserialize라고 하죠)을 의미합니다. Data source에는 여러가지가 있는데, Web application에서는 흔히 HTTP 기반의 API가 일반적이라고 볼 수 있겠습니다. 그럼 코드를 살펴보도록 하죠. ..
-
Reactive stream을 이용하여 Non blocking 이메일 서비스 구현하기 (Implement Non blocking email service using Reactive stream)Library/Backend 2019. 8. 25. 22:50
안녕하세요. Backend library 첫 게시물로, Reactive stream을 이용하여 Blocking email service를 Non blocking email service로 개선한 사례를 공유해보고자 합니다. 문제의 시작 개인적으로 진행중인 한 프로젝트에서, 이메일 인증 기능이 있는 회원 가입을 구현하고 있었습니다. 폼을 모두 작성하고, 가입 요청하는 단계에서 평균 5초간 지연이 발생했습니다. 5초는 사용자가 느끼기에 굉장히 긴 시간입니다. (버튼을 누르고 5초동안 아무것도 못하고 기다린다고 상상해보세요.) 그래서 반드시 해결해야 하는 문제라 판단하고, 어디가 문제인지 로그를 남기면서 파악해보기 시작했습니다. 그 결과, 회원 가입 과정에서 인증용 이메일을 발송하는 곳에서 병목이 발생한다는 ..