[231205] Today I Learned

YoungHyun Kim·2023년 12월 5일
1

TIL ✍️

목록 보기
11/68

[프로그래머스] 개인정보 수집 유효기간

제일 크게 배웠던 부분, 느낀 점

  • 문제를 해결하기 위한 로직을 머릿 속에만 가지고 있는 것이 아닌, 기록으로써 남겨 눈에 보이도록 도식화하는 방법은 문제 해결 자체에 큰 도움이 된다는 것이다.
  • 도식화하는 방법에는 아무런 차이가 없다고 생각한다. 다만 눈에 보이도록 정리하는 습관이 문제 해결에 굉장히 많은 차이를 가져다 줄 것이라고 생각된다.
  • 옵셔널 언래핑에 대해서...
    • 내가 수강했던 swift 강의들은 전반적으로 ! (옵셔널 강제언래핑 연산자)를 사용하는 것을 지양하라고 가르쳐줬다.
    • 그렇지만 오늘 튜터님과 얘기하며 옵셔널 해제 방법에 대해 여러 생각을 하게 되었다.
    1. 프로젝트 진행 시, 강제 언래핑보다 옵셔널 바인딩 등의 방법을 사용하는 것이 일반적이다.
    2. 그럼에도 swift 문법에 강제 언래핑 연산자가 남아있는 이유가 있지 않을까?
    3. 입력의 범위가 확실한 상황(입력으로 인한 오류가 없다는 확실한 상황)에서는 강제 언래핑을 사용하는 방법이 확실하고 편리하기 때문에 사용하는 것이 가능하다.

키오스크 프로젝트

배운 부분

  • main.swift 파일에는 프로그램을 구성하는 클래스 등의 객체가 위치하는게 아니라, 인스턴스를 생성하고 입출력을 어떤 식으로 처리해야 하는지 등의 내용이 들어가야 함.
  • 구현해야 하는 클래스 등은, mainMenu.swift, beerMenu.swift 등의 개별 파일에 작성하는 것이 좋다.
  • 한 클래스 내에 다른 클래스를 호출하는 기능을 넣으면 단일 책임의 원칙을 위해할 가능성이 있다. 가급적이면 지양하는 것이 좋을 것 같다.

기초 문법 심화과정

클로저

이름없는 함수 코드 블록, 상수나 변수의 참조를 캡쳐해 저장할 수 있음.

  • 값 캡쳐 : 클로저가 변수나 상수의 값을 캡처. 캡처값이 변경되어도 원본은 유지!

  • 참조 캡처 : 클로저 내에서 변수나 상수를 변경하면 원본값도 변경됨.

  • 비동기 처리가 필요할 때 사용할 수 있는 코드.(참조 타입 = 클래스의 타입과 같다)

profile
iOS 개발자가 되고 싶어요

0개의 댓글