2025년 최종 공부 계획
내일배움캠프 자바 심화 3기에 참여하면서 1주일이 지났다. 이 짧은 시간 동안에 한 개의 프로젝트와 MSA 강의를 모두 수강했다. 프로젝트는 회원 주문 시스템 프로젝트 구현을 목표로, 프로젝트를 구현하기 위해 알아야 할 내용들을 다음과 같이 짧게나마 학습하고 프로젝트를 진행했다.
- Spring MVC, Jackson 라이브러리, MySQL, JdbcTemplate
- Layer Architecture, IoC, DI, Spring Data JPA
- Bean, Spring Security, JWT, Validation
- RestTemplate & Open API(Naver), JPA Entity 연관 관계
- 소셜 로그인(Kakao), Mockito, 단위 테스트, 통합 테스트, AOP, API 예외처리
프로젝트를 모두 마친 이후에는 MSA 강의 수간 기간이 촉박해서 급한대로 모두 수강했다. MSA 강의는 대략 6시간으로 비교적 짧은 강의 구성이었지만, 처음 MSA에 대해 배우다보니까 생소한 부분이 너무나도 많다 보니까 완강까지 3~4일이 걸렸다. 안타깝게도, 아직 MSA가 낯설고 많이 어렵게 느껴지는 것은 부정할 수 없는 사실이다.😢MSA 강의에서 학습한 내용은 다음과 같다.
- MSA 개요, 모놀리틱 아키텍처와의 비교, 장단점, 사례
- Spring Cloud 개념, Spring Cloud 주요 모듈 및 구성 요소 소개
- Spring Cloud와 쿠버네티스 비교
- 서비스 등록 및 디스커버리: Eureka, Consul, Zookeeper
- 로드 밸런싱: Ribbon, Spring Cloud LoadBalancer
- 서킷 브레이커: Hystrix, Resilience4j
- API 게이트웨이: Zuul, Spring Cloud Gateway
- 구성 관리: Spring Cloud Config
- 분산 추적: Spring Cloud Sleuth, Zipkin
- 메시징: Spring Cloud Stream
MSA 강의를 들으면서 간단한 프로젝트들을 직접 구현과 함께 어떠한 동작을 하는지 이해하는 시간만큼은 정말 좋다고 생각한다. 그러나 아쉬운 점은 6시간 안에 이 모든 내용들을 담아낸 강의이다. 학DDD(도메인 주도 설계)자형 스타일로 공부하는 사람에게는 너무 치명적이였지만, MSA의 전체적인 패러다임을 경험하는데 너무나도 큰 도움이 되는 강의라고 생각한다.
이제 MSA 입문을 경험해보면서, 나는 어떠한 계획을 세우고 공부를 해야 적절할지에 대한 고민이 생겼다. 다행이도, 오늘 새롭게 합류하신 멘토님께서는 지금까지 내가 원하는 경력과 기술을 경험한 분이셨다. 현재 내가 어디까지 알고 모르는지 그리고 어느 경험을 했는지 작성하고, 앞으로의 단점을 장점으로 갖추기 위해 내가 생각한 대안은 어떤 것들인지 멘토님에게 설명을 드리면서 명쾌한 해답을 찾을 수 있게 되었다. 그래서 오랜만에 회고를 작성하게 된 가장 큰 이유 중의 하나이다.😂
내일배움캠프에서 진행하는 강의와 프로젝트는 모두 MSA 기반이다. 현재 내 수준에서 MSA 공부를 한다는 것은, 형편에 비해 최악의 연비를 가진 자동차를 매일마다 운전하는 것과 다름이 없다. 그래서 MSA 강의와 프로젝트에서는 뒤쳐지지 않을 정도로 공부하고 프로젝트에 피해가 안가도록 참여하도록 정했다. 이제 앞으로 집중해야 할 것들은 다음과 같다.
- 코딩테스트
- 스프링
- 적절한 DDD, TDD 주도 설계
- 형상 관리
- 컴퓨터 6대공학
위에 나열된 5개 항목만 하더라도 각각 방대한 내용을 다루고 있기에, 선택과 집중이 절실히 필요한 순간이다. 전부는 아니지만, 당장에 학습을 위해 나름대로 세우게 된 큰 방향성은 다음과 같다.
자바
💡 목표는 "자바를 안다"가 아니라,
"자바로 문제를 해결할 수 있다"가 되어야 한다! 🚀
- 초급: 기본 문법 + OOP 개념 + 자바 표준 라이브러리 익히기
- 중급: 컬렉션, 스트림, 멀티스레딩, 리플렉션 기초 + 디자인 패턴 적용
- 고급: JVM, GC 튜닝, 성능 최적화, 네트워크 프로그래밍, 고급 디자인 패턴 학습
스프링
💡 목표는 "스프링을 안다"가 아니라,
"스프링으로 문제를 해결할 수 있다"가 되어야 한다! 🚀
- 초급: 스프링 기본 개념 + 간단한 CRUD API 개발
- 중급: 인증/인가, 비동기 처리, 스프링 배치 적용 및 확장성 고려
- 고급: MSA, 성능 최적화, 대용량 트래픽을 견디는 구조 설계
데이터베이스
💡 목표는 "SQL을 작성할 수 있다"가 아니라,
"효율적인 데이터베이스 구조를 설계하고 최적화할 수 있다"가 되어야 한다! 🚀
- 초급: SQL 기본 문법 + JOIN + 정규화 이해
- 중급: 트랜잭션, 인덱스 최적화, 고급 SQL 활용
- 고급: 성능 튜닝, 샤딩/레플리케이션, 대규모 데이터 처리
AWS, Docker, Kubernetes, CI/CD
💡 목표는 "AWS, Docker, 쿠버네티스를 사용할 수 있다"가 아니라,
"운영과 배포를 자동화하고 확장 가능한 서비스를 만들 수 있다"가 되어야 한다! 🚀
- 초급: AWS EC2, S3 기본 개념 + Docker 컨테이너 실행 + 쿠버네티스 기본 사용
- 중급: AWS 네트워크 & 보안 + Docker Compose + Kubernetes 배포 자동화
- 고급: MSA 아키텍처 운영 + Kubernetes 성능 최적화 + CI/CD 구축
테스트
💡 목표는 "테스트를 작성할 수 있다"가 아니라,
"테스트를 통해 안정적인 시스템을 만들 수 있다"가 되어야 한다!
- 초급: JUnit5로 단위 테스트 작성 + Mockito 활용
- 중급: Spring Boot와 통합된 테스트(MockMvc) 적용
- 고급: 데이터베이스 테스트 + 성능 테스트 + CI/CD 연동
DDD(도메인 주도 설계)
💡 목표는 "DDD를 이해했다"가 아니라,
"비즈니스 로직 중심의 유지보수 쉬운 코드를 작성할 수 있다"가 되어야 한다! 🚀
- 초급: 도메인 개념 익히고 JPA 기반 엔티티 설계
- 중급: 도메인 중심의 비즈니스 로직 작성 및 계층 분리
- 고급: 이벤트 기반 설계 및 CQRS 적용
Elasticsearch
💡 목표는 "Elasticsearch를 사용할 수 있다"가 아니라,
"대용량 데이터를 빠르고 효율적으로 검색할 수 있다"가 되어야 한다! 🚀
- 초급: Elasticsearch 개념 이해 + 기본 CRUD + 간단한 검색 기능 구현
- 중급: Spring Boot 연동 + 검색 최적화 + Aggregation 활용
- 고급: 클러스터 운영 + 성능 최적화 + 대규모 데이터 처리.
📌 추가할 학습 목록
.💡 목표는 단순히 기술을 배우는 것이 아니라,
"실제 문제를 해결할 수 있는 개발자가 되는 것"이다! 🚀
✅ 네트워크 최적화 & 성능 개선
✅ GraphQL & gRPC
✅ 멀티스레딩 & 비동기 프로그래밍
✅ 보안(Security) 및 인증(OAuth, JWT)
✅ 대규모 MSA 설계 및 장애 대응
✅ 소프트 스킬 & 협업 도구 활용
공부해야 할 목록을 정리하면서, 이전에 배웠던 것들이 떠올랐다. 하지만 그중 많은 부분이 희미해졌고, 기억에서 점점 멀어지고 있다는 것을 깨달았다. 단순히 배우는 것만으로는 부족하다. 지식을 온전히 내 것으로 만들기 위해서는 반드시 복습이 필요하다. 내 앞서 나가는 사람들, 그리고 보이지 않는 경쟁자들은 빠르게 학습하고 성장하고 있다. 그러나 그들을 의식하며 조급한 마음으로 강의나 책을 읽고 지나치기만 한다면, 결국 마음만 지치고 머릿속에 남는 것은 없는 법이라는 것은 이미 잘 알고 있다..! 깊이 이해하고, 체득하며, 직접 적용하는 과정이 무엇보다 중요하다.
어제의 나, 그리고 몇 시간 전의 나와 경쟁하자. 남들과 비교하는 것이 아니라, 스스로의 한계를 뛰어넘으며 목표한 공부를 완전히 체득하고, 문제 해결 능력을 갖춘 개발자로 성장하자. 🚀