서론
- 7/2 ~ 7/8의 Node.js 주특기 심화 주차가 종료되었습니다.
- 7/9 ~ 7/15의 미니프로젝트 기간이 시작되었습니다.
- 항해 톡 4회 발표가 진행되었습니다.
- 스파르톤을 진행하였습니다.
일정
- 7/2 (금) ~ 7/8(목) : 주특기 심화 주차 일정
- 7/7 (수) : 항해 톡 4회차 발표
- 7/9 (금) : 미니프로젝트 발제 및 <프론트 엔드 + 백 엔드 협업> 특강
- 7/9 (금) ~ 7/15 (목) : 미니프로젝트 진행
- 7/10(토) 21:00 ~ 7/11(일) 06:00 : 스파르톤 1회 진행
Node.js 주특기 심화 주차
- 7/2 ~ 7/8의 Node.js 주특기 심화 주차가 종료되었습니다.
- Supertest, Jest 모듈을 이용해 테스트 코드를 작성해보았습니다.
- Sequelize와 mysql 모듈을 사용해 MySQL을 동기화해보았습니다.
- Docker에 MySQL 컨테이너를 생성해 Node.js와 연동해보았습니다.
- DB의 ERD를 만들어보았습니다.
- AWS EC2에 심화 과제를 업로드 하였습니다.
- 팀 내에서 간단한 미니 항해 톡 발표를 진행하였습니다.
Node.js 주특기 심화 주차 이야기
- 오랜만에 ERD를 구성해보았습니다. 심화 과제를 진행할 때 전체적인 구조를 그려 대략적인 틀을 구성하였고, 코드를 작성할 때 DB 구조를 다시 생각하게 되는 것을 줄여 업무의 효율을 높이기 위해 DB ERD를 구성하였습니다.
- Jest와 Supertest 모듈을 사용해 테스트코드를 작성하였습니다. 과제를 진행하면서 테스트코드의 필요성에 대해 깨달았지만, 구성하는데 너무 많은 시간을 쏟으면 전체적인 시간 분배에서 좋지 않을 것 같아 적절한 수준의 코드 구성이 필요하다고 생각하였습니다.
- Mock의 개념을 사용해 기존의 DB를 접속하지 않고 테스트 코드를 작성할 수 있는 것을 배웠습니다. 하지만 개념에 대해서 이해를 하고 있지만, 코드를 어떠한 방식으로 구성해야 할지는 알지 못하고 있는 것 같습니다. 다음 프로젝트부터 Mock을 사용해 점차 익숙해지도록 노력해야겠습니다.
- 과제를 처음 제시받았을 때 추가적인 기능으로 Socket을 삽입하려고 하였습니다. 하지만 매번 과제의 목표를 추가적인 기능을 삽입하는 것이 아니라 소통을 중점적으로 팀을 이끌어 나가려 하였고, 기능을 넣는 것보다 부족한 팀원분들을 도와주는 것이 더 알맞은 것 같아 과제는 완성하고 나머지 시간은 팀원들의 디버깅을 도와주거나 과제에서 사용하는 개념에 관해 설명해드리는 데 많은 시간을 할애하였습니다.
- AWS EC2에 MySQL을 설치해 누구든지 DB에 접속할 수 있도록 설정하였습니다. 기존에 리눅스를 사용해봤던 경험 덕분에 설정이 그렇게 어렵지는 않았지만, 도중에 알 수 없는 에러가 몇 번 발생하는 답답한 상황이 발생하기도 하였습니다.
- 심화 과제 작성에 많은 치중을 하다 보니 이번 4회차 항해 톡을 지원하지 못했습니다. 아쉬움을 달래기 위해 저희 팀 안에서 이번 과제를 진행하면서 핵심적인 주제를 뽑아 작은 발표를 하는 게 어떠냐는 의견이 나왔고, 오후 8시에 모든 팀원이 각자의 주제를 발표하는 시간을 가졌습니다.
5주 차 미니프로젝트
- 7/9 ~ 7/15의 Node.js 미니프로젝트 기간이 시작되었습니다.
- Node.js 백 엔드 3명, React 프론트 엔드 2명으로 팀이 구성되었습니다.
- 핀터레스트를 모티브로 한 <보헤미안 랩소디>란 주제로 진행하였습니다.
- 미니 프로젝트를 진행하기에 앞서 와이어프레임, API, ERD를 작성하였습니다.
- 미니 프로젝트의 대략적인 진행 상황을 기록하기 위해 Notion을 생성하였습니다.
- Notion : https://www.notion.so/12-fd2b9e26805f4e9a908f1e5f791d7838
5주 차 미니프로젝트 이야기
- 백 엔드와 프론트 엔드의 첫 협업 프로젝트입니다. 시작부터 서로의 업무 부분이 어떠한 일을 하는지 웹의 어떠한 요소를 구성하는지 이해하지 못하였습니다. 서로에 대해 알기 위해 백 엔드는 어떤 식으로 데이터를 가공하는지, DB의 구성요소가 무엇이 존재하는지 이야기하였고, 프론트 엔드는 FireBase의 논리 구조와 html 파일이 아닌 js만으로 홈페이지를 구성하는 방법을 이야기하였습니다.
- 팀이 구성된 첫날에는 프로그래밍은 진행하지 못하였습니다. 미니 프로젝트의 주제를 정하고, 와이어 프레임, API, DB ERD를 구성하는 것과 프로젝트의 목표를 확실하게 잡는데 많은 시간을 쏟은 것 같습니다.
- 협업 프로젝트에서 가장 중요한 것은 역시 "소통"이라 생각합니다. 백 엔드와 프론트 엔드의 전체적인 진행 상황을 공유하고, 추가적인 기능을 탑재하기 위해 매일 오후 2시, 오후 8시 30분에 정기적인 팀 회의 일정을 만들었습니다.
- 프로젝트가 시작한 지 2일밖에 되지 않았지만, 핵심적인 기능의 80%는 구현이 되었습니다. 첫 협업 프로젝트였고, 서로의 업무 효율을 알지 못하였기 때문에 빠르게 핵심 기능을 구성하고, 그 이후 추가적인 기능을 삽입하는 방식으로 프로젝트의 진행을 계단식으로 구성해 차근차근 한 계단씩 올라가도록 하였습니다.
- Node.js 백 엔드와 React 프론트 엔드는 각각 Github를 구성하였습니다.
- Node.js 백 엔드 : https://github.com/archepro84/Bohemian_Rhapsody
- React 프론트 엔드 : https://github.com/HseongH/Bohemian-Rhapsody
스파르톤 1회차
- 7/10(토) 21:00 ~ 7/11(일) 06:00 스파르톤 1회차를 진행하였습니다.
- 참가자는 총 99명이었습니다.
- 항해와는 별도의 Gather에서 진행되었습니다.
스파르톤 1회차 이야기
- 9시간의 프로그래밍 마라톤을 하였습니다. 저는 당일날 항해의 일정이 있었기에 총 23시간의 프로그래밍을 진행하였습니다.
- 스파르톤 시간동안의 목표를 많이 세웠지만, 새벽 1시가 지나자 슬슬 피곤해져 논리적인 사고가 힘들어졌고, 간단한 코드 정리나 필기 노트를 정리하도록 목표를 변경하였습니다.
- 스파르톤의 Gather의 UI가 항해99의 Gather보다 좋아 보였습니다. 부러웠습니다.
배운 점
- 협업의 마음가짐
- Jest, Supertest 테스트 코드 모듈 사용법
- Sequelize 모듈을 이용한 DB 추상화 기법
- AWS EC2 MySQL 설정법
- 백 엔드와 프론트 엔드의 기술 스택
- Git을 이용한 코드 공유 방법
나의 생각과 이야기
- 이번 주 TIL부터는 날마다 작성한 필기 노트를 추가해보았습니다. 매번 날림으로 메모장에 적어놓았던 것을 TIL에 올리기 위해 어느 정도 가다듬어 보는 게 다음에 필기한 것을 돌아볼 때 좋았을 것 같았고, 프로젝트를 진행하면서 어떠한 기술을 사용해 문제를 해결했는지 되돌아보기 좋을 것 같았습니다.
- Notion을 거의 처음 사용해보았는데 큰 어려움 없이 프로젝트에 대한 내용을 작성할 수 있어서 아주 편했습니다. 팀원들 모두 한 번에 모든 문서를 작성하는 게 많은 이점이 될 것 같았습니다.
- 와이어 프레임, API를 작성하는 건 어려운 것 같습니다. 시작부터 완벽하게 구성해야 한다고 생각하다 보니 많은 시간이 걸린 것 같았습니다. 프로젝트를 진행하며 API의 URL이 바뀐다거나, 내부인자의 변수명, 데이터조차 바뀔 수가 있다 보니 완벽함을 추구하기보다는 차근차근 쌓아나가는 방식을 사용해야 할 것 같습니다.
- 스파르톤을 진행해 총 23시간의 프로그래밍을 연속으로 해보았습니다. 몸은 버티고 있는 것 같은데 논리적인 사고를 하지 못해 실질적인 프로그래밍 작업보다는 부가적인 코드 정리나 문서작성 정도의 간단한 작업밖에 하지 못하였습니다.
- 주특기 심화 기간 동안 즐거웠습니다.
'항해99 > WIL' 카테고리의 다른 글
[항해99] WIL 7주차 - 실전 프로젝트 1주차 (후기) (0) | 2021.07.25 |
---|---|
[항해99] WIL 6주차 - Node.js 클론 코딩 기간(후기) (0) | 2021.07.18 |
[항해99] WIL 4주차 - Node.js 주특기 심화 기간 (후기) (0) | 2021.07.04 |
[항해99] WIL 3주차 - Node js 주특기 기간 (후기) (0) | 2021.06.27 |
[항해99] WIL 2주차 - 알고리즘 마라톤 (후기) (0) | 2021.06.20 |