728x90 전체 글61 [Spring Cloud] Service Discovery 몇 달 전 회사 팀원들끼리 진행하는 스터디에서 서비스 디스커버리에 대한 공유 글을 보고 MSA에 관심이 생겨 인프런을 통해 강의를 수강하고 있다. 앞으로 강의 내용을 파트별로 정리할 예정인데, 오늘은 MSA의 구성 요소 중 Service Discovery에 대한 내용을 정리하고자 한다. MicroService Architecture 서비스 디스커버리를 이해하기 위해서는 흔히 줄여서 MSA라고 불리는 마이크로서비스 아키텍처에 대해 알아야 한다. 본 글은 MSA 자체에 대한 글이 아니기 때문에 MSA를 구성하는데 있어서 Service Discovery가 왜 있어야 하고 어떠한 역할을 하는지 정도만 파악할 수 있도록 정리하려고 한다. MSA와 비교되는 대상으로 우리가 현재 회사에서 어플리케이션을 개발하는 방식.. 2023. 1. 22. Jackson 라이브러리의 직렬화/역직렬화 api 개발을 하다보면 자바 객체를 json으로 직렬화 하고 json으로 들어온 요청을 자바 객체로 역직렬화 하는 일이 빈번하게 일어난다. 서버에서 데이터를 처리해 Dto에 담아 클라이언트로 응답하면 내부적으로 Jackson의 ObjectMapper를 이용하여 자바 객체를 json으로 직렬화 하는데, 자바 객체에는 없던 필드가 요청에 담겨 리턴되는 경우가 생길 수 있다. 이번 포스트에서는 이러한 현상의 원인을 제공하는 Jackson 라이브러리의 직렬화/역직렬화에 대해 정리한다. 예시 public class User { public String name; public Integer age; public User(String name, Integer age) { this.name = name; this.ag.. 2022. 9. 21. 제네릭을 이용한 마이바티스 쿼리 유틸 만들어보기 개요 최근 예외 처리가 중요한 발송 관련 부분을 개발하고있다(발송 외에 다른 모든 도메인에서도 예외 처리가 중요하긴 하다). 실수를 줄이기 위해 다른 서비스의 발송 코드도 많이 참고하고 있는데, 코드 중간중간 DB 처리가 의도한 대로 처리되지 않을 경우 exception을 던져 처리하는 부분이 눈에 많이 보였다. 위 사진에서는 예외 처리를 하기 위해 modify, insert 등의 쿼리 결과를 result 변수에 받고 해당 값을 그때그때 비교하여 예외를 던진다. 예외 처리를 위해 꼭 필요한 부분이지만 그것을 위해 매번 변수에 쿼리 결과를 할당하고 비교문이 들어가는것이 코드 이해를 어렵게 하는것 같아서 관련 유틸을 만들어보았다. 걸림돌 아래는 쿼리를 수행하고, 그 쿼리의 결과를 확인한 후 예외 상황이라면 .. 2022. 9. 13. GC 개념 및 동작 원리 지난 글에서 JVM의 구조에 대해 정리해 보았는데 JVM의 구성 요소중 GC에 대해서는 자세한 설명이 빠져있었다. GC만 정리하더라도 글 한 개의 분량이 될 것 같아서 이번 글에 이어서 GC에 대해 정리해본다. Garbage Collection 이란 학부생 때 C언어를 이용한 과제를 진행했을 때 malloc() 함수 사용 후 free() 함수를 실행해서 메모리를 해제해준 기억이 있다. 그 다음 학기에 자바 강의를 수강했는데 자바에서는 별도로 메모리를 관리하지 않아도 되고, GC가 알아서 메모리를 관리해준다고 배웠던 기억이 남아있다. 지난 JVM 정리에서 알 수 있듯이 자바를 이용해 개발할 때는 직접 메모리 공간을 할당/반환을 하지 않고, JVM을 통해 할당받고, 반환하게 된다. 이렇게 자바에서는 JVM의.. 2022. 9. 13. 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음