민스씨의 일취일장

3개월 후기 | F-Lab Java Backen 과정 멘토링 본문

Personal Development/F-Lab 자바 백엔드 과정 [진행중]

3개월 후기 | F-Lab Java Backen 과정 멘토링

읻민스 2024. 8. 28. 18:19
반응형

F-Lab Java Backend 과정 3개월 후기 글이다. 어떤 모습이 변했는지, 지금 이 순간 어떤 생각을 갖고 있는지 나중에 보고 싶어 기록해두는 것이라 오글거릴 수 있다. (오글거리는 걸 쓰는 나는 얼마나 오그라들었게요.)

F-Lab Java Backend 과정 멘토링 3개월 후기

F-Lab Java Backend 3th Month 썸네일 이미지이다.
F-Lab Java Backend 3th Month

F-Lab 멘토링을 고민하던 때가 정말 얼마전인거 같은데, 벌써 4개월 중 3개월이나 지났다.

세 달 동안 진행 내용

공부 주제

매 달 후기를 작성하면서 어떤 커리큘럼으로 공부를 했는지 업데이트 해두었는데, 그렇게 해두니 나중에 볼 때 어떤 절차로 공부했는지 다시 생각하면서 볼 수 있어 좋았다. 그래서 이번 달에도 여태까지의 공부 주제들을 기록해두려고 한다.

1주차 : 객체지향 프로그래밍 / 객체지향 4가지 속성/ 자바 컴파일 과정
2주차 : JVM 메모리 구조 / 자바 GC / Thread Safty와 동기화 / static, final
3주차 : Exception, Generic, Collection, Synchronized Collection, Concurrent Collection, HashMap
4주차 : JSP, Servlet, MVC Pattern, Cookie, Session, HTTP Method, HTTP Status Code
5주차 : JDBC, SOLID
6주차 : 디자인 패턴, Spring IoC & DI
7주차 : Spring AOP, ORM
8주차 : OPEN API Spec, REST API, MSA, Docker
9주차 : Spring Bean Scope, Spring MVC, Spring Transaction, APM
10주차 : Spring Security, IaC
11 주차 : API Gateway, Load Balancer, Cache, Messge/Event Brocker
12주차 : 이론 패스
13주차 : Database ACID vs. CAP, Testing(단위, 통합, 시스템, 인수, 회귀)
📣 주의
커리큘럼은 멘토님의 방향과 멘티의 수준에 따라 모두 다릅니다.

프로젝트 진행 상황

높은 트래픽에서도 문제 없이 작동하는 고가용성 페이 시스템을 개발하는 프로젝트를 진행중이다. 프로젝트 주차별 진행과정을 살펴보자면 아래와 같다.

0주차 ~ 1주차

가장 기본적인 서비스가 어떤 시나리오로 발전해 어떤 모습을 갖추게 되는지 배운다. 그 내용을 기반으로 어느 부분에 집중해서 진행할지 프로젝트 주제를 정했다.

백엔드 아키텍처 모습이다.
백엔드 아키텍처

정한 주제를 기반으로 API, 즉 기능들을 명세했다.

2주차 ~ 5주차

가장 기본적인 하나의 기능을 만들어 테스트 환경을 구축했다. 테스트 환경이라는 것은 실제와 비슷한 환경인 클라우드 서버에 배포하고 테스트 도구와 모니터링 도구들을 연동하는 것이다.  표현을 간단하게 했지만, 이 과정에서 아래와 같은 일을 진행헀다.

  • 서비스 도커 컨테이너화
  • 클라우드 서버(AWS)에 컨테이너로 서비스 배포
  • 성능테스터(nGrinder의 Controller & Agent)를 서비스에 연동
  • Prometheus와 Spring Actucator를 이용해 서버의 메트릭을 수집
  • 이렇게 수집된 메트릭을 Grafana에서 시각화(대시보드 구성)

도커는 다뤄본적은 있지만, 잘 다루지 못했었고 다른 모든 도구들은 처음이라 하나하나 적용해 나갈 때, 알아가는 시간들이 필요했다. 

6주차 ~ 8주차

기본 서비스를 기반으로 성능테스트를 시작했고, 성능 테스트 결과를 기반으로 서비스 확장 중이다! 이 과정에서는 현재까지 아래와 같은 일을 진행했다.

  • 테스트 시나리오별 스크립트 작성
  • 성능 테스트 중 추적할 메트릭 선정 및 대시보드 구성
  • 테스트 진행 및 보고서 작성(blog)
  • 문제 상황 해결

