Skip to content

1월 3주차 회고

kimtaehun edited this page Jan 24, 2023 · 22 revisions

요약

엄마와 데이트

쉬면서 읽고 싶었던 아티클 쭉 읽었다...

회고 feat. 지금 잘하고 있는거 맞나?

"함께 자라기"라는 책을 보니 회고는 실패말고 성공도 되돌아보라고 한다.

조직의 레벨 3가지를 이야기하는데, 나는 "Lint Tool" 도입에서 레벨3의 특성을 보여준것 같다.(나도 몰랐다...)

이번주부터는 못한거말고 잘한것도 좀 봐야겠다 싶어서 저번주 회고도 살펴봤다.

저번주는 "나 자신의 특성"을 알게된 한주였다. 개인적으로 "나도 몰랐던 나의 모습"을 찾게 되었다.

주말에 도서관 까페에서 여유롭게 커피한잔 하면서 "알고리즘 스터디" 참여하다가 "스스로 돌아봐야겠다"는 생각이 들었다.

스터디 끝나고 보통 잡답을 하는데, 다른 회사 코테문제 공유하고 미국가는 방법같은걸 이야기하다가 이런 주제가 나왔다.

눈치(?)없는건 원래 알고 있었는데 어떻게 극복할지랑 나의 강점을 알게 되었다.

한 22년 9월부터 23년 1월까지 스터디중인데, 알고리즘 5계월 공부하니 이런것도 알게되는...

저번주는 회고, 여유로운 시간의 중요성을 알게된 것 같고, 앞으로는 이를 이어가야겠다.

되돌아보면 이번주는 이걸 잘 못지켰다.(설날 연휴전에 병원 진료, 예약을 잡느라..ㅎㅎ)

작업내용

함께 자라기 독서 시작

책에 간단한 7가지 질문이 있었다.

"하나라도 틀리면 읽어봐라" 이런 내용을 보고 풀었는데... 깔끔하게 대부분 틀려서 읽기 시작...ㅋㅋ

(F-Lab 시작할때 준 책인데 이제야..ㅋㅋㅋ)

재요청 로직과 RestTemplate 강하게 연결된걸 분리했다.

기존에 재요청 로직인 익명 클래스 초기화라는 독특한 기법으로 구현되어 있었다.

인터넷에 있는 예제를 읽고 "아 이렇게 동작하는 구나"싶어서 그대로 사용했는데...

구석구석 살펴보니 기존에 내가 알고있는 자바 기술과 좀 달랐다.

익명 클래스를 이용해 인스턴스에 프라이빗 메소드를 생성하는 신기한(?) 기술인데...

뭔지 몰라서 쌀대학 강의 자료를 뒤적였다(Rice univ)

@Retryable, @Recover 등의 스프링 어노테이션도 사용해야 했는데, 메소드 접근자가 public이여야 한다는걸 깜빡해서 잠깐 고민했다.

스택오버플로우 메소드 접근자와 스프링 어노테이션

@Retryable 메소드에서 불필요한 과정이 있다고 하는데... 필요한 부분에만 재요청 거는건 어떻게 구현할지 고민중이다.

테스트도 구현하기 조금 까다로웠다.

요청 실패 - 요청 실패 - 요청 성공 이런식의 시나리오를 RestTemplate에서 구현해주어야 하는데...

은근 힘들었다ㅎㅎ, 원하는 빈을 주입하는 방법, 익셉션 발생해도 테스트 진행하기, lombok + Qualifier

구현하면서 timeout 옵션도 슬쩍 추가했다.

ReadTimeout 옵션을 넣으려고 했는데, 메소드에 Connectiontimeout 옵션도 있었다. 둘의 차이

무슨 차이인지 찾아보니 둘 다 필요해서 첨부했다.

@ResponseStatus 어노테이션도 사용했는데 중간에 빠져서 아쉽다. ResponseStatus 사용법

아마 다음 마일스톤에서는 추가될...

아무튼 테스트는 주로 이걸 봤다. Retry 테스트 공식 문서

RFC 8289, CoDel AQM

Active Queue Management의 Controlled Delay에 관한 내용이다.

가변적인 네트워크에서 버퍼 사이즈에 상관없이 동적으로 버퍼를 관리하는 알고리즘인데 눈여겨 보는 중이다.

우리 프로젝트에 적용할만하고 구현도 굉장히 쉬운데 반해, 무려 Bufferbloat 문제를 해결한다.

rfc8289

공통 설정을 common 모듈로 이동하는 중이다

api, worker 모듈에서 공통으로 사용하는 RabbitMQ 설정을 common 모듈로 이동했다. (생성자 바인딩이라는 편리한 기술도 배웠다.)

각각 모듈에 중복으로 존재해서 꽤 곤란했다.

domain 역시 common 모듈로 이동해야 하는데, entity 등의 어노테이션이 붙은 경우/ 않 붙은 경우 2가지를 고려해야해서 살짝 힘들다..😅

커버링 인덱스..?

다른 분의 이력서를 보다가 커버링 인덱스를 알게 되었다.

테코블에도 같은 내용이 소개되어 있어, "이건 해볼만한데?"라는 생각이 들어서 구현해볼 생각이다.

Clone this wiki locally