Review__[Back-end Test: OPENULL]

Jaewon Lee·2021년 3월 8일
1

Review

목록 보기
3/5
post-thumbnail

On.

계약직이 끝난 후, 시작한 오프널 과제!

오프널의 소비의 미학은 채용을 준비하면서 알게 되었고,

서비스가 인상깊어서 지속적으로 관심을 가지게 되었다!

신용카드 없이 분할 결제가 된다는 서비스!! 이런게 가능했다니!

평소 돈, 금융, 주식에 관심이 많은 나로써 눈길이 갈 수 밖에 없는 서비스였다!

그럼, 지금부터 오프널에서 주신 과제에 대한 회고를 작성해 보겠다!

🤩🤩



시험 진행 과정


1) Nest.js 학습

Nest.js에 대해서 들어는 봤지만, 사용해 본 적은 없어서 이번에 처음으로 학습을 해보았다. 공식 문서와 노마드 코더 강의, Youtube 영상들을 보면서 학습을 했다. Nest는 컨트롤러와 서비스로 이루어진 작은 모듈들이 체이닝 되면서 거대한 아키텍처를 이루는 것으로 보여진다!

이 부분에서 아키텍처를 구성하는 것이 정말 중요하구나라고 느꼈다. 예전에 진행했던 프로젝트를 보면 나중에 리팩토링을 하기 어려웠는데, 정해진 규칙없이 API를 자유롭게 개발했기 때문이다.

서버를 개발할 뿐만 아니라, 나중에 유지/보수하는 일도 서버 개발자가 담당하는 일인 만큼 훌륭한 아키텍처는 무엇인지에 대해서 앞으로 더 학습해 볼 것이다! 후후..


2) 스키마 목업


3) API 문서 작성 (🔗API 문서 링크)

개발한 API를 그래프(?) 형태로 도식화했다!

위에서 부터 살펴보면, /users에 속한 엔드포인트는 회원가입, 로그인, 로그아웃이다. 엔드포인트만 보면 간단할지 몰라도, 로그인은 언제나 손이 많이 가는 부분인 것 같다...ㅠ

보이는 것 외에도, 토큰 생성, 쿠키 생성, 인증 등등 여러 Authorization 함수들이 users API를 지탱해 주고 있다.

/orders에 속한 엔드포인트는 주문 관련한 API들이다. /findList는 유저가 주문한 상품을 조회할 수 있는 기능이고, /create는 주문하는 기능이다.

마지막으로, /admins에 속한 엔드포인트는 관리자가 할 수 있는 기능을 모아둔 API이다. 사실 이번 시험에 만들지 않아도 되지만, 있으면 편하니까 만들었다. /addVoucher는 쿠폰을 만들 수 있는 기능이다. 이 기능은 처음에 관리자만 하게 만들어 두었지만, 만드는 과정에서 초기 데이터의 부재로 인해 일단 요청만 하면 만들 수 있게 설정해 두었다. (관리자 모드로 바꾸는 것은 금방이에요!)
이 밖에, /promote는 일반 유저를 관리자로 만들어 주는 API고, /status는 관리자가 회원들의 주문 상태를 변경할 수 있는 기능이다!


4) 모델 작성 및 Nest.js-MySQL 연동

모델은 스키마대로 4개를 작성했다. sequelize-typescript라는 ORM을 사용해서 만들었는데, 서버랑 DB를 연동하는데에 시간을 너무 많이 소비해 버렸다ㅠㅠㅠㅠㅠ

npm 사이트에 나와있는 sequelize-typescript 공식 문서를 보고 차근차근히 학습해서 목표하는 모델을 만들 수 있었다.


5) API 개발!

이번에 nest.js로 API를 개발하며 겪었던 것과 느낀점을 말해보려고 한다!

일단 Nest.js는 Node.js 위에서 돌아가는 프레임워크라고 알고 있다. 그래서 node에서 사용하던 패키지를 install 받아서 사용하려던 경우가 있었는데, 이럴 때 에러가 발생했던 적이 굉장히 많았다. Nest.js를 사용할 때 이전에 사용했던 패키지도 다시 한번 생각해보고 사용해야겠다!

계속 말하는 것 같은데, 아키텍처에 대해서 다시 한번 중요하게 생각한 계기가 되지 않았나 라는 생각을 한다! 훌륭한 아키텍처는 유지/보수 뿐만 아니라 확장에도 용이하다! 공부 열심히 하자!!!! 하하

이 밖에 토큰, 쿠키, 여러 인증 방식, 처음 사용해본 데코레이터 등 겪었던 이슈들에 대해서는 내가 개발하면서 따로 적어 놓은 노션 페이지를 링크로 달아 놓겠다!!🤘

👉 Dev Issues 클릭!


6) 하지 못한 것 😂

  • 아키텍처 리팩토링
  • 코드 리팩토링
  • 더 Functional하게, 더 Clean하게!
  • 수 많은 Decorator 사용
  • sequelize-typescript cli

너무 아쉽다...서버-DB 연동하는 법을 더 빨리 깨우쳐서 진행했으면 보다 많은 것을 할 수 있었을텐데...

제출은 했지만 유종의 미(?)를 거둘겸, 하지 못했던 것도 잘 마무리해보자!

그래도 덕분에 3일 동안 내가 무엇을 할 수 있는지, 얼마나 많은 Task를 진행할 수 있는지 파악할 수 있는 좋은 경험이라고 생각한다 :)



Off.


OPENULL 과제 전형 회고 끝!

🤘😎🤘

기본기가 탄탄한 백엔드 개발자가 되는 그날까지 🔥🔥🔥

profile
Communication : any

0개의 댓글