반응형

전체보기 156

[Spring Boot] FeignClient와 ExceptionHandler | FeignClient의 응답값 그대로 반환하기

목차 프로젝트를 진행하다보니 FeignClient로 다른 서비스를 호출하는 일이 생겼는데, 자식서비스가 부모서비스에 FeignClient로 API호출 시 부모서비스에서 Exception이 터지면 그대로 자식서비스도 예외가 발생한다. 에러 응답포맷이 정해져있기 때문에 부모서비스의 에러메시지를 자식서비스에서도 그대로 반환해주면 어떨까?! 하고 생각했다 기존코드 application.yml feign 설정 부분만 가지고왔다 ... feign: parent-api: url: http://localhost:8081 httpclient: follow-redirects: true ... ExceptionController.java CustomException이 발생하면 해당 handler에서 처리하게된다 @RestC..

🌿 Spring 2022.07.29

Factory Method Pattern | 팩토리 메서드 패턴

목차 어떤 상황에서 쓰일까? 하얀배는 하얀색깔에, 하얀마크에, whiteship이라는 이름을 가지고있다. 검정배는 검정색깔에, 검정마크에, blackship이라는 이름을 가지고있다. 노란배는 하얀배, 검정배와 동일한 작업에 내용물만 바꾸어 만들 수 있다. 배를 만드는 코드가 if문으로 분기처리 되어있으면 초록배를 만들어야할 경우 분기처리가 4개나 이루어지게되어 깔끔한 코드가 아닐것이고, 계속 코드를 수정해야하니 확장에 유연하지도 않게된다. 배의 공통적인 color, mark, name을 지정할 수 있도록 팩토리를 지정하고, 팩토리로부터 하얀배, 검정배, 노란배를 만들 수 있도록 하면 어떨까?? 팩토리 메서드 패턴이란? 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정하게하는 패턴이다 장점 - 확장에 ..

🎰 Design Pattern 2022.07.29

Singleton pattern | 싱글톤패턴

목차 어떤 상황에서 쓰일까? 시스템 런타임, 환경셋팅정보 등의 객체가 여러개 생성되면 어떻게 될까?? 여기저기서 각기 다른 셋팅정보를 가지고 있을 수 있게되고, 동일한 설정값이라면 중복된 만큼 메모리를 차지하고 있게된다. 셋팅정보의 인스턴스는 오직 하나만 존재해야한다. 이럴때 사용되는 것이 싱글톤 패턴이다. 싱글톤 패턴이란? 인스턴스를 오직 하나만 제공하는 클래스를 말한다 하나의 인스턴스를 여러 곳에서 공유하여 사용한다. (공유하는 만큼 동시성 문제도 고려해야한다!) 장점 - new가 아닌 static한 인스턴스를 생성하여 고정된 메모리 영역을 가지게된다. 메모리 낭비를 방지할 수 있다 - 싱글톤 인스턴스는 전역으로 만들어지기 때문에, 여러 곳에서 데이터를 공유할 수 있다. - 인스턴스의 2번째 접근부터..

🎰 Design Pattern 2022.07.29

코로나 양성 확진 후기

22년 7월 8일 (금) 아침에 일어났더니 몸 상태가 이상했다 분명 어제까지만 해도 멀쩡했고 체하거나, 배탈이 난게 아닌데... 일어나자마자 머리가 어지럽고 지끈거리고, 열이 나는 것 같고, 몸살난 것 처럼 관절 마디마디가 아팠다 ㅜ (이상하게 체온계는 36.5도 정상체온이였다. 손으로 이마를 만져봤을 때는 분명 평소보다 체온이 높은데...) 출근 전에 혹시..?! 싶어서 자가키트도 해봤는데 음성으로 나왔다 일단 출근해야하니.. 지하철에서 좀 자면 나아지겠지 하고 출근했다 출근하는 내내.. 내 발걸음이 지금 어디로 향하고 있는지, 지금이 몇 호선인지 헷갈릴 정도로 정신이 안차려지고 으어어어 좀비처럼 회사 도착했는데, 정신도 안차려지고 일도 못할 것 같아서 바로 연차 쓰고 나왔다 아빠한테 데리러오라구 전화..

윈도우10 화면 창 색깔이 이상하게 나올 때 해결방법

어느날부터 갑자기 화면이 이상하게 나왔다 왼쪽 크롬창의 색은 정상적으로 나오는데 오른쪽 도커 열었을 때 창 색깔이 이상했다.. 근데 색이 전부 다 이상하게 나오는 것도 아니고.. 특정 창에 대해서만 색이 저렇게 나왔다 (아예 캡쳐할때도 색이 저따구로 나오는게 좀 이상하다) 근데 또 이상한건 다른 모니터에서는 색이 잘 나온다는 사실..!! 너무 이상해서 이것저것 건들여봤다 제어판 > 색관리 듀얼모니터 중에 색이 잘 나오는 모니터는 왼쪽처럼 설정되어있었고, 색이 이상하게 나오는 모니터는 오른쪽처럼 설정되어있었다 음??? 아 설정이 다르다 근데 난 건든 기억이없는데...... ....왜..?ㅜㅜ 이 장치에 내 설정 사용을 해제하니 ICC프로필도 바뀌었다 다시 정상적으로 색깔이 잘 나온다! 왜 저렇게 설정이 바..

🧱뚝딱수리 2022.07.17

모던 자바 인 액션 - 스트림 활용

목차 필터링 Predicate 필터링 filter는 프레디케이트(boolean을 반환하는 함수)를 인수로 받아서 true로 반환되는 요소를 모은 스트림을 반환한다 List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList()); Distict 필터링 distinct는 객체를 hashCode, equals로 비교하여 고유한 요소를 모은 스트림을 반환한다 List numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4); numbers.stream() .filter(i -> i % 2 == 0) .distinct() .forEach(System.out::println); 슬라이싱 칼로리 순으로 정렬된 ..

☕ Java 2022.07.16

모던 자바 인 액션 - Stream(스트림)이란?, 스트림특징, 내부반복/외부반복, 게으른중간연산

목차 Stream 이란? SELECT name FROM dishes WHERE calorie < 400 위 SQL문은 칼로리가 낮은 요리명을 선택하라는 질의이다. SQL에서는 요리의 속성(칼로리)를 이용하여 어떻게 필터링할 것인지 개발자가 직접 구현하지 않아도 된다. 하지만 자바에서 필터링하려면 반복문을 돌려서 처리해야한다. 요소가 많은 컬렉션이라면 어떻게할까?? 똑같이 반복문으로 돌려서 처리하면 굉장히 많은 시간이 필요할 것이고, 작업을 병렬로 처리해야 성능을 높일 수 있을 것이다. 저칼로리로 요리를 필터링하고, 칼로리 순서대로 요리를 정렬하는 코드를 작성해보자. //1. 저칼로리 요리 필터링 //2. 칼로리로 요리 정렬 ---------------------------------------------..

☕ Java 2022.07.11

모던 자바 인 액션 - 람다표현식, 함수형인터페이스

목차 기억하자. 람다는 기술적으로 자바8 이전의 자바로 할 수 없었던 일을 제공하는 것이 아니다. 람다 표현식 람다 표현식은 메서드로 전달할 수 있는 익명함수를 단순화한 것이다. 람다 표현식은 이름은 없지만, 파라미터, 바디, return값, 예외를 가질 수 있다. //기존의 익명클래스를 이용한 정렬 Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); //⭐ } }; //람다를 이용한 정렬 Comparator byWeight = (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.ge..

☕ Java 2022.07.10
반응형