나만의 작은 도서관

[개인 과제][KPT 회고] AWS서버를 이용한 캐릭터, 아이템, 아이템 장착/탈착, 구매/판매 API 제작(Node.js - 2) 본문

JavaScript/회고 모음

[개인 과제][KPT 회고] AWS서버를 이용한 캐릭터, 아이템, 아이템 장착/탈착, 구매/판매 API 제작(Node.js - 2)

pledge24 2024. 5. 30. 23:31

시작 페이지 화면

 

개요

5/23 ~ 5/29 기간동안 진행된 두번째 Node.js 과제를 마무리 했다. 확실히 처음보다 능숙하게 express.js를 다루게 되어 이것저것 고민하고 답을 얻는데 힘이 덜 들었던만큼 미래의 나에게 지금의 내 심정을 알려주자.

 

https://github.com/pledge24/node-lv2

 

GitHub - pledge24/node-lv2

Contribute to pledge24/node-lv2 development by creating an account on GitHub.

github.com

 


Keep - 현재 만족하고 있는 부분

 

코드 재사용

  • 이번에도 코드 재사용을 적극적으로 했다는 것은 아주 잘한 점이다. 처음부터 전부 만들려는 고집은 공부를 하는 데엔 도움이 되지만 실제 프로그램을 짤 때는 좋지 못한 생각이다. 레퍼런스가 있다면 최대한 레퍼런스를 사용하는 것이 유지보수하기도 좋고 구조도 보다 깔끔하게 짤 수 있다. 

선택 사항 도전

  • 매번 주어지는 과제에 선택 사항까지 도전하는 자세는 바람직하다. 좀 더 높은 역량을 얻기 위해 끊임없이 도전하는 것은 개발자로써 꼭 필요한 마음가짐이라고 생각한다. 앞으로도 선택 사항을 필수 사항처럼 반드시 구현하려고 접근하도록 해보자!

Try...Catch문 적극 사용

  • 이전 과제에서 try...catch문을 사용하지 않아 오류에 대한 대응이 되지 않는다는 피드백을 받았었다. 서버에게 있어 오류는 치명적이기 때문에 반드시 처리해야하는 작업이라는 것을 알게되었었다. 그래서 이번에는 모든 http Method에 try...catch문을 적용하고 각 catch문에 발생한 오류가 무엇인지 메세지를 반환하도록 설계하였다. 이로써 예상치 못한 오류는 전부 catch문으로 진입하여 오류를 보다 안전하게 잡아낼 수 있게되었다. 앞으로도 try...catch문을 적극적으로 사용해보자!

 


Problem - 불편하게 느끼는 부분

 

.prisma 파일 이름은 대문자를 사용하면 안된다.

  • 보통 데이터베이스의 이름은 snake case로 작성한다. linux기반 운영체제는 변수명의 대/소문자를 구분하는 반면, windows 운영체제는 대/소문자를 구분하지 않기 때문에 변수를 식별하는데 대문자를 사용하면 다소 linux기반 운영체제를 사용하는 개발 환경에서 불편함이 생긴다. 그렇기 때문에 이번 과제에서 데이터베이스 관련 변수이름은 전부 snake_case로 작성하였다. 그럼 문제가 없는 것 아니냐? 할 수 있겠지만 .prisma파일 이름 또한 대문자를 사용하면 안된다는 피드백을 받았다. 아마 터미널에서 .prisma 파일의 이름을 작성하는 경우가 존재하기 때문에 그런 것이 아닐까 한다. 다음 부터는 .prisma파일의 이름은 대문자를 사용하지 말아야겠다.

Try - Problem에 대한 해결책, 당장 실행 가능한 것

 

리팩토링 

  • 작성한 API들 중 for문을 돌면서 매 반복마다 데이터를 create하는 로직이 있었다. 반복을 한 횟수만큼 create를 진행하기 때문에 이는 데이터가 많아지면 실행시간을 크게 잡아 먹을 수 있다는 문제가 있다. 이런 문제를 해결하기 위해 createMany를 사용하는 방법처럼 보다 효율적인 로직을 짜야겠다는 생각이 들었다. 아직 prisma를 다루는 것이 미숙해서 발생한 문제이기는 하지만 이번 경험을 통해 다음에는 좀 더 리팩토링에 신경을 써야겠다.

마지막으로...

prisma를 처음 사용해보는 과제라 이것저것 조건을 걸어두고 데이터베이스에서 데이터를 가져오거나 쓰는 작업을 의도한 대로 사용하지 못했다. 이것이 과제를 진행하는 데 있어 기능 구현 자체는 문제가 되지 않아 괜찮았지만 최적화가 잘되었냐고 물어보면 조금 자신이 없는 것도 사실이다. 그래도 아직 prisma를 사용한 지 일주일밖에 안되었으니 앞으로 반복적으로 사용하면 지금보다 더 나은 결과물이 나올 것이라 기대한다. 미래에 내가 더 열심히 공부하기를...!