프로젝트 들어가기 전 당부/조언
- 1/n로 작업하므로 모든 프로세스를 경험하는 것이 아님 ⇒ 끝나고 나서 모든 작업을 구현해보는 경험을 해 볼 것
- 그럼에도 팀 프로젝트를 하는 이유: 어느 곳에서든 협업을 하게된다. 남이 이해하기 쉬운 형태로 코드를 작성하는 등의 경험을 하게 될 것
- 본인이 아무리 처음 과제를 수행해 보더라도 도움을 받는 자세를 가지기 보다는 목표를 높일 것 회사에서의 1인 분: 다른 사람을 도울 수 있는 점까지 포함한다 1.5인 분을 하겠다는 것을 목표로 잡아야 한 사람 몫을 해낼 수 있을 것
- 블로그 작성
- 노션같은 폐쇄적인 플랫폼보다는 보여주기 수월한 블로그의 운용을 강력히 추천함
- 배운 것을 정리하는 목적도 있지만, 문제 해결 과정을 보여주어야 함(문제를 이해하고 풀어나가는 과정을 보여주어야 한다)
- 아무리 팀 프로젝트를 진행했다고 해도 당사자가 코드를 작성한 것을 확인하기 힘듬 ⇒ 본인의 문제해결 과정을 보여줌으로써 기업 관계자에게 어필할 수 있음
- 즉, 취업을 위한 증거 자료가 될 테니 증거를 많이 만들어 둘 것
프로젝트에 대하여
- 기획안 대로라면, 기능적으로는 게시판보다 에디터 등록, 수정이 핵심
- (다른 주제로 변경한다면) 행아웃/디스코드처럼 미팅 앱을 주제로 잡을 수 있을 듯
- 코드는 어떻게 배포/연동할 것인지 고민해 볼 것 ⇒ 배포는 한 사람이 할 것인지, 다 같이 할 것인지: 가능하면 자기 코드를 자기가 배포해 보는 것을 추천(오류 발생시 배포 환경 고치는 것도 포함)
Frontend
- Next.js / Typescript 권장(기업체에서 쓰이지 않는 곳이 없음) → 참고
- React Query 같은 서버 상태 관리를 사용해 보는 것이 좋음
- 기획안 작성과 함께 프론트 배포 공부 진행할 것
Backend
- 이 주제에서도 기술적 난이도는 올릴 수 있다. 테스트 코드, CI 등 난이도를 올릴 수는 있지만 이를 보여주는 형태로 만들기는 어려울 것
- 컴포넌트 수에 따라 난이도가 많이 달라질 것
- 대규모 시스템 구축 불가: 회원 생기기 전까지는 알 수 없음
- 가능한 백엔드 도전 과제의 예시
- 링크드 인에 수료증 등록 연동(API이용한 다양한 플랫폼과의 연계)
- 저장 데이터를 어떻게 관리할 것인지 혹은 임시 저장 기능의 구현
- 로드맵 자동 완성 기능
버전 관리 기능은 핵심 기술이라고 보기 어려움- 조금 난이도를 높인다면: GPT AI를 통해 각종 추전, 내용 요약 기능 제공(Open API 발급 필)
- 로드맵 여러 개인 사람에게 기존 로드맵 기반 추천 서비스: 태그, 로드맵 내용을 통한 prompt engineering(AI 모델이 특정 출력을 생성하도록 훈련하는데 사용되는 prompt(입력)를 만드는 과정)
- GPT API의 응답 지연(15~30초): 비슷한 질문에 대해서는 캐시를 사용할 수 있도록.
- 로드맵 자동 생성: 에디터에 내용이 기본 템플릿을 통해 내용 자동 생성 제로에서 작성하게 하느냐, 자동 작성을 해주느냐는 보여질 때 임팩트가 다를 것 예: 어떤 주제로 만들고 싶으세요? > 주제를 추출해 > 자동으로 로드맵 작성
코드 구현 이외의 과제
- 배포 자동화 - AWS 를 통한 배포 자동화를 이번 기회에 경험해 볼 것.
- 리팩토링
- 좋은 코드를 생각하기보다는 작동하는 코드 구현을 우선해야한다
- 주어진 시간동안 구현에 집중하고 폴리싱 기간동안 리팩토링 하는 것이 좋을 것
- 테스트 코드
- 전체적인 개발 시간은 줄어든다
- 처음 작성해보는 경우 시간 지연이 상당하므로 현재 환경에서 실습해 보기는 힘들 것
- MVP 개발까지는 테스트 코드 작성하지 않고 진행한다
- 7/28 부터 리팩토링, 코드 개선, (시간적으로 가능하다면) 테스트 코드에 대한 코칭이 가능할 것. 테스트 코드의 경우, 시간이 충분하지 않다면 (가이딩만으로도 충분하므로) 가이딩을 제공할 것.
멘토링 진행에 대하여
- 일주일 한 번, 토요일 오후를 기본 미팅 시간으로 한다.
- 금요일까지 일주일치 구현 목표를 끝냈을 때 코드 리뷰 가능할 것
- 프로젝트 진척 시마다 필요한 사항에 대해 가이드 해 줄 것
개발 환경
- Spring Boot + Java 17
- React + Typescript
진행할 사항
- AWS 셋팅
- DB 연결
- 코드 작성: Sonar Cloud를 활용하여 정적 분석 진행
- 서로 피드백 할 수 있겠지만 지금으로서는 시스템에 맡기는 것이 좋은 방법
- 개선 건에 대해서는 조금씩 반영해 나갈 것
- Github - Github Action - Sonar Cloud 연동
Q. 뭐가 좋은 자료인지 어떻게 판단하죠?
A. 먼저 나만의 근거를 가지고 결론을 내려라. 그러고 나서 그 근거를 가지고 멘토에게 조언을 구할 것 - 본인의 논리적으로 판단 하는 능력에 대한 훈련 뿐 아니라 보는 능력도 높여줄 것.