전체 글

· Swift
Swift 제네릭 정리Swift에서 제네릭은 코드 재사용성을 높이고, 타입에 독립적인 함수, 구조체, 클래스, 열거형 등을 작성할 수 있게 해준다.제네릭 함수제네릭 함수는 타입 매개변수를 사용하여 다양한 타입에 대해 동작하는 함수를 작성할 수 있게 해준다.func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA} 제네릭 타입제네릭 타입은 구조체, 클래스, 열거형에서 사용되어 다양한 타입에 대해 동작하는 타입을 정의할 수 있게 해준다.//제네릭 구조체struct Stack { var items = [Element]() mutating func push(_ item: Ele..
· Swift
튜터님께서 강조해주신 의존관계 역전 원칙(DIP)! 자세히 알아보자. 먼저 단어를 뜯어서 의존성(Dependency) 주입(Inversion)으로 나눠 알아보자. 의존성 이란?-> 서로 다른 객체 사이에 의존 관계가 있다는 것 자 먼저, Swift에서는 보통 다른언어의 객체를 객체라고 표현 안 하고 인스턴스라는 용어를 더 자주 사용한다고 한다.그렇기 때문에 필자는 설명할 때 인스턴스라고 칭하겠다. 코드로 이해해보자.class B { var name: String = "대성"}class A { var kk: B = B() func Output() { print(kk.name) }}위 그림을 보면 클래스 'A'의 인스턴스는 클래스 'B'의 인스턴스를 의존할 수 있다고..
· Swift
클로저 먼저, 클로저는 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)/..
· Swift
1. 단일 책임 원칙 (Single Reponsibility Principle): 한 가지 일에만 집중!한 가지 클래스는 한 가지 일만 해야한다. 이는 클래스를 더 쉽게 이해할 수 있도록 도와준다.예를 들어, 만약 당신이 과일 판매상이라면 과일을 파는 일에만 집중해야 한다. (예를 들어 의류, 음료, 과자 판매 등등에는 관여 X)// 단일 책임 원칙class FruitSeller{ func sellFruit(){ // 과일을 판매하는 로직 }} class PaymentProcessor{ func processPayment{ // 결제를 처리하는 로직 }} 2. 개방-폐쇠 원칙 (Open/Closed Principle): 바꿀 수 있지만, 바꾸지 않아! 클래스나 모듈은 확장에..
· Swift
객체 지향 프로그래밍(Object-Oriented Programming)줄여서 OOP라고 부르기도 한다.프로그램을 어떻게 설계해야하는 지에 대한 방법론 중 하나특징은 다음과 같다.추상화, 캡슐화, 상속, 다형성이라는 개념이 있다.1. 추상화는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 복잡한 시스템을 단순화 하여 중요한 부분을 강조하고 불필요한 부분을 숨기는 것을 의미한다. 클래스나 프로토콜을 통해 데이터와 동작을 추상화하여 필요한 정보만을 노출시키는 것을 포함한다.//추상화class Account{}struct Account {}protocol Account {} 2. 캡슐화는 객체의 상태와 행동을 하나로 묶고, 외부에서 접근을 제한하여 객체 내부의 세부 구현을 숨기는 것을 의미한다. 이를 통해 객..
pockpock
머성이의 개인 스터디