세번째 과제 기능 구현 목록은 크게
- 회원가입
- 게임 제작하기 (제작 중 의도치 않게 종료됐을 경우를 대비해 실시간으로 저장된다.)
- 게임 출시하기 (좋아요, 검색, 업데이트)
나는 이번 과제에서 실시간 저장과 게임 출시, 검색 기능 api 구현을 담당했다
이렇게 말하니까 뭔가 많이 한 것 같지만 사실 그렇게 많은걸 하진 않았던 것 같다.
일단 실시간이라는 단어에서 소켓 통신을 떠올렸다.
일정한 주기마다 자동으로 작업중인 데이터를 전송하는 것을 예상했기 때문이다.
하지만 RedBrick의 웹사이트를 분석해보니 소켓 통신인건 맞지만 클릭 이벤트를 통해 데이터를 전송하고 있었다.
소켓을 연결해서 데이터를 저장하는 부분을 구현하기는 했지만
http 통신과 소켓 통신의 차이에 대해 좀더 공부를 해야 할 필요를 느꼈다.
이번에 공부한 것을 요약하자면 http 통신은 일회용 컵이고 소켓 통신은 플라스틱 컵인 것 같다..
그리고 게임 검색 api를 구현할 때 service와 repository로 계층을 나누면서
코드를 어떻게 작성해야 하는가에 대한 고민이 많았다.
개인 적으로 이번 과제는 뭔가를 해낸 것 보다는 앞으로 풀어야 할 숙제들이 더 많은 과제였다.
실제로 이번 과제가 실패하기도 했지만..
소켓에 대한 것도 공부해야 할 숙제로 남았고
검색기능을 구현하며 작성한 코드에 대해서도 고민을 많이 했지만
역할과 책임을 나누는 과정에 대한 숙련도가 낮다고 느꼈다.
유저 아이디
게임 이름
유저 아이디 + 게임 이름
이 세가지 조건으로 검색을 가능하도록 구현했는데
이 기능을 구분 하는 것을 repository에서 구현해야 할지
service에서 구현해야 할지 함수는 어떻게 나눠야 하는 것인지 등등..
테스트 코드 작성법에 대한 것도 여전히 명확하게 숙지하지 못하고 있다.
그래도.. 데이터 베이스 관련 에러때문에 게임 출시 기능을 사용하지 못하는 상황에서
테스트 코드 작성으로 이 코드가 내가 원하는대로 기능하고 있는지 확인 할 수 있었다.
개인적으로 한게 많이 없다고 느꼈었지만, 사실 돌이켜보면 많이 배웠다.
팀원분과 같이 repository 패턴을 적용하고 리팩토링 하며 고민하는 과정에서
어떻게 하면 더 확장성 있는 함수를 만들 수 있는지 배우고
또 그것에 대해 다시 생각해보는 계기가 되었다.
사담을 통해서도 자바스크립트, 타입스크립트에 대한 이해의 중요성에 대해 한번 더 느꼈다.
또 개인적으로, 앞으로 이 코스가 끝나면 혼자서 하는 프로젝트는 심심해서 어떡하지 라는 걱정도 들었다.
3개월간 혼자 한가지 프로젝트만 주구장창 해온 과거의 내가 참 대단하다고 느꼈다.
부족한 것
- 소켓 통신과 http 통신에 대한 이해
- 테스트 코드 작성법
- 계층형 아키텍처
결과물
https://github.com/preOnboarding-Team13/Assignment-3-redbrick
'개발 공부' 카테고리의 다른 글
다섯번째 기업 과제 회고록 (Human Scape) (0) | 2021.11.18 |
---|---|
원티드x위코드 프리온보딩 네번째 기업과제 (에잇퍼센트) 회고록 (0) | 2021.11.15 |
원티드x위코드 프리온보딩 두번째 기업과제 (Mapia Company) 회고록 (0) | 2021.11.08 |
프리온보딩 지원 동기 (0) | 2021.11.06 |
원티드x위코드 프리온보딩 첫번째 기업과제 (AIMMO) 회고록 (0) | 2021.11.04 |