입사한 뒤 오픈 준비하느라 3달간 바빠서 스터디도 주간회고도 못썼다.
길었던 3개월이 끝나고 이제 오픈했으니 다시 회고를 적어본다!
두달만에 회고를 적는만큼 두달간 한 학습 및 개발이 꽤 다양하다.
두달간 한 학습 및 개발
- Neflix OSS
- Spring Cloud Config
- Spring Data Envers
- AWS ECS
- QueryDSL
Neflix OSS
MSA에 대해 막연하게 알기만 하고 해본적은 없었는데, 아키텍쳐가 MSA로 되어있어 우선 MSA에 대해 공부를 했었다.
서비스는 Neflix OSS 중 Eureka, Zuul, Ribbon, Feign, Hystrics 등을 쓰고 있었는데 다음과 같은 역할을 하는 넷플릭스의 오픈소스이다.
간단하게 정리하자면 다음과 같다.
Eureka: 서비스 디스커버리
Zuul: jvm 기반의 라우터, 쉽게말해 api gateway, 서버측 부하 분산이나 일부 필터링을 수행
Ribbon: 부하 분산 및 서비스 디스커버리, 캐싱, 일괄처리, 장애내성과 통합가능
Feign : 선언적인 REST Client
Hystrics : circuit breaker
예전엔 Elastic Beanstalk이 로드 밸런싱이나 Auto Scaling을 알아서 해줬지만, Netflix OSS를 쓰니 하나하나 설정해줘야 해서 이해하는 것 부터가 어려웠다.
무엇보다 내가 지금 Netflix OSS에 대한 이해도가 높지 않다.. 관련된 포스팅을 하며 공부를 해볼까 했는데 이래저래 바쁘다보니 미뤄졌다.
Netflix OSS에 관련된 자료도 적고, 사례도 많이 적었다. 관련된 세미나나 자료가 좀 더 늘었음 좋겠다.
Spring Cloud Config
MSA에선 모든 서비스의 설정을 관리하는 환경 설정 중앙 관리 서버가 필요하다.
Spring Cloud Config는 서비스의 모든 환경설정 속성 정보를 저장하고, 조회하고 관리할 수 있게 해주는 외부화된 환경설정 서버다.
이 cloud config 서버를 만들었는데, 구현자체는 어렵지 않았지만 자료가 정말 적어 커스텀하게 만드는게 정말 굉장히 어려웠었다.
특히 서비스 디스커버리에 대해 의존성이 생길것이냐, 서비스 디스커버리가 config 서버에 의존성이 생기게 할 것이냐는 문제가 있었는데, 처음엔 이해를 못해서 데드락 같은 상황이 벌어지기도 했다.
cloud config 에 관련된 포스팅은 조만간 작성할 예정이다.
Spring Data Envers
사내 서비스들에 적용하기 위해 공부했었다.
spring data envers 로 데이터 변경 로깅하기 라는 포스팅을 작성했다.
data envers는 여러 장단점이 있지만, 개발자가 백업 테이블을 만드는 노가다를 하지 않아도 된다는 강력한 장점이 있으므로 굉장히 추천하고싶다.
AWS ECS
AWS ECS를 처음 써봤다. 정확힌 회사 서비스가 ECS로 배포되고, 관리되고 있다. 코로나가 아니었다면 컨테이너 소모임에 갔을텐데 아쉽다.
QueryDSL
프로젝트가 QueryDSL을 사용하고 있었기 때문에 입사 초기에 공부했었다.
그때 김영한님의 실전 Querydsl 강의를 다 봤다.
생각보다 어렵지 않았고 별 거 없었다. 쿼리 최적화 부분이 인상깊었다.
JPA + QueryDSL은 정말 최고다. 가끔 좀 답답할 때가 있지만 MyBatis 보단 훨씬 좋다.
xml을 쓰지 않아도 되고, 쿼리를 하나하나 작성하며 관리해야하지 않아도 된다는게 정말 좋다.
테이블간의 관계에 집중하고 객체로 보는점도 자바의 컨셉과 딱 맞는다. 더 이상 MyBatis를 쓸 이유가 없다!
JPA 공부도 같이 했다. JPA 강의 두개를 봤고 책은 자바 ORM 표준 JPA 프로그래밍 과 회사 코드를 보며 학습했다.
다음달에 할 학습
- spring security 강의 수강
- 이펙티브 자바
- 오브젝트 스터디
총평
오픈을 앞두고 급하게 많은 기술을 빨리 배워 빨리 적용해야했는데, 당시엔 힘들었지만 돌이켜보니 짧은시간에 배우고 적용한게 많았다.
아직 해야할 건 많다. 당장 spring security 도 공부해야하고 얕게 공부한 것들을 좀 더 심도있게 공부해야하지만, 꾸준히 공부한다면 내년즈음엔 나름대로 잘하고 있지 않을까 싶다.