프로젝트 설명
목적
•
Redis, Mysql 등 다양한 스택 경험 및 SpringBoot 전반적 이해를 위함
•
WebSocket Protocol 기반의 채팅서버 구축을 통한 Http 통신 이해
•
Layer Architecture 형태의 프로젝트 구조 경험
•
AOP, DI 개념 학습
구현하고자 했던 기능
•
Session 기반의 로그인 구현
•
WebSocket 기반의 채팅 기능 구현
•
친구 추가 및 관리 기능
기술스택
•
Redis
•
Java
•
Spring Boot
•
Jooq
KPT
Keep
•
그냥 내가 많이 부족하다는 것을 느낀 프로젝트였다. 프로젝트를 진행하기 전까지 스프링, 스프링 부트의 차이점을 설명할 수도 없는 상태였다. 그런 부분에 있어서 굉장히 많은 것을 배울 수 있었던 시간이었던 것 같다.
•
third party 라이브러리를 도입하는 방법에 대해서 배웠다.
◦
기존의 jdbc라던지 jpa와 같은 기술들을 도입하기 위해 사용법을 검색해보기보다 Jooq라는 라이브러리가 어떻게 1:N 매핑을 지원하는지, 도입하기에 적합한지를 검토해볼 수 있었다.
◦
리뷰를 해주시는 선배와 기술 스터디를 진행하면서 어떠한 기술을 도입하기 전에 어떤식으로 접근해서 어떻게 파악하고 실제로 도입으로 이어지기까지 전과정을 체험해볼 수 있어서 정말 좋았다.
•
Github에서 협업하는 방법에 대해서 배울 수 있어서 좋았다. 또 기술 전파가 이리도 좋은 것이라는 것을 깨달았다. 나도 나중에 남들에게 선한 영향력을 끼치는 개발자가 되고 싶어졌다.
Problem / Try
•
내 능력이 처참했다.
◦
DB, Architecture 등 프로그래밍적 이해 부족
◦
Github 활용 능력 부족
◦
HTTP, Spring 동작 구조 이해 부족
◦
Java 기본 라이브러리 이해 부족
•
차근차근 공부한 것들을 정리해나가면서 역량을 키워나가야겠다.
느낀점
•
중간에 훈련소에 다녀온 기간을 제외하고 3월부터 8월까지 대략 4개월 정도에 걸쳐 진행한 프로젝트였는데, 너무 좋았다.
◦
코드에 대해서 고민하고 이 코드가 좋은 코드인지 생각하는 시간들이 당시에는 정말 힘든 시간들이었는데 돌이켜 생각해보니 정말 좋은 시간들이었다.
•
개발자로써 마인드셋을 어느정도 장착하는 시간이 되었던 것 같다.
◦
개발자로써도 인간적으로도 존경할 수 있는 좋은 선배의 조언들로 개발을 대하는 자세나 개발을 함에 있어서 어떤 자세로 다가갈지 학습할 수 있는 시간들이었다.