비동기 프로그래밍이란? - Async 한 통신 - 실시간성 응답을 필요로 하지 않는 상황에서 사용 (ex. Notification, Email 전송, Push 알림) - Main Thread가 Task를 처리하는 게 아니라 Sub Thread에게 비동기로 처리 해야 되는 Task를 위임하는 행위라고 할 수 있다. 그러면 Main Thread는 알아서 자동으로 처리해줄텐데, Sub Thread는 어떻게 생성하고 관리를 할 수 있을까? 스프링 프레임워크를 기준으로 설명하면, 스프링에서 비동기 프로그래밍을 하기 위해서는 우선, ThreadPool을 정의할 필요가 있다. 왜? 스레드풀을 생성해야할까? 비동기는 앞서 말했듯 Main Thread가 아닌 Sub Thread에서 작업이 진행된다. 자바에서는 Threa..
Profile이 필요한 이유 실제 회사(현업)에서 개발을 할 때엔 N개의 Profile을 설정한다. (ex. local, dev, test, prod 등) Profile을 나누는 이유는 환경별로 설정해야 하는 Property 값들이 다르기 때문이다. 더불어 만약 환경별로 로깅 레벨을 다르게 두고 싶을 때 어떻게 해야할까? 이 때 profile을 사용하여 손쉽게 애플리케이션 동작을 조정할 수 있기에 profile을 알아둘 필요가 있다. Spring Profiles Spring Profiles는 애플리케이션 구성의 일부를 분리하고 특정 환경에서만 사용할 수 있도록 방법을 제공한다. 예를 들어, 개발 환경에서만 사용할 수 있는 Bean이 있고, 프로덕션용 Bean이 있을 수 있다. Profile을 사용하면 특..
들어가기 스프링부트는 ObjecctMapper를 통해서 JSON과 객체 간의 데이터를 변환(직렬화와 비직렬화)한다. 이번엔 직렬화와 비직렬화가 무엇인지 그리고 ObjectMapper에 대해서 알아보고 직접 커스텀해서 사용하고자 한다. 우리가 네트워크 통신을 할 때 어떤 형태의 데이터를 주고 받을까? 네트워크 통신에서 데이터는 최종적으로 바이트 코드 형태로 전송된다. 다른 형태의 데이터(ex. 텍스트, 이미지, 비디오 등)도 결국은 전송을 위해선 바이트 스트림으로 구성되어 전송된다. JSON, XML과 같은 데이터 형식도 결국에는 바이트 스트림으로 변환되어 네트워크를 통해 송수신된다. 그렇기에 네트워크의 각 계층에서 추가되는 패킷들도 결국은 바이트 배열로 구성되어 있다. 이유는 네트워크 하드웨어와 프로토콜..
스웨거란? 스웨거는 API 문서화, 디자인, 빌드, 테스트 및 사용을 위한 오픈 소스 소프트웨어 프레임워크이다. RESTful API 서비스를 개발하고 문서화하는 데 도움을 주는 도구 모음이다. API 문서화: API의 자동화된 문서를 생성하고 표시할 수 있다. 이를 통해 API 엔드포인트, 요청 및 응답 형식, 매개변수, 인증 등을 포함한 API의 세부 정보를 시가적으로 제공한다. 인터랙티브한 API UI: 스웨거 UI를 통해 API를 테스트하고 상호작용할 수 있다. 개발자는 스웨거 UI를 통해 API 엔드포인트를 호출하고 요청을 보내며, 실시간으로 응답을 확인할 수 있다. 코드 생성: API를 기반으로 클라이언트 라이브러리 및 서버 스텁 코드를 자동으로 생성할 수 있다. 이를 통해 클라이언트 애플리케..