WIL) First Team-Project (5.23~5.29)

0

FIRST TEAM PROJECT

목록 보기
3/4
post-thumbnail

#Fact(사실, 객관)

  1. 실시간 채팅 구현
  2. 댓글/대댓글 조회(페이지네이션)
  3. 코드 리펙토링 및 에러처리

#Feelings(느낌, 주관)

1. 실시간 채팅 구현 : 처음 써보는 기술이라 처음에 조금 무서웠다. 하지만, 막상 공부를 해보니 개념적으로는 어려운 것이 아니었다. 괜히 겁을 먹었나 보다....우리 서비스에서는 1대1 채팅기능이여서, 나는 room을 만들어서 채팅을 할 수 있게끔 하는 것을 생각했다. 생각보다 간단하다고 생각하였는데, 그렇지 않았다ㅠㅠ roomId는 어떻게 만들것인지 이것을 프론트에서도 어떻게 활용을 할 수 있을지를 고민을 많이했다. 그래서 결국 api를 만들었다. 그리고 DB저장을 하고 로그를 불러오기 위해 fetch api를 만들었다.
2. 댓글 / 대댓글 조회(페이지네이션) : 프론트에서 10개씩 조회가 되게끔 페이지네이션 형식으로 값을 줄 수 있냐는 요청이 들어왔다. 나는 처음에 TypeORM기능 밖에 쓸 줄 몰라서 고민을 많이 하였는데, 역시나 구글링을 통해 Querybuilder라는 기능을 알게 되었다. 관계를 맺은 테이블에서 특정 칼럼만 조회하고 싶은 경우, 쿼리빌더가 효율적이라고 하여 처음으로 적용을 하였다. 솔직히, 코드가 길어지고 기능은 TypeORM과 별 다를게 없어보였다. 그래도 이것이 존재하는 이유가 있을거 같아서, 추후에 좀 더 공부를 해볼 생각이다.
3. 코드 리펙토링 및 에러처리 : 어떻게 보면, 리펙토링 자체가 처음이다...그래서 크게 무엇을 하기 보다는 줄 간격 및 가독성이 좋게 Auto-formatting을 하여 가독성이 좋게 정리를 하였다. 그리고 변수명에 있어서도 직관적이지 않은 것을 수정하였다. 그리고 에러처리를 위해서 어떤 에러가 있고 언제 써야 하는지 찾아보고 적용해보았다.

#Findings(배운점)

1. 실시간 채팅 구현 : 알고보니 socket.io는 javascript 기반의 라이브러리 였다. Websocket을 기반으로 만들어졌다고 하는데 Websocket은 빠르고 적은 양의 데이터를 주고 받을때, socket은 유지보수가 쉽고, room 개념을 통해 브로드캐스팅 방식으로 정보를 주고 받을 수 있다는 것을 알았다. 마냥 개념만 알기 보다는 이번 프로젝트에서 마지막에는 room개념을 선택해서 구현을 nestjs로 했다. 그전에 websocket으로도 구현해보고, socket으로 nodejs로도 구현해본 경험이 값지게 느껴진다. 나중에 좀 더 자세히 공부해봐야겠다.
2. 댓글 / 대댓글 조회 구현(페이지네이션) : 이 기능을 구현하면서, 내가 좀 더 자세히 배운 것은, TypeORM의 세부적인 기능과 활용, 쿼리빌더 사용법이였다. 아직 쿼리빌더 사용은 익숙치 않아서, 토이 프로젝트를 하게 되면 쿼리빌더를 자유롭게 쓰는 연습을 해봐야겠다.
3. 코드 리펙토링 및 에러처리 : 주관적인 생각이지만, 리펙토링을 잘하려면 가독성이 좋은 다른사람들의 코드도 많이 보고, 변수명, 어떤식으로 리펙토링을 하는지 공부해 봐야할 것 같다.

#Affirmation(자기 선언)

➡️ 이번주는 프로젝트 마지막 주라서 되게 정신없이 바쁘게 흘러간거 같다...더 깊게 공부해보고 싶은 것도 있었지만, 발표 날이 얼마 안남아서 앞만 보고 달렸던거 같다. 어서 빨리 프로젝트 발표도 성공적으로 마치고, 프로젝트 하면서 모자라다 생각한 부분을 채워넣고 싶다.

profile
끝날때 까지 끝난게 아니야. 결국 내가 이겨!

0개의 댓글