- 일시 : 2024-03-26. 14 : 30 ~ 16 : 00
- 장소 : 연암공대 산학협동관 러닝메이트실
- 참석자 : 권재웅, 이재현, 장건우, 정준원, 유원준
- 주제 : 프로젝트 전반적인 개발 사항에 대한 내용
- 프론트엔드와 백엔드 프레임워크는 가장 익숙한 Flutter & Spring boot 를 사용
- Springboot 버전은 2.x 가 익숙하지만 공식적으로 사용이 중지되어 3.x 버전을 선택함.
- 데이터베이스 역시 익숙한 MySql을 사용
- 형상관리로는 Github 를 사용
- main, dev , feat 브랜치로 나누어 사용
- main 은 배포에만 사용
- dev 는 개발 단계에서 사용
- feat 는 기능 별 dev 에서 나뉘어 개발, 개발 후 dev 와 merge 하여 사용
- 상세한 프로젝트 구조, 및 코드 컨벤션 등은 추후 논의 예정
- 일주일에 두번, 진행상황 공유 및 코드 리뷰 등의 시간 배정하는 것으로 결정
- 역할 분담
- 프론트 엔드 : 이재현
- 전체 UI 구성 및 기능 개발
- 백엔드 : 정준원, 장건우, 유원준, 권재웅
- 정준원
- 결제 영역 담당
- 장건우
- 사용자 영역 담당
- 유원준
- 메뉴 관리 영역 담당
- 권재웅
- 식권 영역 담당
- 정준원
- 데이터베이스 : 권재웅
- AWS 아키텍처 : 정준원, 이재현
- 프론트 엔드 : 이재현
- 소비자(이하 학생), 외부인, 관리자 세 종류로 구분하는 것으로 결정
- 회원가입 시, 학생 및 관리자는 이메일 인증 구현하는 것으로 결정
- 학생은
학번@st.yc.ac.kr
관리자는사원번호@yc.ac.kr
임 - 외부인의 경우 이름, 전화번호만 입력받고, ID 랜덤 생성 로직 으로 처리 결정
- 학생 및 관리자 ID 는
21860004
와 같이 8 자리로 구성임 - 외부인의 ID 생성 규칙은 7 자리의 숫자로 구성, 1_000_000 ~ 9_999_999 까지의 범위임
- 비밀번호는 Bcrypt 알고리즘을 사용, 개인정보는 256-bit AES 알고리즘 사용하는 것으로 결정
- 결제 내역 데이터를 생성후 결제가 정상 처리 되면 티켓을 발행하도록 구현하는 것으로 결정
- 결제는 정상 처리/환불 상태만 갖도록 구현하는 것으로 결정
- 결제 실패는 포트원 API 로 확인 후 프론트엔드에서 처리하는 것으로 결정
- QR Code 는 key 를 바탕으로 백엔드 에서 생성 후 binary 로 변환하여 응답하는 것으로 결정
- QR Code 생성 방식, key 생성 규칙은 추후 논의 예정임
- QR Code 인증 시(티켓 사용 시), 딜레이 등에 의한 중복 입력 방지가 필요할 것으로 논의됨
- QR Code 인증 시, 한번에 하나의 티켓만 사용 가능함
- QR Code 사용 여부 데이터(컬럼)가 필요할 것으로 결정
- 한명의 사용자가 여러개 티켓 구매 가능한 것으로 결정
- 아래의 두 구현 사항 중 어떤 것을 선택할 지 추후 논의 예정임
- 관리자 페이지에서, 메뉴를 CSV 로 받아서 DB에 저장하는 기능 구현
- AWS 인프라 상에서 CSV 를 받아 바로 DB 로 저장하는 기능 구현
- 데이터 상으로는 각각의 음식으로 구분해서 저장하는 것으로 결정
- 메뉴에서 제목으로 표시할만한 메인 메뉴를 구분할 수 있는 데이터(컬럼) 필요할 것으로 결정
- Jenkins 를 사용하는 것으로 결정
- 사용해본 경험이 없어 추후 사용하는 법 등의 공부하는 시간을 갖기로 결정