[TIL] 키오스크 프로젝트 - 개발 1일차 -

신승현·2024년 4월 1일

TIL

목록 보기
50/72
post-thumbnail

이번 주의 발제가 끝나고 난 뒤 바로 팀원들과 회의를 하며, 어떤 방식으로 프로젝트를 개발할 지 바로 회의에 들어갔다.

이번 팀원들과 한 팀이 되고, 2주 동안 매일 2번씩 회의를 했더니 모두 의견을 척척 내놓으면서 적극 수용해서 막힘이 없이 진행이 됐다.

오늘 작성했던 프로젝트 회의 결과록을 적어보려고 한다.

1️⃣ 프로젝트 제목 및 설명

제목 : Oripresso

설명 : 메인페이지에는 카페의 메뉴들과 가격을 표시하고, 주문내역 페이지에는 선택한 메뉴들과 합산 가격, 결제하기 버튼을 표시하는 키오스크 어플입니다.

2️⃣ 와이어프레임

와이어프레임은 디자인을 전공하셨던 팀원분이 계셔서 'Figma'를 이용해 생각보다 빠르게 진행이 됐다.

3️⃣ 개발 기능 정리

✅ 메인 페이지

  • 키오스크 화면을 보여주는 페이지 구성
  • 키오스크 화면 자체가 하나의 ViewController

✅ 상단 메뉴 카테고리 바

  • 메뉴 카테고리(카페인, 논카페인, 디저트, 베이커리)를 정의하고 메뉴 구성
  • UIStackView , UICollectionView 등을 활용하여 화면을 구성

✅ 메뉴 화면

  • 특정 메뉴 카테고리 클릭 시, 메뉴 카테고리에 해당하는 메뉴들을 표시
  • UITableView 등을 활용하여 화면을 구성

✅ 주문 내역 페이지

  • 새로운 ViewController
  • 선택한 메뉴를 출력하는 페이지 구성
  • 총 주문 메뉴 개수를 “총 X개” 로 표시
  • 주문한 메뉴들이 표시될 수 있도록 구성
  • 각 메뉴를 표시하면서 각 메뉴 옆에 +-버튼을 만들어서 해당 메뉴의 수량을 조정
  • UITableView 등을 활용하여 화면을 구성

✅ 취소하기 / 결제하기 버튼 화면

  • 주문 메뉴 전체를 취소하는 취소하기 버튼을 구현
  • 주문 메뉴 전체를 결제하는 결제하기 버튼을 구현
  • 결제하기 및 취소하기 버튼 클릭 시 UIAlertController 창 표시

✅ 결제 완료 페이지

  • 새로운 ViewController
  • 주문이 완료된 것을 보여주는 페이지 구성
  • 메인화면으로 돌아가는 버튼 구성

프로젝트의 페이지는 총 3개로 구성했으며, '메인 페이지'에 2명, '주문 내역 페이지'에 2명 그리고 '결제 완료 페이지'에 1명을 배치하여 개발할 수 있도록 계획했다.

4️⃣ 코드 컨벤션

1. 네이밍 규칙:

- 클래스, 구조체, 열거형 이름은 UpperCamelCase를 사용합니다.
- 함수, 변수, 상수 이름은 lowerCamelCase를 사용합니다.
- 약어는 모두 대문자로 표기합니다. (예: URL, ID)

2. 들여쓰기 및 공백:

- 들여쓰기는 공백 4칸을 사용합니다.
- 콜론(:) 앞에는 공백을 없애고, 콜론 뒤에는 공백을 추가합니다.
- 연산자 앞뒤로 공백을 추가합니다.
- 쉼표(,) 뒤에는 공백을 추가합니다.
- `if let` 구문이 길 경우에는 줄바꿈하고 한 칸 들여씁니다.
- 빈 줄에는 공백이 포함되지 않도록 합니다.

3. 줄 길이 제한:

- 한 줄의 길이는 80자 또는 100자를 넘지 않도록 합니다.
- 긴 줄은 적절한 위치에서 줄바꿈하고 들여쓰기를 사용합니다.

4. Import

- 모듈 임포트는 알파벳 순으로 정렬합니다. 내장 프레임워크를 먼저 임포트하고, 빈 줄로 구분하여 서드파티 프레임워크를 임포트합니다.

5. 주석:

- 코드의 의도와 목적을 명확히 설명하는 주석을 작성합니다.
- `///`를 사용해서 문서화에 사용되는 주석을 남깁니다.
- `// MARK: -`를 사용해서 연관된 코드를 구분짓습니다.

6. 브레이스 스타일:

- 여는 중괄호({)는 같은 줄에 위치시키고, 닫는 중괄호(})는 새로운 줄에 위치시킵니다.
- 조건문과 반복문에서 중괄호는 항상 사용합니다.

7. 그 외 규칙:

- guard 문을 사용하여 옵셔널 바인딩과 조건 검사를 수행합니다.
- 타입 추론을 활용하되, 명시적으로 타입을 지정해야 할 때는 지정합니다.
- 프로토콜 채택 시 extension을 사용하여 관련 메서드를 그룹화합니다.
- 필요 이상으로 복잡한 코드는 피하고, 간결하고 이해하기 쉽게 작성합니다.

프로젝트의 코드 컨벤션은 팀원 중에 팀프로젝트를 진행했던 분이 계셔서, 그 분이 팀에서 정했던 코드 컨벤션을 차용해서 사용하기로 정했다.

profile
개발자

0개의 댓글