성능 테스트라는 것이 상당히 낯설고, 또 높은 트래픽을 일으키니까 생각지 못한 문제를 많이 만나고 있다. 멘토링 시간은 끝을 향해가고, 계획해놓은 계획의 이행률의 진척은 더디기만 해서 조급해지기도 하지만, 멘토님께서는 지금 겪었어야 할 경험들을 쌓아가고 있다고 말씀해 주셨다. (다른 글들을 살펴보면, 문제해결과 고민의 과정을 살펴볼 수 있다.)

남은 시간

남은 시간 더욱 박차를 가해, 프로젝트 잘 마무리 할 수 이도록 해 보겠다!

3개월차 회고

전부다 꾸준히

지난 2개월차 회고에서 "개발자 습관"에 대해서 이야기를 했었다. 이번 3개월차에서는 지난 달 생각했던 그 개발자 습관을 유지하며 조금씩 더 고도화 해나가는 시간이었다.

  • 알고리즘 문제풀이

가장 뿌듯하면서 눈에 보여 재밌었던 것은 매일 알고리즘 문제풀이를 진행한 것이다. 매일 아침 하루를 시작하면서 알고리즘 문제를 풀었다. 먼저 풀 문제들의 리스트를 만들어두고 매일 그 리스트에서 하나씩 순서대로 풀어나가기 시작했다. 풀다보니 하루에 2개를 풀 여력과 의욕이 생기긱도 하고 3개를 "풀어재끼는" 날이 있기도하다. 그렇게 매일 하다 보니 오늘까지 34일을 연속으로 채웠다.

34일 연속 문제를 푼 모습이다.
34일 연속 문제 풀이

7월 26일 문제풀이를 본격적으로 시작했을 때의 점수가 809였다.

7월 26일 1문제를 해결한 모습이다.7월 26일 점수가 809이다.
7월 26일 상황

34일을 참여한 오늘 8월 28일의 점수는 1145이다. 

8월 28일 1문제 해결한 모습이다.8월 28일 점수가 1145인 모습이다.
8월 28일 상황

레벨때문에 문제풀이를 하는건 아니지만, 점수랑 등급을 하나씩 올리는게 정말 재밌다. 혹시 같이 하고 싶은 사람이 있다면 자유롭게 라이벌 걸어주길 바란다. 같이하면 더 재밌다!

solved ac ydmins 프로필 모습이다.
ydmins

  • 1일 1커밋

1일 1커밋을 중요하게 생각하지 않았다. 그렇게 드러내나는 것보다, 정말 매일매일 열심히 공부하고 있는지가 훨씬 중요하다고 생각했다. 이것에 대해서 멘토님과 대화를 나눠본적이 있었다. 멘토님의 의견과 생각을 종합해보자면, 깃헙의 잔디밭이 정말 중요한 것도 아니고, 또 절대적 지표도 아니다. 하지만 매일 커밋을 한 것은, 매일 공부와 코딩의 결과로 조금이라도 의미이 있는 것을 작성했다는 의미이다. 의미 있는 것을 매일 한다는 건 "정말 의미"있는 일일 수도 있겠다는 생각이 들어서, 그날로 바로 1일 1커밋을 시작했다.

깃헙 잔디밭 모습이다.
github contributions

의미도 의미지만, 다양한 연두색으로 빈칸을 채워나가는 것도 또 정말 재밌다.

 

YdMinS - Overview

Backend Engineer / 🇰🇷 🇩🇪 🇬🇧 / Physics . YdMinS has 29 repositories available. Follow their code on GitHub.

github.com

  • 매일 전부다

위에는 눈에 보이는 것들을 적었지만, 이전 멘토링 학습내용 복습과 CS 이론 공부도 매일 진행하고 있다. 이전에는 멘토링 공부하면 멘토링 공부를 쭉했고, CS공부를 하면 CS 공부를 쭉 했었다. 하지만 취업도 그렇고 전문가가 된다는 것도 "어느 정도 수준"까지는 "모든 것"을 "일정 수준 이상"으로 만들고 유지해야 한다는 생각이 들어서 조금이더라도 매일 하려고 노력하고 있다.

다음 달

다음 달 회고를 작성할 때도 지금처럼 꾸준히 잘 하고 있을지 기대된다!

728x90
반응형