본문 바로가기

Stream4

WebFlux는 무엇이고, 왜 나왔고, 언제 쓰이는가? 어제 Cart API 코드 리팩터링을 마무리하고, 리뷰를 받기 위해 PR을 올렸다. 클린 한 코드로 작성하려고 노력하기 위해 리뷰어님이 주신 의견을 되뇌고, 클린 코드를 작성하기 위한 방법을 구글링을 통해 하루 종일 모니터를 노려보며 클래스 간 책임을 나누어 보았다. 빨리 성장하고 싶다!! 리뷰를 앞두고, 카카오페이를 이용한 도메인 코드들을 리팩터링 하기 앞서, 기존에 외부 API와 통신하기 위해 사용하던 템플릿인 RestTemplate의 대체 여부에 대해 떠올랐다. RestTemplate은 deprecated 되었으므로, WebClient의 사용을 고려해보라는 의견을 받았다. WebClient에 대해 알아보다가 동기/비동기, 블로킹/논블로킹이라는 개념의 정의에 대해 다시 공부하게 되었고, 나아가 Web.. 2022. 8. 31.
2022.05.24 「코드 리팩토링 Ver.2」 주마다 리팩터링 및 기능 추가하는 브랜치를 따 설계하며 프로젝트를 진행 중이다. 이런 식으로 주마다 리팩터링을 하니까 확실히 코드가 깔끔해지는 걸 느낀다. 오늘 아침부터 진행한 코드 리팩토링은 유지보수성을 따지는 것은 물론이거니와 어려운 듯하면서도 새로운 개념을 도입해서 진행하니 나름 보람찼던 리팩터링이었다. 직면했던 문제들을 나열하며 정리를 한번 해보겠다. 인증 & 인가 책임 분리 나는 인증, 인가를 인터셉터로 구현했다. 인증은 토큰 검증, 인가는 에너테이션 및 토큰 검증으로 구현했다. 기존 코드 : 인터셉터의 preHandle 메서드 안에 두 개의 로직이 동시에 들어있다. 토큰 검증 + 에너테이션 검증 => 책임이 많다 -> 유지보수가 어렵다. 해결 : 인터셉터를 나누어 분리했다. @Override .. 2022. 5. 24.
2022.02.24 의 기록 => 공부 관련 1) 모던 자바 스트림(Stream) & 입출력 스트림(IO Stream) 2) 금일 배운 내용 복습 3) 스프링 객체지향 CH2 => 파이널 프로젝트 관련 1) UI 회의 ▶ 문제 정리 1. 스트림 관련 정리 > 문제 : 스트림에서 Map(), flatMap()의 차이? > 정리 : 스트림의 스트림을 반환하는 중간연산과 스트림을 반환하는 중간 연산. 스트림의 형태가 배열인 경우 flatMap이 유용 ▶ 공부 내용 Mybatis mapper 엘리먼트 class 속성 : Interface 기반의 맵퍼 파일의 경로를 속성값으로 설정 ⇒ Interface & XML 파일의 경로는 Java 자료형으로 표현 Interface 맵퍼의 장점 : SqlSession 인스턴스로 SQL 명령을 XML 맵퍼.. 2022. 2. 24.
2022.02.22의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 스트림 2) 자바 리팩토링 3) 금일 배운 내용 복습 4) 스프링 객체지향 책 1단원 => 파이널 프로젝트 관련 1) 화면 설계서 회의 (트레이너 관리 부분) ▶ 문제 정리 1. 익명 객체의 개념 정의가 확실치 않아서 람다식의 이해가 어려웠다. => 익명 객체(클래스)의 개념 확실히 정리 => 일회성의 이벤트이므로 객체에 따로 정의하는 것임. ▶ 공부 내용 JSTL (Java Standard Tag Library) foreach 태그 태그내용을 반복적으로 포함하여 출력하기 위한 태그 var 속성 : 스코프 객체에 저장된 속성값 begin 속성 : 스코프 객체에 저장될 시작값(Integer)을 속성값으로 설정 end 속성 : 스코프 객체에 저장될 종료값.. 2022. 2. 22.
반응형