서론
- 7/23 ~ 9/3의 실전 프로젝트가 진행 중입니다.
- Kick-off 팀별 멘토링이 진행되었습니다.
- 팀장 주간 회의가 진행되었습니다.
- 기획을 수정하였습니다.
일정
- 7/23 (금) ~ 9/3 (금) : 실전 프로젝트 진행
- 7/28 (수) 17:00 ~ 17:30 : Kick-off 팀별 멘토링
- 7/29 (목) 20:30 ~ 23:00 : 디자이너 회의
- 7/30 (금) : 팀장 주간 회의
실전 프로젝트 2주 차
- 7/23 ~ 9/3 : 실전 프로젝트 기간이 진행 중입니다.
- 기획을 '모든' 주제에서 '운동'이라는 주제로 수정하였습니다.
- 디자이너 회의를 통해 Figma를 이용한 와이어 프레임이 작성되었습니다.
- 메인 테마 색상, 로고, 폰트가 선정되었습니다.
- MySQL ERD를 수정하였습니다.
- 카카오맵을 이용한 Socket 통신 서비스를 구현하였습니다.
- Socket 대화방을 구현하였습니다.
- Socket CORS 문제를 해결하였습니다.
- Notion : https://www.notion.so/99-9-b3c6d3acc4cd489d8abda6c0b7f3c714
Kick-off 팀별 멘토링 [이범규 대표님]
- 7/28 (수) 17:00 ~ 17:30 : Kick-off 팀별 멘토링을 진행하였습니다.
- 멘토링 담당자를 이범규 대표님으로 신청하였습니다.
- 프로젝트가 목표하는 유저의 대상이 명확하지 않다고 수정 요청을 받았습니다.
- 코드 구현은 핵심적인 기능부터 구현하라는 요청을 받았습니다.
- 모임을 구성하는 방장의 이점이 있어야 한다는 요청을 받았습니다.
Kick-off 팀별 멘토링 이야기
- 저번 주 팀 내부에서 정한 [즉석 모임 서비스]란 주제로 선정된 프로젝트의 수정해야 할 사항과 업무 스코프가 적절한지 물어보기 위한 멘토링이 진행되었습니다.
- 가장 처음 지적받은 점은 '운동', '게임', '방 탈출' 등 '모든' 주제로 소통할 수 있는 서비스에서 프로젝트가 목표하는 유저의 대상이 명확하지 않다고 지적받았습니다. 모든 주제라는 것은 과연 누구를 대상으로 하는 것인지 불분명하고, 굳이 저희가 제공해야 하는 서비스를 사용할 필요가 없다 하였습니다.
- 프로젝트의 구현 순서에 대해서는 백 엔드의 핵심 기능부터 구현되어야 한다고 하였습니다. 이번 실전 프로젝트에서 가장 핵심적인 기능은 실시간 지도 Socket 통신과 Socket 대화방 기능이므로 2가지의 기능을 최우선으로 구현해야 할 것 같습니다.
- 프로젝트의 세부적인 내용이지만, 구인하는 방장의 경우 이점이 없으면 방을 만들 사람이 존재하지 않을 것이라는 이야기를 들었습니다. 이전에는 방이 생성되어 있으면 어느 유저든 상관없이 방을 들어올 수 있지만, 방장의 승인이 있을 때만 방에 접근이 가능하도록 수정해야 할 것 같습니다.
디자이너 회의
- 7/29 (목) 20:30 ~ 23:00 : 디자이너 회의를 진행하였습니다.
- 와이어 프레임을 일부 수정하였습니다.
- 대표 로고 및 아이콘이 선정되었습니다.
- 메인 테마 색상 및 폰트가 선정되었습니다.
- '운동' 주제로 프로젝트의 기획이 확정되었습니다.
팀장 주간 회의
- 7/30 (금) : 팀장 주간 회의가 진행되었습니다.
- 이범규 대표님이 회의를 진행하였습니다.
- 9, 11, 12, 13 총 4팀의 팀장이 모였습니다.
- 저희 팀을 제외한 3팀은 모두 Spring 팀이었습니다.
- 프론트 엔드 진행사항, 백 엔드 진행사항, 기획의 문제점, 다음 주의 진행 상황을 공유하였습니다.
실전 프로젝트 2주 차 이야기
- 실전 프로젝트의 2주 차가 시작되었습니다. 완성된 와이어 프레임, API 문서를 토대로 구현을 하면 된다는 마음으로 진행하였습니다.
- 기획에서 많은 문제가 발생하였습니다. Kick-off 회의에서 주제 변경에 대한 이야기가 나왔고, 팀원 회의를 따로 진행하였습니다. '모든' 주제를 포괄하는 것에서 다른 주제로 변경하는 과정에서 5시간 이상의 회의 시간이 진행되었고 결국 '러닝', '운동'이라는 주제로 변경되었습니다. 하지만 실질적인 내부 기능의 변경은 없었고, 이렇게 오랜 시간 회의를 한 게 헛된 시간 낭비가 아니냐는 생각을 하였습니다.
- 프로젝트 아이콘 로고가 정해졌습니다. 디자이너 회의 시간 때 진행 상황을 공유하면서 8개 이상의 프로젝트 로고가 제시되었고, 유저들이 모여있는 것을 의미하는 셔틀콕(?) 모양의 아이콘으로 선정하였습니다.
- Socket.IO를 이용한 Kakao Map API 실시간 마커 표시 코드를 구현하였습니다. 아직 완벽하지 않고, 모든 유저의 실시간 위치를 표시하는 것뿐이지만, Server 코드 최적화와 동시에 프론트 엔드 팀원들과 이야기해 친구, 일정을 공유하는 유저의 마커를 변경할 수 있도록 설정해야 할 것 같습니다.
- Socket에 대한 개념을 아직 모든 팀원이 알고 있지 않습니다. Socket은 실시간 유저 갱신 이벤트와 대화방에서 사용되는 핵심 기능이고, 이것을 모르고 지나간다면 실전 프로젝트의 핵심을 알지 못한다고 할 수 있습니다. 그렇기 때문에 Socket에 대한 확실한 이해를 할 수 있도록 Kakao map Marker 갱신 이벤트와 Socket 대화방을 HTML로 구현하였습니다. 단순히 HTML에 주석을 작성하였다고 코드를 이해하고 넘어갈 수 없기에 다음 주에는 Socket에 대한 코드리뷰를 모든 팀원에게 진행해야 할 것 같습니다.
- Express와 Socket은 별도로 CORS 적용해야 하는 것을 깨달았습니다. AWS EC2 서버에 업로드하고, 서버와 통신이 되지 않는 상황을 맞이하였습니다. 분명히 app.js에서 app.use(CORS)로 클라이언트 주소를 특정해 열어주었는데 통신이 되지 않았고, 잘못된 설정 문제인 것 같아 찾아보았지만 바로 해결하지 못하였습니다. 잠시 다른 작업을 진행하던 중 문득 혹시 Socket.io 코드에서 cors를 options 값에 집어넣으면 되지 않겠느냐는 생각으로 코드를 수정하였고, 그 결과 성공적인 통신이 진행되었습니다.
- 일주일을 회고하면서 백 엔드, 프론트 엔드 각자 맡은 업무에서 진행속도가 다른 것을 느꼈습니다. 회의에서 일주일간의 진행 상황을 서로 이야기하였고, 확연하게 구현이 부족한 부분이 존재하였습니다. 담당하는 팀원에게 구현 속도가 이렇게 느린 이유가 무엇인지, 어느 부분에서 막히고 있는지, 프로젝트를 진행하면서 막히게 된다면 어떻게 해결하는지, 목표가 확실하게 잡혀있는지 등 해결방안을 찾아보았습니다. 이야기를 진행하면서 팀의 부족한 부분을 들춰내는 등 기분이 썩 좋지 않았지만, 프로젝트를 성공으로 이끌어 나가려면 필요한 단계인 것 같았습니다.
배운 점
- 프로젝트의 성과 공유 및 의견 전달 방법
- Kakao Map Marker 및 Event Listener
- Socket.io Name Space, Join, leave
- Socket.io CORS
- Sequelize Migrate TRIGGER
- Linux pm2, tail, cat
- Window netstat
- nunjucks Module
- express-session
나의 생각과 이야기
- 프로젝트의 주제변경, 기획 수정으로 인해 많은 시간을 사용하였습니다. 다른 팀들 또한 저희 팀과 같이 기획구성에서 많은 시간을 사용하였겠지만, 프로젝트의 핵심 기능은 변함없는 주제에 대한 변경이라 헛된 시간 낭비를 한 게 아니냐는 생각은 사라지지 않는 것 같습니다.
- Node.js를 사용하는 백 엔드의 팀원이지만 실전 프로젝트의 팀장을 담당하고 있습니다. 팀장을 담당하면서 모든 프로젝트를 이해하고, 조율해야 할 경우 프론트 엔드에 대한 모든 기술은 아니지만, 대략적인 기능 구현을 할 수 있어야 할 것 같습니다. 하지만 '팀장으로서 프론트 엔드의 구현을 도와주는 것이 맞는가?' 라는 의문이 있었습니다. 백 엔드 구현을 확실하게 하는 것이 중요한 것인지, 아니면 부족하더라도 프론트 엔드의 구현을 도와주는 것이 맞는지 아직은 확실한 답변을 내지 못한 것 같습니다.
- 팀 구성원들의 목표 의식을 어떠한 방식으로 가질 수 있도록 해야 할지 고민입니다. 프로젝트의 성공적인 구현을 하기 위해서는 팀 구성원들 모두의 최상의 퍼포먼스를 끌어낼 수 있어야 하는데, 시간이 지나면서 모든 구성원의 목표 의식이 점점 희미해져 가는 것 같습니다. 단순히 시간이 해결해 줄 것이라는 생각은 하지 않고, 확실한 해결방안을 강구하도록 해야 할 것 같습니다.
- 일주일이 상당히 짧은 것 같습니다. 배울 기술이 너무 많고, 프론트 엔드, 백 엔드 두 가지의 업무를 모두 해야 하는 입장이다 보니 업무가 많아 촉박하게 느껴지는 것 같습니다.
- 모든 팀장분들 화이팅 합시다!
'항해99 > WIL' 카테고리의 다른 글
[항해99] WIL 10주차 - 실전 프로젝트 4주차 (후기) (0) | 2021.08.15 |
---|---|
[항해99] WIL 9주차 - 실전 프로젝트 3주차 (후기) (0) | 2021.08.08 |
[항해99] WIL 7주차 - 실전 프로젝트 1주차 (후기) (0) | 2021.07.25 |
[항해99] WIL 6주차 - Node.js 클론 코딩 기간(후기) (0) | 2021.07.18 |
[항해99] WIL 5주차 - Node.js 미니프로젝트 기간(후기) (0) | 2021.07.11 |