[피드백] Task 2) Playground에서 계산기 만들기

soy·2024년 11월 8일

iOS-Task

목록 보기
4/12

<이전 글>
내배캠-Task 2) Playground에서 계산기 만들기


과제 제출 이후에 튜터님으로부터 피드백을 받을 수 있었다!

<과제를 진행하며 궁금했던 점>

질문:
커밋 컨벤션을 사용해도 얼렁뚱땅 사용하는 경우가 많았는데, 협업 과정에서는 어떤식으로 사용해야 효율적으로 사용할 수 있는지 궁금합니다.

답변:
커밋 컨밴션은 팀마다 다르기 때문에 디테일한 부분은 말씀드리기 어렵습니다.
한 가지 확실한 점은 커밋시 코드 작업단위가 세부적이고 명확하면 좋습니다.
현재 서희님 커밋은 작업단위가 크고 맥락이 분명하지 않습니다. 커밋 제목과 내용은 최대한 상응해야 합니다. 그래야 리뷰어가 커밋흐름을 따라가며 작성자의 논리흐름을 파악할 수 있고 코드리뷰도 하기 용이해요.

--> 그렇지만 아직도 커밋할 때 규칙을 잘 지키는 것 같지는 않다 ㅜ_ㅜ
작은 단위도 커밋을 한다는게 , , 쉽지않구려

질문:
제 생각엔 나누기와 나머지 구하는 연산이 '나눗셈'이라는 공통 연산을 진행한다고 생각하여 두 연산을 한 클래스 내에 넣어두었는데, 이러한 애매한(?) 경우에 클래스 분리를 하는 기준이 궁금합니다.

답변:
이 경우에는 나눗셈과 나머지연산을 분리하는 게 좋습니다.
그렇지 않으면 AbstarctOperation을 사용하는 입장에서 reminder연산이 필요하면 구체적으로 DivideOperation을 알아야 합니다.
의존성으로 받거나 타입캐스팅을 하든 관계없이 DivideOperation을 알아야 calculateRemainder을 호출할 수 있으니까요

나는 내가 코드를 작성해서 다 알고 있는 것 이지만,,사용자는 그것을 모른다는 것 ㅜㅜ
나머지 연산을 하기 위해서는 DivideOperation을 구체적으로 알아야한다! 라는 것이 크게 납득이 됐다.
사용자가 최고의 레전드 UX를 경험할 수 있도록... 파이팅

<이 외의 피드백>

class Calculator구현도 정의한 AbstarctOperation프로토콜을 활용하는 형태로 바꿔보세요. 구현하신 operation함수만 보면 사실 AbstarctOperation을 활용하기 적합하지 않습니다.
프로토콜은 추상화를 위해 사용합니다. 프로토콜을 사용하는 컴포넌트(Calculator)가 '어떻게'의 디테일을 알지 않고도
원하는 것(연산)을 수행할 수 있게 만들어 줍니다.
여기에서는 Calculator가 더하기, 빼기, 곱하기 등의 구체적인 맥락을 몰라도 연산을 수행할 수 있게 만들 수 있게 돼요.

class Calculator {
      let operation:  AbstarctOperation
     ....
}

operation의 파라미터 operation: String을 enum으로 정의하셨으면 더 클린하고 다루기도 쉬웠을 것 같습니다. 성능도 더 좋아요.

enum {
    case add, minus, ....
}

ㅠㅠ 추상화 실패 인간 등장 , , , 그렇지만 내가 평소에 잘 못하던 것을 피드백 받고, 그에 대한 방향성을 제시해주셔서 너무 좋았다! 그리고 평소에 enum을 그리 잘 활용하지 못하고 있었는데 이에 대한 피드백도,,, 정말 딱 들켰구나 ㅜㅅㅜ . . .

조만간 코드를 수정하여 피드백을 거친 후 다시 리뉴얼된 코드로 돌아오겠습니다 . . !!

profile
soysoisoyysauce~

0개의 댓글