홈 › 미니 프로젝트 › 01 / 4

1단계: 콘솔 주문 관리 (초급 기술)

섹션 6진행 0 / 4

1단계: 배열과 클래스로 만드는 콘솔 주문 관리

소규모 쇼핑몰의 회원·상품·주문을 초급 문법만으로 콘솔에서 관리한다. 이 단계에서 쓰는 기술: 클래스와 생성자, private 필드 + getter, 배열(Member[], int[]), if/for, static 메서드 분리, String.format. 마지막에 "이 코드가 어디서 아파오는가"를 짚어 2단계의 동기를 만든다.

1. 이번 단계의 목표

이 프로젝트 레벨은 하나의 도메인 — 온라인 쇼핑몰 정산 시스템 — 을 4단계에 걸쳐 키운다. 각 단계는 앞 단계 코드를 리팩터링·확장하며, 새로운 기술은 "배웠으니까"가 아니라 "이 문제를 풀려면 필요하니까" 등장한다.

1단계의 요구사항은 다음과 같다.

# 요구사항 세부
R1 회원 등록 ID, 이름, 보유 포인트
R2 상품 등록 ID, 이름, 카테고리, 단가, 재고
R3 주문 생성 회원 1명이 상품 여러 개를 수량과 함께 주문. 재고 차감, 결제액의 1% 포인트 적립
R4 주문 목록 주문 번호, 회원 이름, 항목별 금액, 주문 합계
R5 총액 계산 전체 매출, 회원별 매출, 남은 재고
R6 실패 처리 없는 회원/상품, 재고 부족, 저장 공간 초과 시 메시지 출력 후 무시

제약은 하나다. 초급 레벨에서 배운 것만 쓴다. 컬렉션(ArrayList, HashMap) 없이 배열로, 예외 없이 null과 boolean으로, 인터페이스 없이 구체 클래스만으로. 이 제약을 지키면서 R1~R6을 만족시키면, 자연스럽게 "왜 컬렉션이, 왜 예외가, 왜 인터페이스가 필요한가"를 몸으로 알게 된다.

이전 단계가 없으므로 "이전 단계의 한계"는 없다. 대신 이 단계가 끝날 때 여섯 가지 아픈 지점을 명시할 것이다. 그것이 2단계의 출발점이다.