TIL 17

오늘 한 일 / 배운점

  • 개인 과제 Lv.3

  • 8/9 15:00 팀 내 코드리뷰

  • 8/9 16:00 개인 면담 (SJ매니저님)

  • 8/9 19:00 실시간 세션 : 옵셔널의 이해 + 예외처리 (HH튜터님)

    • 옵셔널 체이닝(OptionaI Chaining):
      nil 값이 하나라도 있으면 결과도 nil, 모두 값이 있어야 결과를 꺼내줌.

    1

    • 예외 처리 : 말 그대로 예상치 못한 에러 상황을 다룸.
      예외 처리에는 if 문, 함수에 throws 추가 등 다양한 방법이 있는데
      예를 들어 아래와 같이 예외 처리가 가능하다

      // enum으로 에러 정의
      enum TestError: Error {
      	case dividedByZero
      }
      
      // 분명 문제가 생길 수 있는 함수라서 예외를 처리
      func devide5Number(_ number: Int) throws -> Int {
        let originNumber = 5 
        guard number != 0 else {
          throw TestError.devidedByZero
        }
        return originNumber/number
      }
      
      // do catch문으로 함수를 싸서 잡아냄
      do {
        devide5Number(0)
      } catch TestError.devidedByZero {
        print("0이 들어갔습니다")
      }
      

과제

  • 개인 과제 다듬기

느낀점

드디어 개인과제 Lv.3까지 구현이 끝났다
이로써 필수 항목은 다 채웠는데 아직 코드도 주석 같은 것도 덕지덕지 달려있고
너무 지저분한 것 같아서 내일은 코드도 좀 깔끔하게 정리하고 그 외 보완해야 할 부분 수정해야겠다
그리고 오늘 팀 내 코드 리뷰 때 IS 님 코드에서 weak var (변수명) lazy var (변수명) 이런 게 있어서
물어봤는데 ARC라는 메모리 관리? 그런 거라고 한다 또 접근제어라는 것도 알려주셨는데
한번 공부하고 나도 적용해 봐야겠다.