[Pre Onboarding-회고]Assignment 6

연꽃·2021년 11월 24일
0

Pre Onboarding

목록 보기
10/12

과제 개요

회사

디어코퍼레이션

과제 기간

2021.11.18-2021.11.22

사용 기술스택

  • Typescript
  • Nodejs
  • Nestjs
  • Mysql
  • Typeorm
  • Docker

개발요구사항

디어는 사용자의 요금을 계산하기 위해 다양한 상황을 고려합니다.

  • 우선 지역별로 다양한 요금제를 적용하고 있습니다. 예를 들어 건대에서 이용하는 유저는 기본요금 790원에 분당요금 150원, 여수에서 이용하는 유저는 기본요금 300원에 분당요금 70원으로 적용됩니다.
  • 할인 조건도 있습니다. 사용자가 파킹존에서 반납하는 경우 요금의 30%를 할인해주며, 사용자가 마지막 이용으로부터 30분 이내에 다시 이용하면 기본요금을 면제해줍니다.
  • 벌금 조건도 있습니다. 사용자가 지역 바깥에 반납한 경우 얼마나 멀리 떨어져있는지 거리에 비례하는 벌금을 부과하며, 반납 금지로 지정된 구역에 반납하면 6,000원의 벌금을 요금에 추과로 부과합니다.
  • 예외도 있는데, 킥보드가 고장나서 정상적인 이용을 못하는 경우의 유저들을 배려하여 1분 이내의 이용에는 요금을 청구하지 않고 있습니다.

최근에 다양한 할인과 벌금을 사용하여 지자체와 협력하는 경우가 점점 많아지고 있어 요금제에 새로운 할인/벌금 조건을 추가하는 일을 쉽게 만드려고 합니다. 어떻게 하면 앞으로 발생할 수 있는 다양한 할인과 벌금 조건을 기존의 요금제에 쉽게 추가할 수 있는 소프트웨어를 만들 수 있을까요?

우선은 사용자의 이용에 관한 정보를 알려주면 현재의 요금 정책에 따라 요금을 계산해주는 API를 만들어주세요. 그 다음은, 기능을 유지한 채로 새로운 할인이나 벌금 조건이 쉽게 추가될 수 있게 코드를 개선하여 최종 코드를 만들어주세요.

과정

1.도메인 설계
과제 요구사항 중, 변경에 유리한 코드를 작성하기 위해 도메인 설계에 힘을 많이 쏟았다. 도메인 및 도메인 설계에 대해 잘 몰랐지만 팀원들과 자세히 이야기를 하며 진행하였다.

2. 지도 설계 및 지도 데이터베이스
가장 낯설었던 것이 지도에 대한 데이터를 활용하는 것이었다. 그래서 이와 관련하여 mysql에 대해 많이 찾아보면서 진행하였고, 팀원 중 한 분이 지도 설계를 하셨다. 이것을 토대로 과제를 진행하였다.

배운점

1.도메인 설계
도메인과 도메인 모델에 대해서 전혀 아는 바가 없었다. 그래서 이번 과제에서 도메인고 도메인 모델에 대해 공부하고 이를 설계하는 경험을 했다는 것이 가장 주요한 경험이라고 생각한다. 자세한 사항은 링크에서 알아보겠다.

2. 지도 데이터베이스
이번 과제를 하면서 공간 데이터베이스에 대해서 공부를 하게 되었다. 이것을 통해 지도를 데이터베이스에 저장할 수 있어 이를 활용할 수 있었다. 이 부분에 대해서도 링크를 통해서 더 알아보겠다.

profile
우물에서 자라나는 중

0개의 댓글