개요 백엔드에서의 통신 방법은 요청에 대해 즉시 응답하는 동기식 통신이 일반적이지만, 비동기 통신 또한 백엔드 아키텍쳐에서 중요하다고 말할 수 있다. 갑작스럽게 요청이 집중되는 명절 기차표 예매, 대학교 수강신청 등이 비동기 통신이 요구되는 대표적인 사용 사례라고 볼 수 있다. (이를 동기식으로 처리하면 백엔드와 데이터베이스에 엄청난 부하가 발생한다.)RabbitMQ는 AMQP(플랫폼 독립적인 비동기 메시징을 다룬 프로토콜)을 준수하여 제작된 메시지 브로커이다. 설치가 쉽고, 기능이 직관적인데다 성능이 뛰어나기 때문에 현재 비동기 메시징에 있어서는 광범위하게 사용되고 있다. 이번 글에서는 Spring Boot에서 RabbitMQ 사용 방법을 소개하고자 한다. AMQP 통신 원리 AMQP에서는 브로커의 양..
개요 로그는 매우 중요하다. 나는 감히 로그가 애플리케이션의 시작과 끝이라고 단언할 수 있다. 잘 설계된 로그는 빠른 장애 대응 뿐만 아니라 회사 매출과도 직결되는 유의미한 데이터로서도 활용될 수 있다. Spring Boot의 로깅은 기본적으로 SLF4J 인터페이스를 기반으로 하여 Logback을 구현체로 작동하도록 설계되어 있다. 이번 글에서는 여기에 더하여 Kotlin 환경에서 kotlin-logging을 이용하여 로깅 정책을 수립하고 로그 적재의 예를 설명하고자 한다. SLF4J 로그 레벨의 이해 로그 레벨을 명확히 이해하면 개발환경, 운영환경 단위로 어느 수준으로 로그를 남길지를 결정할 수 있다. 로그 레벨은 계층 구조로서 아래와 같다. (상위 계층은 하위 계층을 모두 포함하기 때문에 상위로 갈수..
개요 곰곰히 생각해보면 백엔드 개발에 쏟는 시간의 대부분은 원격지 데이터베이스에 대한 CRUD라고 할 수 있다. RDBMS의 경우 Spring Boot, Spring Data JPA, Querydsl 조합을 이용하면 직관적이고 높은 생산성으로 개발에 집중할 수 있다. (MySQL/MariaDB 연동 방법은 본 블로그의 이 글에 소개한 적이 있다.) 이번 글에서는 MongoDB에도 동일한 기술 스택을 적용하는 방법을 소개하고자 한다. MongoDB 로컬 인스턴스 실행 아래는 예제를 실행하기 위한 목적의 MongoDB 로컬 인스턴스를 실행하는 예이다. (자신이 선호하는 다른 방법으로 실행해도 무방하다.) # MongoDB 도커 컨테이너를 실행 $ docker run -d --name mongodb -p 27..
건강 필수 종합비타민(멀티비타민), 오메가3, 비타민D 추천 음파칫솔 추천, 필립스 소닉케어 헬시화이트 라벤더 HX6721/06 작은 어금니 충치 치료, 이맥스 인레이 시술 후기 다비치안경 이용 후기, 마리아로렌 울템 안경테, 세이코 비구면 초발수코팅 안경렌즈 생필품 생필품 추천 구매 품목 정리 경제 연금저축펀드, IRP 계좌 개설 방법 정리 게임 및 컨텐츠 PES 2021 (위닝일레븐 2021) 스팀 할인 구매, 통합 패치 적용하기 PES 2019 (위닝일레븐 2019) 스팀 할인 구매, 통합 패치 적용하기 PES 2018 (위닝일레븐 2018) 스팀 할인 구매, 러시아 월드컵 통합 패치 적용하기 PES 2017 (위닝일레븐 2017) 스팀 할인 구매, 통합 패치 적용하기 레이스룸, VR로 즐기는 최강..
- Total
- Today
- Yesterday
- Kendo UI
- chrome
- 구동계
- JHipster
- node.js
- jpa
- CentOS
- 평속
- graylog
- 알뜰폰
- jstl
- maven
- MySQL
- Kendo UI Web Grid
- 로드 바이크
- Spring MVC 3
- java
- 로드바이크
- spring
- kotlin
- jsp
- Docker
- 자전거
- Spring Boot
- JavaScript
- DynamoDB
- 태그를 입력해 주세요.
- Tomcat
- bootstrap
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |