본문 바로가기

𝗔𝗦𝗦𝗜𝗚𝗡𝗠𝗘𝗡𝗧/[내배캠] 2주차 - 계산기

[내일배움캠프] Swift 문법 2주차 기초 과제 - 계산기(01)

 

 

 

나만의 계산기 만들기

 

 

구현 중이던 계산기 UI

 

 

어제 팀이 바뀌고 첫날, 과제와 강의를 새로 받았다. 과제는 '나만의 계산기 만들기' 처음에는 당연히 UI까지 구현하는 건 줄 알고 UIKit을 사용해 UI를 구현했다. 아직 어떤 식으로 구현해야 효율적인 방법인지 알지 못해 계산기에 있는 버튼들을 하나하나 구현하다 보니 시간도, 내 손가락도 급격하게 소모되는 기분을 느꼈고, 곧장 튜터님을 찾아가 상황을 전달하고 도움을 요청했다.

 

'제가 생각할 때 반복되고 있는 코드들을 합쳐서 더 간략하게 코드를 작성할 수 있을 것 같은데 어떤 식으로 접근해야 할지 모르겠다'라고 질문하니 튜터님께서 개발자로서 좋은 자세라며 칭찬도 해주셨다.✌🏻 하지만, 그와 별개로 이번 과제는 UI구현이 아닌 Playground 사용이라는 점을 알게 되었다. 당연할 거라 생각한 것도 되짚어 확인해야 한다는 걸 다시금 느끼게 된 하루였다.

 

그래도 UI구현을 해봤고, 그 해결 방법에 대해 힌트라도 얻을 수 있게 되어 좌절보다는 얼른 과제를 끝내고 하고 있던 UI구현을 끝까지 해보고 싶다는 생각이 들었다. 

 

 

Playground로 하는 코드 작성은 알고리즘 문제를 꾸준히 풀고 복습하고를 반복한 탓인지 Lv3까지 어렵지 않게 작성했다. 다만, 내가 작성한 코드지만 왜 이렇게 작성해야 할까? 하는 의문이 들어 사소한 거라도 세세하게 다시 찾아보는 시간을 가졌다.

 

 


 

 

찾아본 내용을 정리해 보자면,

 

Calculator 클래스와 관계를 맺는다

 

"Calculator 클래스와 관계를 맺는다"는 말은 Calculator 클래스가 다른 클래스들과 상호작용하고 협력한다는 것을 의미한다. 과제를 예로 들어, Calculator 클래스는 더하기, 빼기, 곱하기, 나누기 등의 연산을 수행하는 다른 클래스들과 관계를 맺을 수 있다.

 

이 관계는 Calculator 클래스가 해당 연산을 수행하는데 필요한 기능을 가져오거나 호출하여 사용하도록 하는 것을 의미하며, 이 관계를 통해 Calculator 클래스는 다른 클래스들의 기능을 재사용하고, 보다 복잡한 계산을 수행할 수 있게 된다.

 

즉, "Calculator 클래스와 관계를 맺는다"는 말은 Calculator 클래스가 다른 클래스들과 함께 일하며, 다른 클래스들이 제공하는 기능을 활용하여 더 복잡한 작업을 수행할 수 있다는 것을 말한다. 

 

예를 들어 Calculator 클래스의 add 메서드는 AddOperation 클래스의 calculate 메서드를 호출하여 덧셈 연산을 수행한다. 이와 같이 Calculator 클래스는 다양한 연산자 클래스들과 협력하여 다양한 계산을 수행할 수 있다.

// 덧셈 클래스
class AddOperation: Operation {
    func calculate(_ a: Int, _ b: Int) -> Int {
        return a + b
    }
}

// 생략

// 클래스 정의
class Calculator {
    let addOperation = AddOperation()
    
    // 생략
}
 
 
 

 

프로토콜(Operation) 정의
protocol Operation {
    func calculate(_ a: Int, _ b: Int) -> Int
}
 

위의 코드는 연산을 수행하는 클래스들이 특정한 역할을 수행하기 위한 템플릿인 프로토콜(Operation)을 정의하는 것, 이 프로토콜은 다양한 연산을 수행하는 클래스들이 가져야 할 기본적인 동작을 정의한다.

 

예를 들어, 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 수행하는 클래스들은 Operation 프로토콜을 채택하고 calculate 메서드를 구현한다. 이럴 경우 각 클래스는 자신이 어떤 연산을 수행하는지에 따라 calculate 메서드를 다르게 구현할 수 있다.

 

Calculator 클래스는 이들 연산을 수행하는 클래스들과의 관계를 맺는다. 즉, Calculator 클래스는 Operation 프로토콜을 준수하는 클래스들을 사용하여 다양한 연산을 수행할 수 있으며, 이를 통해 Calculator 클래스는 코드를 더 유연하고 확장 가능하게 만들어준다.

 

 


 

 

✧ 아쉬웠던 점

 

뭐든 한 번 더 확인하는 습관을 들일 것. 

- 과제 내용을 한 번 더 확인했더라면, 하는 아쉬움이 남는다. 

 

 


 

 

✦ 앞으로의 각오

 

시작이 잘못됐다고 좌절하지 말고, 돌아가는 한이 있더라도 마지만까지 최선을 다 할 것. 

- 실수는 누구나 할 수 있지만 동일한 실수를 반복하지 않도록 노력해야겠다. 

- 중단한 UI 구현 끝까지 하기, 진짜 나만의 계산기를 만들어 봐야겠다. 

 

 

 

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31