[Pre Onboarding] 기업과제 레드브릭 TIL

1 minute read

[Pre Onboarding] 기업과제 레드브릭



2번째 기업 과제가 끝나고 11월 8일 오후 4시부터 11월 10일 오전 10시까지 3번째 과제인 레드 브릭 과제를 진행했습니다.


레드 브릭의 과제 내용 은 다음과 같았습니다. (자세한 과제 내용은 생략하겠습니다.)

  • 회원가입
  • 게임 제작
  • 게임 출시


이번 과제에서 저는 User, Auth 기능 구현 & Unit Test 구현, AWS 서버 배포 를 진행했습니다. Nest.js의 Typescript로 회원가입, 로그인 기능을 구현해본 적이 없어서 이 부분을 맡아 구현했습니다.


먼저 DB Modeling 과 API 명세서를 작성했습니다. 이번 과제는 게임 제작인 만큼 실시간 처리가 굉장히 중요했고 Redbrick 의 웹페이지에서 구글 크롬의 개발자 기능을 이용해 Network 통신을 확인했습니다. 해당 서비스에서 실시간으로 편집할 때마다 소켓 통신으로 데이터를 전송하고 있다는 것을 확인했습니다. 그래서 저희 팀은 소켓 통신을 사용하기로 정했습니다.

Javascript 로 소켓 통신을 하는 부분은 구현을 해본 팀원이 많지 않았기 때문에 사전 공부를 각자 한 뒤 모여 소켓 통신 연결이 다같이 실습을 해보았습니다.


그 후 각자 파트를 나눠 개발을 진행했습니다. 리팩토링을 진행하는 과정에서 API 기능을 Repository에서 구현해야하는가 Service에서 구현해야 하는거에 대한 논의가 진행되었고 그 결과 Repositor에서 자세한 기능을 구현하고 Service에서 불러오는 형식으로 진행했습니다. 이러한 논의가 개발 코드를 더 좋은 방향으로 잡을 수 있었습니다.


그리고 처음으로 테스트 코드에 대해 작성을 진행해보았습니다. 하지만 시간은 제한되어 있지만 처음이다 보니 명확하게 숙지를 하지 못한 채로 진행할 수 밖에 없었습니다. DB 연결 없이 이 코드가 제대로 기능하고 있는지를 확인할 수 있었습니다. 앞으로 테스트 코드에 대한 공부가 더 필요하다는 것을 깨달았습니다.


저희 팀은 실시간 게임 프로젝트인 만큼 관계형 데이터베이스보다 비 관계형 데이터베이스가 더 빠르게 저장될 수 있다고 생각해 MongoDB를 이용해 진행했습니다. 하지만 개발 후반부에서 치명적인 부분을 발견했습니다. Mongoose Entity의 관계 설정 문제 때문에 Maximum Call Stack Error 가 발생했고 이 부분을 뒤늦게 발견했기 때문에 실제로 수정은 진행하지 못했습니다. 하지만 Entity 설정을 수정한다면 오류를 해결 할 수 있을 것이라고 생각합니다.


이러한 오류 해결과 프로젝트 경험을 통해 점차 성장하고 있는 모습을 발견했고 리팩토링, 테스트 코드 등 혼자서 했다면 쉽게 생각하지 못했던 것들에 대해 진행할 수 있었습니다. 🤗


저희가 만든 결과물은 아래 링크를 통해 확인하실 수 있습니다. 😄

감사합니다~

결과물

Redbrick-Nest.js

Leave a comment