본문 바로가기
728x90

Spring19

[Spring] HttpRequest부터 HttpResponse까지 동작 과정 어느 분의 기술 블로그를 보게 되었는데 글 제목이 클라이언트 요청부터 서버 응답 흐름에 대한 설명이었다. 그때 엇?!! 나는 스프링으로 서버 개발하는데 설명을 제대로 풀어나가지 못할 것 같았다. 프레임워크에 너무 의존한 탓도 있었고 필요한 부분만 구글 검색해서 알아보는 습관이 생활화되었기 때문인 것 같다. 숲을 봐야 하는데 나무만 본 느낌이랄까? 아무튼 내 머릿속을 정리할 겸 기억할 겸 공부할 겸 기록장에 정리하는 시간을 가져보자. 출발지는 클라이언트 목적지는 Spring Framework의 @RequestMapping Controller Method가 될 것이다 이것이 편도이고 왕복을 하는 과정을 정리해보려고 한다. 출발해보자! 1. 가까운 DNS(Domain Name System) 서버를 통해 호스트.. 2022. 11. 12.
[Spring] Javers로 자바 객체 비교 쉽게 하자! Javers는 자바 객체 비교 라이브러리이며 비교할 두 객체 변수들의 Diff 정보를 간단하게 얻을 수 있다. Javers는 많은 기능들을 지원하는 것 같다 RDB Repository의 Entity의 변경사항을 인지할 수도 있고 직접 두 객체를 compare 함수를 이용하여 비교 정도를 획득할 수도 있다. 이번 포스팅은 Javers의 Compare 함수를 이용하여 두 객체 비교 하는 방법에 대해 기록해보도록 하자. Javers Document 참고 Gradle Dependancies implementation group: 'org.javers', name: 'javers-core', version: '6.7.0' Data Class public class Person { private String nam.. 2022. 11. 11.
[Spring] Amazon MQ (Active MQ) : Virtual Destinations 기능 Active MQ Queue 메시지 전달 방식에 대한 새로운 요구조건이 발생되어 조건을 충족시키기 위해 Active MQ의 Virtual Destinations 기능을 사용해서 해결한 내용을 기록하고자 한다. Message 방식을 Queue로 되어 있었고 Round Robin 방식으로 Consumer가 한 번씩 돌아가며 Message를 받아 처리하고 있는 구조였다. (Active MQ Consumer 운영 포스팅을 참고) Producer와 Consumer는 서버가 분리되어 있지만 같은 제품 서비스이기도 했고 Producer에서 보내는 Message는 같은 제품 서비스의 Consumer 서버만 수신받도록 되어 있었다. Message 수신에 대한 요구 조건 위의 이미지와 같이 A 제품 서비스의 Consume.. 2022. 11. 10.
[Spring] Amazon MQ (Active MQ) : Consumer 운영 ActiveMQ를 적용해 보니 서비스 메시지 성향에 따라 Consumer 운영이 달라져야 한다고 생각됐다. Message 간의 디펜던시 및 영향도가 있나 없나에 따른 운영 전략이 달라진다. Message A : 메시지간의 영향이 없는 메시지 예를 들어 신규로 등록해야 할 상품 정보가 담긴 메시지가 Producer로부터 발행이 되고 Consumer는 메시지를 받아서 DB에 insert만 하는 프로세스라면 메시지간의 영향도가 없으므로 어떤 서버든 Consumer가 받아서 언제 처리가 되든 영향이 없다. 이럴 때는 RoundRobin 방식으로 메시지를 소비하는 게 메시지 처리 퍼포먼스가 좋아진다. MQ RoundRobin 방식 Queue(개발자가 정의한 destination)에 연결 된 Consumer가 3개.. 2022. 11. 10.
300x250