객체지향 프로그래밍에서 캡슐화와 은닉화가 중요 외부에서 접근하면 안 되는 코드가 있기 때문 *모듈 - 배포 단위 (프레임워크, 라이브러리, 애플리케이션 ...) 모듈과 소스파일 (Modules and Source Files) Swift의 접근제어는 모듈과 소스파일에 기반을 두고 있습니다. 모듈은 코드를 배포하는 단일 단위로 하나의 프레임워크나 앱이 이 단위로 배포되고 다른 모듈에서 Swift의 import키워드를 사용해 import될 수 있습니다. Xcode의 각 빌드 타겟은 Swift에서 분리된 단일 모듈로 취급됩니다. 소스파일은 모듈안에 있는 소스파일을 의미합니다. 각 소스파일에 여러 특정 타입을 선언해 사용할 수 있습니다. 접근수준 타입(클래스, 구조체, 열거형 등)에 접근수준 지정 타입 내부의 프..
데이터를 용도에 맞게 표현하고자 할 때 사용 가장 큰 차이점 구조체의 인스턴스 = 값(value) 클래스의 인스턴스 = 참조(reference) 스위프트의 데이터 타입과 열거형은 모두 "값" 타입 참조는 C언어의 포인터와 유사한 개념 Struct (구조체) 구조체를 let으로 선언하면 인스턴스 내부의 프로퍼티 값을 변경할 수 없음 var로 선언하면 프로퍼티가 var일 경우 변경 가능 Class (클래스) 클래스를 let으로 선언하면 인스턴스 내부의 프로퍼티 값을 변경할 수 있음 클래스의 인스턴스는 참조 타입이므로 참조할 필요가 없을 때 메모리에서 해제됨 -> deinit 호출 공통점 프로퍼티와 메서드를 정의할 수 있음 *서브스크립트를 정의할 수 있음 이니셜라이저를 정의할 수 있음 익스텐션 사용 가능 프로..
1. 안전성 프로그래머가 저지를 수 있는 실수를 엄격한 문법을 적용해 미연에 방지 예) 옵셔널, guard, 오류처리, 강력한 타입 통제 2. 신속성 스위프트는 C 언어를 기반으로 한 C, C++, Objective-C와 같은 프로그래밍 언어를 대체하려는 목적으로 만듦 3. 표현성 사용하기 편하고 보기 좋은 문법 구현하려 노력 객체지향 프로그래밍 객체지향 프로그래밍(OOP)이란 여러 개의 독립된 단위인 객체의 모임으로 파악하는 방법 개발과 유지보수 간편 직관적으로 코드 분석 클래스에 하나의 문제를 위한 데이터, 메서드를 모아놓음 -> 응집력 강화 클래스는 독립적 -> 결합력 약화 특징 : 추상화, 상속, 다형성, 동적바인딩 함수형 프로그래밍 대규모 병렬처리가 쉬움 상태 변화 없이 수학적 함수 계산으로 취..
programmers.co.kr/learn/courses/30/lessons/12910?language=swift 나의 풀이 func solution(_ arr:[Int], _ divisor:Int) -> [Int] { let result = arr.filter { $0%divisor == 0 } if result.count > 0 { return result.sorted() } else { return [-1] } } 다른 사람의 풀이 func solution(_ arr:[Int], _ divisor:Int) -> [Int] { let result = arr.filter{ $0 % divisor == 0}.sorted() return result.count == 0 ? [-1] : result }