프로젝트 시작하기
2025년이 찾아왔네요.
작년부터 진행해오던 F-Lab 멘토링에서 드디어 프로젝트를 시작하려 합니다.
매번 회사 핑계, 개인적인 핑계 등 이런저런 이유로 미뤄왔었는데, 새해에는 새로운 결심과 다짐으로 꼭 마무리해보겠습니다!
이전 멘토링은 다른 멘티분들과 함께 진행되어 커뮤니케이션 경험도 할 수 있었다고 들었지만, 저는 혼자 진행하는 만큼, 커뮤니케이션보다는 제가 원하는 방향으로 프로젝트를 이끌어 나가는 경험을 목표로 삼으려 합니다.
(오히려 좋을 수도 있겠죠...ㅎ)
현재 회사에서 업무를 하며 가장 갈증을 느끼는 부분은 크게 두 가지입니다.
범용적인(Java, Spring 기반) 기술 스택에 대한 갈증
현재 근무하는 회사는 금융 PG사로, 기술 스택이 2010년대 초반 수준에 머물러 있습니다. 기존 기술만으로도 서비스 운영에는 큰 문제가 없고, 높은 트래픽이 자주 발생하지 않는 환경이다 보니, 회사에서는 기술 스택 개선보다는 도메인 지식에 기반한 양적 비즈니스 성장에 더 초점을 맞추고 있습니다.
그러나 개인적으로는 클라우드, Spring, Redis, NoSQL 등 최신 기술을 활용해 대용량 트래픽을 처리할 수 있는 서버를 직접 구현해 보고 싶습니다. 또한, 이러한 기술 도입 시 발생할 수 있는 트레이드오프를 직접 고민하며 경험해 보고자 합니다.
(모든 기술 도입이 장점만 있는 것은 아니니까요.)
일정 수준을 넘지 않는 실시간 트래픽
현재 제가 관리하는 서비스는 초당 약 10~20건의 요청을 처리하고 있습니다. 이에 따라 “초당 1,000건 이상의 요청이 들어온다면 서버가 이를 감당할 수 있을까? 감당하지 못한다면 어떤 점을 고민해야 할까?”라는 궁금증을 갖게 되었습니다.
이번 프로젝트에서는 책에서만 접했던 대용량 트래픽 서버 설계를 직접 경험하고, 실제 트래픽을 처리할 수 있는 서버를 설계하여 실제 부하 테스트를 진행할 계획입니다.
(K6 를 활용한 부하 테스트도 진행할 예정이며, 추후 해당 내용을 포스팅할 예정입니다.)
프로젝트 목표
위에서 언급한 갈증을 해결하기 위해 이번 프로젝트의 목표를 다음과 같이 설정했습니다.
첫째, 대용량 트래픽과 대용량 데이터를 핸들링하는 경험
- 스케일업과 스케일아웃에 따른 트레이드오프를 고민하고,
- 동기/비동기 및 블로킹/논블로킹 처리 방식을 고려하는 경험을 쌓고자 합니다.
둘째, 사용자 세션 처리 경험
스타트업 초기에 진입하지 않는 이상 사용자 세션 처리와 관련된 경험을 실무에서 쌓을 기회가 많지 않다고 생각합니다. 따라서 이번 프로젝트를 통해 다음 내용을 다루고자 합니다.
- JSession, OAuth, 소셜 로그인 등 다양한 사용자 세션 처리 방식
- 각 방식의 장단점과 최적의 선택 기준
- 분산 환경에서의 사용자 세션 관리 방법
셋째, Java, Spring 기반으로 기술스택의 범위 확장
아직 주니어 개발자로서 더 많은 도메인을 경험하고, 다양한 문제 상황을 해결해 나가고 싶습니다. 이를 위해 범용적인 기술 스택을 익히는 것이 중요하다는 사실을 지난 1년 동안 절실히 깨달았습니다.
이번 프로젝트를 통해 Java, Spring 기반의 기술 스택으로 제 역량을 확장하려 합니다.
넷째, 실제 프로젝트와 같이 진행
F-Lab의 가장 큰 장점은 검증된 멘토님과 함께할 수 있다는 점입니다.
혼자 재미로만 프로젝트를 진행하다 보면 목표가 흐려지거나 프로젝트가 산으로 갈 가능성이 있습니다. 이번 프로젝트에서는 실제 서비스 개발 프로세스를 따르며 실전 경험을 쌓을 계획입니다.
- 개발 계획 수립
- 테스트 및 코드 리뷰
- PR 관리 및 배포
마치며
다음에는 주제 선정과 구현범위 설정을 고민해가는 과정을 한번 포스팅해보겠습니다.
'프로젝트' 카테고리의 다른 글
Git 브랜치 전략, Git-Flow, Github-Flow (0) | 2025.01.07 |
---|---|
Github Issue & PR 관리 (0) | 2025.01.07 |
프로젝트 주제 선정 & 구현 범위 설정 (2) | 2025.01.04 |
첫 웹 프로젝트(가맹 관리 서비스) (0) | 2022.08.31 |