요구 사항 정의
https://gajicoding.tistory.com/250
요구사항 정의
필수 기능Lv 1. 기본적인 키오스크를 프로그래밍해보자Lv 2. 객체 지향 설계를 적용해 햄버거 메뉴를 클래스로 관리하기Lv 3. 객체 지향 설계를 적용해 순서 제어를 클래스로 관리하기Lv 4. 객체 지
gajicoding.tistory.com
문제 해결
새롭게 알게된 문법
키오스크 과제 학습 목표
(체크리스트) ☑️ 완료, ✖️ 실패, △ 미흡
- ☑️ 클래스를 작성하고 객체를 생성하여 활용할 수 있는가?
- ☑️ 컬렉션을 활용해 여러 개의 값을 저장하고 조작할 수 있는가?
- ☑️ 메서드를 정의하고 호출할 수 있는가?
- ☑️ 반복문(for, while)을 활용하여 반복 작업을 수행할 수 있는가?
- ☑️ 조건문(if, else if, else)을 사용하여 흐름 제어가 가능한가?
- ☑️ 표준 입출력 사용법을 이해하고, 연산자를 활용해 연산할 수 있는가?
- ☑️ 변수 선언 및 데이터 타입을 적절히 지정 및 변환할 수 있는가?
느낀 점 & 마무리
키오스크 과제의 요구사항을 구현하는 것은 크게 어렵지 않았다.
이전 과제인 계산기 과제를 진행하면서 자바 문법에 많이 익숙해졌고, 그 덕분에 이번 과제도 문법을 복습하는 느낌으로 진행할 수 있었다.
문제는 요구사항을 다 구현한 후에 발생했다...
기능 구현에만 집중한 나머지 코드 구조나 가독성에 대해 고민하지 않고 모든 로직을 한 메서드 안에 넣었더니, 코드가 너무 길어지고 복잡해져서 읽기 힘들어졌고, 유지보수도 어려워졌다.
리팩토링을 시도했지만, 어떤 기준으로 메서드를 분리해야 할지, 그리고 어떻게 조건문을 단순화해야 할지 감이 잡히지 않았다.
문제를 해결하기 위해 튜터님의 피드백도 받아보고, 관련 키워드를 검색하며 다양한 예제를 살펴보았다. 그 과정에서 " 메서드는 하나의 책임만 가져야 한다 " 는 원칙을 기반으로 한 기준을 세울 수 있었고, 이를 바탕으로 코드 구조를 개선하기 시작했다. 또한, switch-case와 enum을 활용한 커맨드 처리 방식을 도입하여, 코드 흐름을 명확히 하고 가독성을 높일 수 있었다.
리팩토링 전보다는 코드 읽기가 훨씬 편해졌지만, 아직 부족한 부분이 많다. 이러한 부분들은 더 많은 학습과 경험을 통해 개선해야 할 사항이라고 생각한다. 이번 과정을 통해 코드의 가독성과 유지보수성에 대해 많은 것을 배웠고, 앞으로는 이러한 점들을 염두에 두고 더 나은 코드 설계를 해 나갈 것이다.
전체 소스 코드
https://github.com/gajicoding/kiosk-project
GitHub - gajicoding/kiosk-project
Contribute to gajicoding/kiosk-project development by creating an account on GitHub.
github.com
'내일배움캠프(Spring 7기) > 내일배움캠프' 카테고리의 다른 글
[CH 2 키오스크 과제] 요구사항 정의 (1) | 2025.04.29 |
---|---|
[CH 2 계산기 과제] 정리 & 회고 (2) | 2025.04.22 |
[CH 2 계산기 과제] Lv3. 요구사항 정의 및 설계 (0) | 2025.04.21 |
[CH 2 계산기 과제] Lv2. 요구사항 정의 및 설계 (0) | 2025.04.18 |
[CH 2 계산기 과제] Lv1. 요구사항 정의 및 설계 (0) | 2025.04.18 |