일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- HTML정의
- Border
- colspan
- rowspan
- tag
- textarea
- :active
- ::first-line
- JavaScript
- Ol
- BR
- table
- !doctype html
- Li
- img
- JAVA 개발 환경 설정
- select
- 한정수 강사님
- Head
- ::before
- ::first-letter
- 인라인 레벨 요소
- 전체 선택자
- 속성 선택자
- Python
- ul
- Form
- Title
- option
- BODY
- Today
- Total
개발 공부 기록하기
포스 애플리케이션 <Cafe POS> 기획 본문
국비지원 학원 수업을 수료한 이후 배운 기술들을 잊어버리기 전에, 작더라도 프로젝트를 혼자 하나 만들어봐야겠다는 생각이 들었다.
어떤 걸 주제로 만들어볼까 고민하다가, 어김없이 간 카페에서 낯선 아르바이트생이 내 주문을 포스기에 입력하는 모습이 새삼스럽게 눈에 들어왔고, '이 포스 프로그램을 따라 만들어보면 어떨까?' 하는 생각이 들었다.
내가 아직 개발 초보여서 그런지 UI가 더 익숙하게 다가왔던지라, UI를 통해 필요한 기능을 기획하는 것이 더 편할 것 같았다.
그림을 잘 그리지는 못하지만, 나만 이해할 수 있으면 되니까, 태블릿에다 그림을 그리는 것으로 기획을 시작했다.
이다음부터는 포스 프로그램을 사용하는 사람들에게 어떤 기능이 있는 게 좋을까.. 계속 가지치기하면서 기획을 확장해 나갔다.
🤔 샷 추가, 덜 달게 등 기본 레시피를 커스텀하기를 원하는 고객들이 분명히 있을 거야.
-> 메뉴마다 가능한 옵션 목록들을 관리하고, 메뉴를 주문할 때 그 옵션이 선택됐는지 여부도 관리가 필요하겠다.
에스프레소 카테고리에 있는 메뉴들 전부에 똑같은 옵션 선택지를 주려고 했는데, 가만히 생각해 보니까 기본 메뉴인 아메리카노와 카페라떼에서부터, 우유 옵션이 필요한 게 있고, 아닌 게 있으니까, 옵션은 개별 메뉴마다 설정할 수 있어야겠다.
🤔 고객들이 한 가지 메뉴만 주문하지 않는 경우도 있을 거니까
-> 한 개 주문에 대한 목록 추가가 완료되기 전까지 주문 목록 관리가 필요하겠네.
이 상황에서는 주문하려다가 취소할 수도 있고, 얼마든지 "이거 말고 저걸로 바꿔주세요" 수정도 가능하니까, DB 데이터로 관리하는 대신에, 결제창으로 넘어가기 전까지는 redux 상태관리로 그 목록을 관리하는 게 낫겠다.
🤔 보통은 카페와 같은 영세 사업장에서 한 달에 한 번씩은 이번 매출이 얼마나 이루어졌는지 결산 및 통계를 내지 않았던가? 생생정보 같은 TV 프로그램에서 맛집들 소개해줄 때 월 매출 몇 천만 원!! 이러고 나왔던 기억이 나는데..
-> 그러면 결제 내역도 관리해야겠네. 주문한 내역을 table에 저장하는 건 어떤 시점에 하는 게 좋을까? 일단은 포스기 메인 화면에서 결제 창으로 주문 정보를 넘길 때 저장하면 좋을 것 같은데.
왜냐하면
1) | 결제 전, 결제 완료, 환불 중, 환불 완료와 같은 기록을 남길 수 있어서 => 결산할 때 '결제 완료'된 데이터만 고르면 되고, 환불된 내역도 매출에 포함되지는 않지만, 통계 자료를 만들 때 필요할 수 있을 것 같아서 ex, 인기 메뉴, 환불 많은 메뉴 등 |
2) | 고객이 환불을 원할 경우, 어떤 데이터가 환불되는 것인지 기록을 남길 수 있어서 |
3) | 결제 방법(현금, 체크카드, 신용카드)을 남길 수 있어서 환불할 경우를 고려했을 때, 결제 방법을 기록해두면 환불 절차를 밟기 수월해질 수 있어서 |
4) | 주문 날짜 및 시각을 기록할 수 있어서 (결제 완료되고 나면, 그 때 결제 시각으로 바꾸면 되니까) |
5) | 1개의 주문에 대한 총 금액을 기록할 수 있어서 |
6) | 개별 메뉴 또는 옵션에 대해서가 아닌, 총 금액 전체에 할인 쿠폰이 적용되는 경우를 기록할 수 있어서 |
🤔 고객이 주문하는 목록을 추가할 때, 메뉴 블록을 누르기만 하면 화면에서 해당 메뉴가 주문 목록에 추가됐음을 보여주는 게 좋을까? 아니면 그 메뉴에 적용할 옵션을 선택할 수 있는 모달창을 띄워주고 완료버튼을 누를 때에야 주문 목록에 추가해 주는 게 좋을까?
-> 후자를 생각한 건, 아무래도 우리네 삶을 많이 파고들어버린 모바일 애플리케이션의 사이렌 오더 방식을 떠올린 것 같은데. 이게 웹앱에서도 동일하게 효율적인 방법일까?
🤔 각각의 메뉴 정보를 수정할 때는, 화면으로 기획한 신 메뉴 추가 컴포넌트를 재활용하는 게 좋겠는데.
-> 신 메뉴를 추가할 때는 처음부터 즐겨찾기 목록에 추가되지는 않도록 하기 위해서 모달창에서 그 선택지를 만들지 않겠다고 기획했는데, 메뉴 정보를 수정하면서는 그 선택지를 사용자에게 보여주는 게 좋을까? 즐겨찾기 여부는 메인 화면에서 각 메뉴 블록마다 즐겨찾기 여부를 표시하는 아이콘을 만들어 두고, 그 아이콘을 토글 버튼처럼 사용하려고 했는데.
-> 메뉴 정보 수정하는 모달창에서 즐겨찾기 선택지를 사용자에게 주는 게 좋을까? 만약 보이지 않게 만든다면 쿼리문을 쓸 때, 이 즐겨찾기 여부를 관리하도록 하는 컬럼의 값은 서버로 어떻게 데이터를 넘겨야 하지? 정보를 수정하는 메뉴마다 즐겨찾기 여부는 항상 다를 텐데.
가볍게 생각했던 화면 하나에 이토록 많은 기능이 필요할 줄이야🤣
전국에 계신 개발자분들 정말 존경스럽습니다...👍👍👍
'Project' 카테고리의 다른 글
첫 번째 토이 프로젝트, to do list 순서도 그리기 (0) | 2023.02.02 |
---|---|
아무것도 모르면 좀 어때! 맨 땅에 헤딩 가즈아! (0) | 2023.02.02 |