최근에 있었던 사내 엔지니어링 데이에서 발표를 하였는데, 상당히 편리하지만 많은 분들이 모르시는 OpenFeign을 준비하였습니다. 그리고 발표하면서 준비했던 내용을 블로그 포스팅에서도 적어두었습니다. 아래의 내용은 Spring Cloud OpenFeign 공식 문서를 기반으로 개인적인 경험을 더해 작성한 내용입니다. 1. OpenFeign 타임아웃(Timeout), 재시도(Retry), 로깅(Logging) 등 설정하기 OpenFeign의 설정은 yml과 Java config 모두로 할 수 있다. 만약 yml과 Java config 모두 존재한다면 YML의 정보가 Java config를 덮어씌우며 우선순위를 가진다. 하지만 이러한 우선순위 설정은 바꿔줄 수 있으며, 심지어 Feign Client 별로 ..
최근에 있었던 사내 엔지니어링 데이에서 발표를 하였는데, 상당히 편리하지만 많은 분들이 모르시는 OpenFeign을 준비하였습니다. 그리고 발표하면서 준비했던 내용을 블로그 포스팅에서도 적어두었습니다. 아래의 내용은 Spring Cloud OpenFeign 공식 문서를 기반으로 개인적인 경험을 더해 작성한 내용입니다. 1. OpenFeign이란? Open Feign 소개 및 역사 [ OpenFeign이란? ] Open Feign은 Netflix에 의해 처음 만들어진 Declarative(선언적인) HTTP Client 도구로써, 외부 API 호출을 쉽게할 수 있도록 도와준다. 여기서 “선언적인” 이란 어노테이션 사용을 의미하는데, Open Feign은 인터페이스에 어노테이션들만 붙여주면 구현이 된다. 이..
이번에는 Integer.valueOf(127) == Integer.valueOf(127)가 True인 이유에 대해서 알아보도록 하겠습니다. 이 글은 Dzone의 글을 번역 및 정리한 내용입니다. 1. 문제 상황 소개 [ 문제 상황 소개 ] 다음과 같은 테스트 코드가 있다고 할 때, 출력 결과를 예상해보도록 하자. @Test void compareInteger() { Integer num1 = 128; System.out.println(num1 == Integer.valueOf(128)); Integer num2 = 127; System.out.println(num2 == Integer.valueOf(127)); System.out.println(Integer.valueOf(127) == Integer.v..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 30장. 데이터베이스는 세부사항이다. [ 서론 ] 아키텍처 관점에서 데이터베이스는 엔티티가 아닌 세부사항이라서 아키텍처의 구성 요소 수준으로 끌어올릴 수 없음 애플리케이션 내부 데이터의 구조는 시스템 아키텍처에서 대단히 중요하지만 데이터베이스는 데이터 모델이 아님 데이터베이스는 소프트웨어이자 유틸리티인 저수준의 세부사항(메커니즘)일 뿐이라서 아키텍트와 관련이 없음 뛰어난 아키텍트라면 저수준의 메커니즘이 시스템 아키텍처를 오염시키는 일을 용납하지 않음 [ 관계형 데이터베이스 ] 관계형 데이터베이스는 데이터를 저장하고 접근하는데 탁월한 기술이지만 결..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 15장. 아키텍처란? [ 서론 ] 소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태임 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트의 의사소통하는 방식에 따라 정해짐 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어짐 “이러한 일을 용이하게 만들기 위해서는 가능한 많은 선택지를, 가능한 오래 남겨두는 전략을 따라야한다.” 소프트웨어 아키텍처의 목표는 시스템을 제대로 동작하도록 만드는것도 중요하지만 시스템의 생명주기를 지원하는 ..