본문 바로가기

항해 99/WIL(Weekly I Learned)

[WIL8] 미니 프로젝트(2) 및 최종 프로젝트 시작

항해99
99일, 주니어 개발자로 입사하기에 충분한 시간
hanghae99.spartacodingclub.kr

 

  • 진행 날짜 - 2021.04.09 ~ 2021.04.22  
  • 주특기(Node.js) 목적 - 팀원들과 함께, 백엔드와 프론트 엔드의 역할을 맡아 주제를 선정하고 프로젝트를 진행하자
  • 필수 포함 사항

 

  • 깃 허브 링크 - 
 

WonDongGyun/SpartaStudyClub-1

당신의 학습 목표를 확실하게 관리해드립니다! (Typescript, NestJS, TypeORM, WebSocket) - WonDongGyun/SpartaStudyClub-1

github.com

 


 

항해 99의 여덟번째 주가 밝았습니다!

 

드디어 미니 프로젝트가 끝나게 되었습니다! 저희 조만 Nest Js와 TypeOrm을 사용해서 그런지 기분이 더 좋네요~

 

저희는 첫째주에 스파르타 스터디 클럽이라는 웹사이트를 만들기로 결정하였고, 로그인과 회원가입, 그리고 스스로 자기공부시간을 결정하고 기록을 볼 수 있는 기능을 만들었습니다. 저희 팀원분들이 너무 이쁘게 잘 만들어주셨어요!

 

 

 

자신이 공부한 날짜와 기록을 볼 수 있다.

 

 

그리고 2주차에는 채팅 기능과 그룹 기능을 만들기로 했습니다. 저도 채팅기능에 도전해보고 싶었지만, 팀원분이 하고 싶다고 하셔서 저는 그룹 기능을 담당하기로 했습니다. 그룹 기능을 담당하면서 제일 어려웠던 부분은 데이터를 가져오는 쿼리 부분이었던 것 같습니다.

 

저희는 TypeOrm을 사용하였는데, TypeOrm 쿼리 예시가 외국 글에 많더라고요. 그래서 코드를 찾고 공부하는데 시간이 소요됐습니다.

 

저는 아래의 링크에서 공부하고, 예시 코드를 찾았습니다. 위의 링크는 TypeOrm 데코레이터 문서를 번역한 블로그이고, 아래 링크는 TypeOrm 공식 깃허브입니다. 

 

 

 

 

Yangeok

Yangwook Ian Jeongs' Development Blog

yangeok.github.io

 

 

typeorm/typeorm

ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Elect...

github.com

 

 

 

위의 링크 덕분에 TypeOrm은 createQueryBuilder를 써서 쿼리문을 짜는것이 속 편하다는 것을 깨달았고, 어려운 쿼리들을 짤 수 있었습니다. 말이 어려운 쿼리지 사실은 간단한 조인 쿼리입니다. 기존에 제공되는 find, findOne 등의 메소드로는 이런 쿼리를 짜기 어려웠겠죠?

 

 

inner Join으로 내가 원하는 데이터만 뽑아오는 쿼리

 

 

 

 

저희 팀원분이 만들어주신 채팅 기능도 잘 작동하고요...... (이 채팅방은 게더에서 영감을 얻었답니다!)

 

스파르타 스터디 클럽 채팅방

 

 

 

 

제가 작업한 그룹, 그룹 게시판, 랭킹 기능도 잘 작동하네요!

 

 

 

 

 

이렇게 열심히 2주동안 작업을 마친 결과물을 지금 보여드리겠습니다!

 

스파르타 마스코트 르탄이가 이렇게 귀엽습니다!

 

 

 

 

 

 

 

2주간의 미니 프로젝트도 끝났으니, 이제 항해에서 남은 일정은 단 하나!

 

바로 5주동안 진행되는 최종 프로젝트 입니다.

조장이 되어서 팀원을 모집하고, 팀원들이 전부 으쌰으쌰해서 하나의 프로젝트를 만든 뒤,

그것을 실제 서비스 런칭을 하는 것이죠!

 

저는 조장이 아니라 팀원으로 들어갈 예정이었으나......

어쩌다보니 조장이 되어버렸답니다.

 

 

 

 

최종 프로젝트는 다른 프로젝트와는 다른 점이 있습니다.

바로 현직 디자이너가 참여한다는 점에서 다른데요.

 

그렇기 때문에 팀장이 팀원들보다 더 많은 일을 해야한다고 생각했습니다.

왜 이렇게 생각했냐면, 디자이너가 개발을 안다고 쳐도 개발자 보다는 개발을 모를 것이기 때문에 개발자들과 같이 회의를 해도 생각하는 것이 다를 것이고, 그 생각의 차이를 좁히는 것이 팀장이 해야 할 일이라고 생각했기 때문입니다.

 

따라서 팀장이 팀원들의 의견을 종합하여 간단한 와이어 프레임과 Flow Chart를 만들고, 그것을 디자이너에게 보여주고 같이 수정하는 것이 맞다고 생각해서, 주말 내내 와이어 프레임과 Flow Chart를 만들었답니다. 

 

그리고 요번 프로젝트는 반드시 graphQl로 작업을 해보고 싶었습니다. 그래서 팀원분들이 graphQl을 이해할 수 있도록 강의를 듣게 해드렸답니다. 어쨌든 기간 내에 프로젝트를 완성하려면 해당 기술을 잘 알고 사용해야 할 테니까요. 

 

그렇게 해서 나온 결론은~

graphQl을 안쓰는 걸로 났답니다. 그래서 요번에도 Rest API를 사용해서 최종 프로젝트를 하기로 했습니다. 익숙한 기술을 사용하는 만큼 얼른 프로젝트 끝내고, 추가 기능을 붙여나가고 싶네요~


 

😀 배운 점

TypeORM을 완벽까진 아니지만 어느정도 익혀버린것 같아요~! 쿼리 쓰는 것처럼 자유롭게 쓸 수 있게 되었답니다.

 

😙 느낀 점

미니 프로젝트이긴 했지만, 최종프로젝트처럼 임했습니다. 정말 재밌었어요! 그래서 이렇게 이쁜 결과물이 나온 것 같습니다.

 

😭 아쉬웠던 점

다만 아쉬웠던 건 저의 코드에 쓸대없이 try catch문이 많이 사용되었습니다......

 

다음부턴 줄여나가야 겠어요.

'항해 99 > WIL(Weekly I Learned)' 카테고리의 다른 글

[WIL10] 파이널 프로젝트 (2)  (0) 2021.05.09
[WIL9] 파이널 프로젝트 (1)  (0) 2021.05.02
[WIL7] 미니 프로젝트(1)  (0) 2021.04.18
[WIL 6] 클론코딩  (0) 2021.04.11
[WIL 5] 주특기 2번째 프로젝트 완료  (0) 2021.04.04