[F-lab] 멘토링 8주차 회고

devdo·2022년 5월 26일
0

회고록

목록 보기
8/23
post-thumbnail

📌 7주차 이후 질문 및 정리

1) @Configuration vs @Component

configuration + bean : 프록시 빈 만들어줌
component + bean:  라이트모드 빈을 만들어줌 

2) 문제접근법 - 제너럴 문서로 (위 @Configuration vs @Component 예시로 스프링 공식문서부터)

3) TDD 이거 정말 실제 현업에서는?

  • TDD란? 테스트 주도 개발(Test-Driven Development)
    TestCode를 먼저 작성하는 개발 방법론

    1) 깔끔한 코드를 작성할 수 있다.
    2) 장기적으로 개발 비용을 절감할 수 있다.
    3) 개발이 끝나면 테스트 코드를 작성하는 것은 매우 귀찮다. 실패 케이스면 더욱 그렇다.
    4) 실패 테스트부터 작성해야 한다
    5) 즉, 순차적으로 실패하는 테스트를 먼저 작성하고, 오직 테스트가 실패할 경우에만 새로운 코드를 작성해야 한다. 그리고 중복된 코드가 있으면 제거를 하는 것이다.

  • 관련 블로그 : https://mangkyu.tistory.com/182

3) 싱글톤 빈은 쓰레드 세이프(Thrad-safe)하지 않다! -> 무상태로 설계하라는 데 어떻게?


📌 전주 개인 공부한 내용들

1) 오브젝트 책 의존성 역전 사례 보고 DI, DIP 개념 다시 정리

2) 알고리즘 테스트 공부

3) 스프링 토비 책 -> 어떤 책인지 다시 한번 skimming

4) 도커 docker-compose로 springboot + Mysql + Nginx 추가 실습
: https://velog.io/@mooh2jj/docker-compose로-SprongBoot-MySql-DB에-Nginx-추가

5) 젠킨스 파이프라인 & Git Credentials & Github webhook 설정 예습
: https://velog.io/@mooh2jj/Jenkins-pipeline-Docker-SpringBoot프로젝트-배포하기
: https://velog.io/@mooh2jj/Jenkins-Git-webhook-설정


📌 멘토링

1) 코딩테스트 정말 어떻게 생각하는지에 대한 멘토님과의 진솔한 대화
나 : 개인적으로 한국의 코딩테스트는 필터링용 인적성 검사 수준이 아닌지 의심.
멘토님 : 알고리즘에 대한 분석 능력을 확인하기 위함이니 열심히 공부하면 좋음. 그리고 미국의 대형 서비스 회사에서도 코딩면접을 보기 때문에 의미없는 과정은 아님.

2) 단위테스트, 통합테스트 그리고 UT

3) spring AOP 기능

Load time weaving
compile time weaving

: 특정한 람수 호출 전이나 후에 뭔가 공통적인 처리가 필요하다면? AOP라 보면 된다.
ex. 로깅, 트랜잭션, 인증

4) AOP 프록시란?
대상 오브젝트에 Aspect를 적용할 겨우 Advice를 덧붙이기 위해 하는 작업.

  • 프록시 request scope도 있다.
    비싼작업. JVM 메모리 할당 GC하는 동안 메모리 Locking으로 프로세스가 멈추면 레이턴시가 길어짐.

5) ThreadLocal => 로깅할 때! // 조심해야될 작업!

개념 숙지가 부족. AOP 절대로 계륵?같은 개념이 아님, Transaction, 로깅 대표적으로 많이 사용하는 기능도 AOP한 기능임.


📌 느낀점

멘토님과는 <스프링 입문> 책으로 기술면접식으로 질문과 답변이 오갔다. 역시나 힘들었다.

1) 다시 DI, DIP 점검 이번에는 잘 말한 것 같다.

2) 스프링 기본 개념 중에 흔들리는 것들 질문 @Configuration vs @Component
이 때 멘토님의 공식문서를 먼저 확인하라는 말이 인상깊었다. 매번 문제를 해결할 때 블로그 위주로 서칭해서 해결해 왔었는데 공식문서부터 보라는 조언을 해주셨다.

3) 잠시 김영한 강의 들은 내용 중 어려운 개념에 대해서 질문을 드렸다. singleton bean, ThradLocal, AOP, Proxy, CGLIB 등 스프링 공부만 해도 끝이 없구나 느꼇다. 멘토님의 설명에도 사실 이해가 잘 안됐다. 이건 따로 내가 정리를 해봐야겠다.

4) 단위테스트, 통합테스트 얘기를 하셨다. TDD는 기본적으로 회사에서 강제적인 부분은 없다고 말한다. 적어도 멘토님이 다니는 회사에서는. 실용적인 관점도 엿볼 수 있었다. 그러난 기본적으로 TestCode의 중요성은 강조해주었다.

5) 프로젝트 진행이 이제 얼마 남지 않다고 얘기하심. 이론 공부가 3개월 정도인데 거의 다 지났기 때문에 다음 멘토링 땐 프로젝트 주제를 선정하라고 하심. 빡센 한주가 될 거라 예상. 🤔


📌 해야 할 것

  • 스프링 AOP, proxy 개념 정리하기
  • 코딩 테스트 - 자바 인프런 강의
  • 멘토님께서 질문하셨던 내용들 블로그 정리
  • 스터디 모임 - 젠킨스, 도커, AWS EC2 인스턴스에 배포하기 발표 준비
  • 운동 PT - 어깨 스트레칭 + 헬스 2번 이상 + 푸쉬업, 광배근 운동
profile
배운 것을 기록합니다.

0개의 댓글