https://chunws13.tistory.com/24
https://chunws13.tistory.com/25
node js 스터디 후 처음으로 API 연결부터, DB 연결, 배포 등 실제 개발에 필요한 핵심적인 것들을 체험할 수 있었다.
별로 만든게 없는 것 같은데 벌써 시간이 많이 지난 상태였다. DB 간 관계 정리, CRUD 기능 구현 등
기초적인 내용들은 구현할 수 있다는 것을 확인함과 동시에 아직 더 구현해 보아야 할 것들이 많이 남아있다는 것을 알게 되었다.
프로젝트를 진행하면서 가장 아쉬웠던 점이 몇 가지 있는데 첫 번째 아쉬운 점은 바로 변수명 설정이었다.
많은 사람들이 변수 고민에 많은 시간을 사용하였다거나, 이게 가장 어려운 일이라고 하는지 몰랐었는데, 이번에 확실하게 알게되었다.
프로젝트 진행에 변수명 설정에 대한 명확한 기준을 가지고 있지 못한 상태로 기능 구현에 들어가니, 변수명을 헷갈리기 일수였다.
그정도 기능 구현하는데 변수명 헷갈릴 일이 뭐가 있을까 싶기도 하지만, 개인적으로 겪은 변수와 관련된 문제는 바로 복수와 단수 구별이었다.
DB 테이블 이름은 복수형으로 통일하였으나, 테이블에 들어가는 필드 이름을 명명할 때, 복수와 단수를 섞어 쓰는 바람에
s 를 붙이고 안붙이고에 따라 오류가 빈번하게 발생했으며, 일일이 찾아내기도 힘들었다.
다음에 프로젝트를 진행한다면 이 것 부터 확실하게 하고 진행해야겠다.
두 번째로 아쉬웠던 점은 Https 로 배포하지 못했던 것 이다.
프론트엔드의 경우, vercel 을 통해 배포하여 Https가 적용된 상태로 배포되었었으나, 백엔드의 경우 DB 연결 정보나 jwt 인증에 사용하는 키의 보안 문제로
aws 인스턴스 대여를 통해 배포하여 http 인 상태였다. https 와 http 간의 통신은 보안상 이유로 인해 통신이 불가능하여
백엔드 보안 수준을 https 로 올리거나 프론트엔트 보안 수준을 http로 낮춰야 했는데, 실제 서비스는 거의 대부분 https 가 적용되어있기 때문에
이번에 한 번 경험해 보는 것도 좋겠다 생각하여 https 적용을 시도했으나, 결과적으로 실패하여, 프론트엔드의 보안 수준을 http로 낮춰 해결했다.
다음 프로젝트에는 https 적용도 목표에 넣어서 진행해야겠다.
추가적으로, 상품 구매와 관련된 로직을 추가 했어야 했다.
예를 들어, 상품이 1개 남아있는 상황에서 2명 이상의 유저가 접속하는 경우, 어떤 방식으로 재고 처리를 할 것인가? 에 대해서
단순히 'DB 트렌젝션 적용' 만이 답은 아닌 것 같았다. 이미 접속한 사람이 구매를 하지 않더라도, 그 유저를 위한 최소 분량인 1개를 미리 차감한 상태에서
다음 접속자에게 재고를 보여주는 등의 조치가 필요할 것 같다.
'Backend > Backend 프로젝트' 카테고리의 다른 글
[클론 코딩] 스카이 스캐너(Skyscanner) 클론 코딩 - 서비스 구조화2 (1) | 2023.06.07 |
---|---|
[클론 코딩] 스카이 스캐너(Skyscanner) 클론 코딩 - 서비스 구조화 (0) | 2023.06.01 |
[클론 코딩] 스카이 스캐너(Skyscanner) 클론 코딩 - 시작하기 (0) | 2023.05.30 |
[미니 프로젝트] 쇼핑몰 플랫폼 만들기 - 구매자용 API (0) | 2023.05.25 |
[미니 프로젝트] 쇼핑몰 플랫폼 만들기 - 판매자용 API (0) | 2023.05.25 |