본문 바로가기

전체 글

(8)
[Swift] lazy는 왜 쓰는지 아시나요? `lazy`란? > iOS는 App의 사용량이 너무 높아지면 앱을 죽이기 때문에, 개발자는 처음부터 메모리 관리를 신경쓰며 코드를 짜는게 매우 중요하다. 따라서 개발자는 실제로 필요한 경우가 아니라면, 비싼 코스트의 작업을 하는것을 지양해야 한다. (복잡한 allocation을 예로 들 수 있다.) Swift는 비싼 코스트의 작업을 in-time 계산할 수 있게 하는 `lazy variables`라는 메커니즘을 제공한요! `lazy variables`는 변수가 처음 요청되었을 때만 사용자가 지정한 함수를 사용하여 생성하기 때문에 메모리에 관리를 할 수 있다. 만약 요청되지 않는다면, 지정된 함수는 절대 불리지 않고, 이는 processing time을 절약해줄 수 있다! 정리하자면.. `lazy` 키워드..
[Swift] guard, let 둘의 차이점은? Optional 값을 Unwrapping 할 때 쓰이는 'guard'와 'let'. 이 둘의 차이점은 무엇일까? > if 구문은 "~면 ~해라!" guard 구문은 "~아니면 끝내라!" 라는 어구와, 코드의 가독성의 장점. `guard`는 `else`를 사용하여 예외처리를 한다! 이렇게만 알고있는 것 같아 좀 더 디테일하게 공부해봤다. ```swift guard (Bool 타입 값) else { (예외사항 실행문) (제어문 전환 명령어) } ``` 위의 코드를 보면, `guard`는 `if`와 같이 Bool 타입의 값을 조건으로 받되, 해당 조건 뒤에 바로 `else`가 붙는다는 점을 확인할 수 있다. `guard`구문에서는 `if`구문과 달리 예외 처리를 위해 `else` 구문을 따로 추가하여 예외를 ..
[iOS] 네트워크 연결은 코드로 어떻게 확인할까? 앱 사용 도중 네트워크가 끊긴다면 우리는 이런 화면을 볼 수 있다. iOS 에선 네트워크 통신을 하고있는지, 하지 않는지 확인할 수 있는 프레임워크가 있다. import Network 위 프레임워크는 실시간으로 네트워크 연결을 감지하여 현재 기기의 인터넷 연결상태와 연결타입을 알 수 있도록 알려준다. ☑️ 싱글톤 클래스로 네트워크를 연결하는 클래스 import Foundation import Network final class NetworkCheck { static let shared = NetworkCheck() private let queue = DispatchQueue.global() private let monitor: NWPathMonitor public private(set) var isCon..