New Teams, New Jeans [스코클 TIL_230724]

7과11사이·2023년 7월 24일
0

스파르타코딩클럽

목록 보기
9/90
post-thumbnail

TIL에 앞서 새로운 팀에 합류했다.
모두 모두 잘 부탁 드리는 마음이다.

오늘 배운 것

기술적 측면

  • 클로저에 대해 조금은 더 이해하는 시간을 가졌다
    여전히 어렵다. 매우 어렵다!!! 🌶️🔥🔥
    하지만, 왜 이름없는 함수 - first class citizen으로 불리는지 이해가 조금은 됐다랄까?

    클로저는 변수에 담길 수 있는 함수이다.
    처음 접했을 때는 같은 함수를 반복해서 사용하면 될 것 같은데,
    굳이 변수에 담아 복잡하게 만든다고 생각했다.
    하지만 코드의 이유를 다시 되돌아보면 어제보다는 조금은 더 이해하게 된 것 같다.

    코드는 재사용성과 깔끔함을 추구한다. (내 생각에 어떤 언어나 마찬가지다)
    이유는 repetition을 줄이고 이해하기 쉽게 만들기 위함이다.
  class Calculate {
  	var firstNumber: Int
    	var secondNumber: Int
      //init 생략...
      
      func addNumbers(_ firstNumber: Int, by secondNumber: Int) -> Int {
      	return firstNumber + secondNumber
        }
}

좋은 예시는 아니지만... 위와 같은 코드가 있다고 생각해보자.
addNumber 메서드는 Calculate라는 클래스에서 값을 더하는 역할을 하는 친구이다.
결과값도 잘 나오고, 네이밍도 헷갈리지 않으니 잘 짜여진 코드로 보여진다!
하지만 addNumber을 만약 다른 클래스에서 비슷하게 사용하면 어떻게 될까?
이름만 바꾸고 구현을 하면 다 해결이 되는걸까?

더불어 함수에서 실행하는 코드가 40줄 이상이 된다면?
어색한 네이밍은 어떻게 바꿔야할까??

클로저는 자유롭게 변수로 담기고 함수 역할을 하며 여기저기 코드 내부로 결과값을 던질 수 있다. 수십 줄의 코드가 한 줄, 그것도 한 단어로 된다고 생각해보면 엄청난 효율이자 효과적인 코드인 셈이다.
  • 오늘 처음 만난 팀원들 덕분에 exit()라는 함수를 배우게 됐다!
    해당 함수는 하나의 loop를 끊는 break가 아닌
    완전히 프로그램을 종료할 수 있는 방법이다.

소통 측면

  • enum과 class를 함께 사용하는 방안에 대해 문의를 드리며 아직 미흡한 나의 소통 실력을 깨달았다.
    로스없이 전달하기. 이건 광고를 하면서 항상 듣고 배웠던 말이었다.
    나름대로 정리해서 질문을 드렸다 생각했지만, 돌아오는 건 답보다 추가 질문이었다.
    (잘 했다 싶었지만 아깝네! ㅋㅋㅋㅋ)

    각 클래스별로 생성된 객체들을 하나에 통합하고자 한다.
    그 방법으로 객체들을 구분 짓기 위해 enum을 프로퍼티로 활용하고자 하는데,
    아래와 같이 반복되는 이름이 너무 복잡해보이는 경우가 있다.

    위에 같은 내용에 대해 튜터님의 생각과 추천은 무엇인지 질문을 드렸다.

    여기서 문제점은 튜터님은 처음보는 여러 파일의 코드를 너무 쉽게 설명하려고 했다는 점이었지 않을까 싶다. enum이 담고 있던 데이터는 4가지의 클래스 타입이었으며 enum을 어디에 활용하는지를 명확하게 설명 못 드린 것 같다. 열거형의 데이터는 어디에 적용되는지 파악하시느라 시간이 오래 걸린게 아닐까 싶다!

    enum someEnum {
        case A
        case B
        case C
    }
    
    class SomeClass {
        var type: someEnum
        var name: String
        var age: Int
    
        //init은 지금 생략
    }
    
    let testObjectArray = [SomeClass(type: .A, name: 이동준, age: 30), ....]

회고

  • 소통을 잘 하자!
  • 너무 졸린 관계로... 내일 마무리 지어보자... ㅠ

개선 방법

  • 소통 / 질문 관련해서 몇가지 개선 방법을 생각한 부분이 있다.
  • 팀 프로젝트 관련해서 개선 방법도 한가지 정리하고자 한다!

0개의 댓글