본문 바로가기

분류 전체보기

(205)
Type Casting Type Casting 타입 캐스팅은 인스턴스의 타입을 확인하거나, 해당 인스턴스를 슈퍼 클래스 또는 하위 클래스로 취급하는 방법입니다. Swift에서 타입 캐스팅은 "is" 또는 "as" 연산자로 구현하며, 타입 캐스팅을 사용하여 타입이 프로토콜에 적합한지 여부도 확인할 수 있습니다. is : Checking Type 표현식 is Type 타입을 체크하는 연산자로 런타임 시점에 실제 체크가 이루어집니다. 표현식이 Type과 동일거나, 서브 클래스라면 true이고 이 외의 경우에는 false입니다. 🤔 서브 클래스인 경우에도 true를 반환한다고? class Human { let name: String init(name: String) { self.name = name } } class Sokyte: H..
시간 복잡도 (+빅오 표기법) / 공간 복잡도 알고리즘을 공부했다면 한 번쯤 들어본 개념이 바로 시간/공간 복잡도, 그리고 빅오 표기법.. 이런 거 들어보셨을 겁니다. 이 개념이 도대체 무엇인지? 그리고 이걸 고려해서 어떻게 알고리즘 문제를 풀어야 할지 생각해봅시다!! 시간 복잡도 시간 복잡도 개념은 알고리즘의 실행 속도를 의미합니다. 알고리즘 문제의 경우, 결국 하나의 결괏값을 도출하는 코드를 작성하는 작업입니다. 하나의 문제에 대해서 (예를 들어 1에서 10까지 계산하는 것에 있어서 1부터 10까지 반복문을 통해서 계산할 수 있고 / 수식을 사용해서 계산할 수 있습니다. 이외에도 다양한 방법이 있겠죠?) 여러 가지 코드를 이용해서 풀 수 있습니다. 이때, 방법은 여러 가지라고 해도 가장 실행 속도가 적은 최적의 코드가 있습니다. 그리고 결국 이것..
Swift Algorithm 스위프트로 알고리즘을 공부하기로 마음을 먹었습니다. 근데 이제 환경을 어떻게 해야 하는가? 에 대한 의문이 들어 구글링을 해본 결과 playground에서는 입력값을 받지 못해서 입력을 받고 싶다면, actual application인 Command Line Tool을 이용해야 한다고 합니다. 🤔 왜 playground는 안되는건데? 플레이그라운드는 샌드박스이므로 input이 없습니다. *샌드박스 : 외부로부터 들어온 프로그램이 보호된 영역에서 동작하도록 해서 시스템이 안 좋게 조작되는 것을 막는 보안 형태를 취하는 프로그램입니다. Command Line Tool 그렇다면 Command Line Tool을 어떻게 사용하는지 알아보도록 하겠습니다! 1. 먼저, 엑스 코드를 실행합니다. 2. macOS >>..
ClipsToBounds vs MasksToBounds UI 요소를 둥글게 만들고 싶을 때, 다음과 같은 코드를 작성해서 곡률 값을 설정합니다. myView.layer.cornerRadius = 10 위의 코드에서는 View에 대한 곡률 값을 설정했는데, UIComponent라면 모든 경우에 대해서 위와 같이 곡률 값을 설정할 수 있습니다. 예를 들어서 UIButton, UITextView, UITextField 등.. 그리고 만약, 구글링을 해서 둥글게 만들고자 했다면, 위의 코드와 같이 나오는 코드가 있을 것입니다. myView.clipsToBounds = true 이런 코드, 또는 myView.layer.masksToBounds = false 이와 같은 코드를 cornerRadius 값과 함께 작성하는 것을 볼 수 있습니다. 당장 위의 코드들을 작성하지..
Concurrency Programming - Intro 오늘은 Concurrency Programming에 대해서 알아보겠습니다. 애플 공식 문서를 통해서 알아보도록 할게요 !! 원문은 을 참고해주세요. 😈 원문에 들어가기 전, 프로세스와 쓰레드에 대한 개념을 정리하고 가도록 하겠습니다. 프로세스 프로세스란, 운영체제로부터 시스템 자원을 할당 받는 작업의 단위를 말합니다. 프로세스들은 각각의 독립된 메모리 영역을 할당 받습니다. 따라서, 프로세스들끼리는 서로의 변수, 자료구조에 절대 접근할 수 없습니다. -> 만약, 서로 다른 프로세스가 각 프로세스의 자원에 접근하려고 한다면? 프로세스 간의 통신 (= 파일, 소켓) 등을 해야합니다. 멀티 프로세스 위에서 말한 프로세스가 다수로 구성되는 것을 말합니다. 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로..