[스파르타 내일배움캠프 Swift]iOS 앱 개발 7기 12일차 - 2023. 07. 25

조재민·2023년 7월 30일
0
post-thumbnail
  • 코드 리뷰
  • enum 이란?

코드 리뷰


import Foundation

class KioskMenu {
    func printMenu() {
        print("SHACKSHACK 버거에 오신걸 환영합니다.")
        print("아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.")
        print("1. Burgers       | 앵거스 비프 통살을 다져만든 버거")
        print("2. Frozen Custard       | 매장에서 신선하게 만드는 아이스크림")
        print("3. Drinks       | 매장에서 직접 만드는 음료")
        print("4. Beer       | 뉴욕 브루클린 브루어리에서 양조한 맥주")
        print("5. Back       | 프로그램 종료")
        print("Enter the number of your choice: ", terminator: "")
    }
    
    func processUserChoice(choice: Int) -> Bool {
        switch choice {
        case 1:
            showMenu1()
        case 2:
            showMenu2()
        case 3:
            showMenu3()
        case 4:
            showMenu4()
        case 5:
            showMenu5()
            
            print("Exiting the program.")
            return false
        default:
            print("잘못된 접근입니다. 다시 실행해 주십시오.")
        }
        return true
    }
    
    func getUserInput() -> Int {
        if let input = readLine(), let choice = Int(input) {
            return choice
        } else {
            return 0
        }
    }
    
    func showMenu1() {
        print("You selected Menu 1.")
        // Menu 1의 세부 항목을 구현하면 됩니다.
    }
    
    func showMenu2() {
        print("You selected Menu 2.")
        // Menu 2의 세부 항목을 구현하면 됩니다.
    }
    
    func showMenu3() {
        print("You selected Menu 3.")
        // Menu 3의 세부 항목을 구현하면 됩니다.
    }
    
    func showMenu4() {
        print("You selected Menu 4.")
    }
    
    func showMenu5(){
        print("You selected Menu 5.")
    }
}

var isRunning = true
let menu = KioskMenu()

while isRunning {
    menu.printMenu()
    let userChoice = menu.getUserInput()
    isRunning = menu.processUserChoice(choice: userChoice)
}

위 코드가 내가 어제 하루 종일 구글링과 지피티를 활용해서 열심히 짠 코드였다. 매일 10시마다 팀원들과 모여서 각자 작성한 코드를 리뷰하는 시간을 가졌다.

내 코드를 보고 개선해야 할 점에 대해 팀원에게 틀었다.

  • switch/case 로만 코드를 구성하면 단점이 많다.
  • enum 을 사용해서 코드를 구성하는게 나중에 유지보수도 편하고 가독성도 좋다.

위 개선사항을 듣고 현재 내 코드는 잘못된 코드구나. 하는 생각에 오늘은 이 코드에서 더 추가하거나 하는것이 아닌 새롭게 작성할 계획이다. enum을 사용하기 위해서는 enum에 대해서 추가로 더 공부해야했다. 오늘은 enum에 대해서 공부를 진행할 것이다.

Enum 이란?

'enum'은 열거형(Enumeration)을 나타내는 키워드이다. 열거형은 서로 연관된 값을 그룹화하여 나타내는 데 사용되며, 한정된 값들의 집합을 정의하는 데 유용하다. 각각의 값을 case(케이스)라고 부른다.

<enum 기본 로직 구성>

enum 이름 {
	case 이름1
    case 이름2
    case 이름3
	//...
}

<열거형 사용법>

enum fruits
	case apple
    case banana
    case lemon
    case peach
enum fruits
	case apple, banana, lemon, peach
enum Fruits {
    case apple
    case banana
    case lemon
    case peach
    case coconut
    case bear
    case lime
}

var seed: Fruits = Fruits.banana // 열거형 타입과 케이스를 모두 사용해도 됌.

seed = .lemon //type이 명확하다면 .케이스 처럼 표현해도 괜찮음.

print(seed)

switch seed{
case .apple, .banana, .peach, .bear:
    print("맛있다!")
case Fruits.lemon, Fruits.lime:
    print("시다 시!!")
case .coconut:
    print("딱딱해")
    
}
profile
“누군가는 너를 사랑하고 있다.”

0개의 댓글

관련 채용 정보