클로저 먼저, 클로저는 named clousre와 unnamed clousre로 나뉜다.named clousre는 우리가 사용하는 함수를 말 하는데, 일반적으로 우리는 이를 클로저라고 부르지 않고 그냥 함수라고 부른 것 뿐이다.(함수는 실제로 클로저에 속함)func daesung() { print("안농안농")} 그리고 다음과 같이 이름을 붙이지 않고 사용하는 함수를 익명함수 unnamed clousre라고 부른다. let closure = { print("나는 클로저~") } 따라서 위 말들을 정리해보면, 클로저는 named clousre 와 unnamed clousre 둘 다 포함하지만,우리는 보통 unnamed clousre를 클로저라고 부른다.그럼 이름 없는 함수인 클로저는 왜 필요한가? 라고 ..
Swift
타입 캐스팅자, 타입 캐스팅이 뭘까?타입 캐스팅이란 인스턴스의 "타입"을 확인 하거나, 해당 인스턴스를 슈퍼 클래스나 하위 클래스로 취급하는 방법이다. 여기서 타입이란?기본 데이터 타입(Int, Double, String, Bool 등등)옵셔널(Optional)커스텀 데이터 타입(struct, class, enum, protocol 등)자 이제, 코드를 통해 알아보자. 1) isis 연산자는 타입을 체크하는 연산자. 비교 결과를 bool 타입으로 반환한다.예시 코드let char: Character = "A"print(char is Character)// 출력값: trueprint(char is String)// 출력값: falselet bool: Bool = trueprint(bool is Bool)/..
1. 단일 책임 원칙 (Single Reponsibility Principle): 한 가지 일에만 집중!한 가지 클래스는 한 가지 일만 해야한다. 이는 클래스를 더 쉽게 이해할 수 있도록 도와준다.예를 들어, 만약 당신이 과일 판매상이라면 과일을 파는 일에만 집중해야 한다. (예를 들어 의류, 음료, 과자 판매 등등에는 관여 X)// 단일 책임 원칙class FruitSeller{ func sellFruit(){ // 과일을 판매하는 로직 }} class PaymentProcessor{ func processPayment{ // 결제를 처리하는 로직 }} 2. 개방-폐쇠 원칙 (Open/Closed Principle): 바꿀 수 있지만, 바꾸지 않아! 클래스나 모듈은 확장에..
객체 지향 프로그래밍(Object-Oriented Programming)줄여서 OOP라고 부르기도 한다.프로그램을 어떻게 설계해야하는 지에 대한 방법론 중 하나특징은 다음과 같다.추상화, 캡슐화, 상속, 다형성이라는 개념이 있다.1. 추상화는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 복잡한 시스템을 단순화 하여 중요한 부분을 강조하고 불필요한 부분을 숨기는 것을 의미한다. 클래스나 프로토콜을 통해 데이터와 동작을 추상화하여 필요한 정보만을 노출시키는 것을 포함한다.//추상화class Account{}struct Account {}protocol Account {} 2. 캡슐화는 객체의 상태와 행동을 하나로 묶고, 외부에서 접근을 제한하여 객체 내부의 세부 구현을 숨기는 것을 의미한다. 이를 통해 객..
배열(Array) 배열 비었는지 확인 방법var array1 = [1,2,3]let isEmpty: Bool = array1.isEmpty // false 배열에 요소 추가하기1. append : 끝에 추가var array1 = [1,2,3]array1.append(4) //[1, 2, 3, 4]array1.append(contentsOf: [5,6,7]) //[1, 2, 3, 4, 5, 6, 7, 8]2. inset : 중간에 추가var array2 = [1,2,3]array2.insert(0, at: 0) //[0, 1, 2, 3]array2.insert(contentsOfL [10, 100], at : 2) //[0, 1, 10, 100, 2, 3] 배열에 요소 변경하기// ..

스택,큐큐와 스택은 데이터에 대한 개념이다. Swift에서는 따로 큐와 스택을 지원하지 않는데, Array 등을 이용해 직접 구현할 수 있다.-> QueueFirst - In - First - Out(FIFO)먼저 들어온 값을 먼저 내보내는 구조이다.Swift Queue 구현struct Queue { private var queue: [T] = [] public var count: Int { return queue.count } public var isEmpty: Bool{ return queue.isEmpty } public mutating func enqueue(_ element: T){ queue.append(element) ..