ㅁㄴㅇㄻㄴㅇㄹ

우아한 테크 캠프 2차 테스트 합격 후기 본문

카테고리 없음

우아한 테크 캠프 2차 테스트 합격 후기

hanbin8269 2021. 6. 11. 01:59

6월 2일에 날라온걸 지금 쓰고있다...

친구가 지원하길래 재밌어 보여서 지원했던 우아한 테크캠프의 2차 코딩테스트 합격 이메일이 날라왔다.

 

문제는 API 명세서를 보고 간단한 로그인/로그아웃 구현하고 테이블을 만드는 예제였다.

우선 문제를 받자마자 언제나 그랬듯이 아키텍처에 대한 고민을 시작했다.

 

난생 처음 접해보는 프론트 코드를 짜야 해서 막연한 부분이 있긴 했지만 확장성DRY 두 가지만 생각하며 구조를 작성하고자 했다.

지금 이 문제를 받는다면 엔티티부터 정의하고 시작할 거 같다

 

두 가지중 확장성에 가장 큰 비중을 두고 구조를 작성했다.

 

users, posts, articles 와 같이 기능으로 폴더를 분리하기 보다 controller, models, views 처럼 역할로 폴더를 분리하는 것을 선호하는 스타일 (인터페이스를 만들어 다형성을 적용하기 편함) 이기에 역할로 폴더를 분리했다.

 

프로젝트 구조 고민에만 1시간은 잡아먹은듯 하다.

 

다음으로 과제에서 제공되는 API 명세서를 보고 fetch 혹은 axios로 요청해 검색 기능(간단한 Like 서치)이 있는 테이블을 구현해야 했는데, 익숙하지 않은 언어에 DRY를 지키려 노력하며 코딩하다 보니까 개발 속도가 나오지 않았다. 

 

프론트엔드 입장에서 개발하면서 느낌점이 몇가지 있는데, 아래와 같다.

  1. Pagination은 서버에서 무조건 제공해 줘야 하는구나 (너무 많은 정보를 bulk 조회 해버리면 로직 속도가 매우 느려질 것 같다.)
  2. 알고리즘을 의식의 흐름대로 작성할 수 있는 콜백함수가 마음에 들었다.
  3. 자바스크립트의 세미콜론은 왜 있는걸까
  4. 파이썬 하고싶다

 

내년에도 문제가 같다면 jQuery, fetch, JS의 각종 내장 함수 등은 숙지하고 테스트를 보는 편이 좋을 거 같다.


4시간동안 집중하먼서 풀었지만, 결국 필수 조건만 만족시키고 부가 조건은 만족시키지 못했다.

막상 끝나니 중간에 잠깐 쉬었던 시간이 아깝게 느껴졌다.

 

어찌보면 새로운 도전이었는데, 크게 느낀 것이 안 될거 같아도 일단 고민이라도 해보자는 것이다.

 

그래서 결국 2차 과제를 합격했는데 결과물은 마음에 들지 않았다.


최근에 클린 아키텍처에 관한 책을 읽으며 들은 생각인데, 내가 알고있던 아키텍처가 각 레이어 간의 종속성을 많이 위배한다는 사실을 알게 되었다. ex) 인터페이스 어댑터 레이어에서 로그인 로직을 처리함

또한 여러 에지케이스를 처리하기 위해 프로젝트 구조가 예기치 못한 많은 변경을 가졌는데 이에 대처하는 방법을 알고 싶어졌다.