0. 주저리주저리
회사에서 iOS 업무를 맞게 되었다. Android 도 제대로 모르는 상태에서 iOS 를 하는 것 같아서 불안하지만....! Swift 와 Objective-C 둘 다로 되어있는 프로젝트여서, 그나마... Kotlin 과 유사해 보이는! Swift 부터 공부하기로 했다! 항상 책의 서론에는 역사부터 나온다. 시간이 없어, 그냥 넘어갈까 하다가, 절차지향/객체지향/함수형 프로그래밍 등에 대한 내용을 한번 정리하고, Swift는 어떤 Concept 으로 만들어졌을까 궁금해서 읽어보았다!
1. Swfit 의 특징
ARC(자동 참조 카운팅) 지원 -> 메모리 관리를 쉽게 할 수 있다.
Obejctive-C 의 동적 객체 모델과 매개변수 형식을 스위프트에 도입!
컴파일 언어이지만, 플레이그라운드를 사용해 스위프트 코드의 결과를 바로 확인 할 수 있다!(스크립트 언어처럼!)
----> 최신 언어의 철학을 결합 && 성능은 프로그램 실행 속도 향상, 빌드 시간 단축에 최적화 되어 있음!
Safe(안정성): 옵셔널 기능, guard 구문, 오류처리, 강력한 타입 통제 등을 통해
Fast(신속성): 실행 속도의 최적화 && 컴파일러를 지속적으로 개량
Expressive(더 나은 표현성)
2. 프로그래밍 패러다임
명령형 객체지향 프로그래밍 패러다임을 기반으로 한 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임 지향.
객체지향 프로그래밍 패러다임
함수형 프로그래밍 패러다임
- 장점) 대규모 병렬처리가 굉장히 쉽다.
- 함수자체의 응용을 중요시 여김
- 함수를 일급 객체로 다룬다.
일급객체 ( https://ko.wikipedia.org/wiki/일급_객체 )
- 전달인자로 전달할 수 있다.
- 동적 프로퍼티 할다잉 가능하다.
- 변수나 데이터 구조 안에 담을 수 있다.
- 반환 값으로 사용할 수 있다.
- 할당할 때 사용한 이름과 관계없이 고유한 객체로 구별할 수 있다.
코드. 명령형 프로그래밍 패러다임 VS 함수형 프로그래밍 패러다임
//명령형 프로그래밍 패러다임
func doSomthing(){
print("do something")
}
func doAnotherThing(){
print("do another thing")
}
func executeAll(){
doSomthing()
doAnotherThing()
}
executeAll()
//함수형 프로그래밍 패러다임
func doSomething(){
print("do something")
}
func doAnotherThing() {
print("do another thing")
}
func execute(_ tasks: [() -> Void]) {
for task in tasks {
task()
}
}
execute([doSomething, doAnotherThing])
**커링Curying: 여러 개의 매개변수를 갖는 함수를 매개변수 하나를 갖는 함수의 나열로 표현하는 방법
- 장점: 함수의 재사용성 향상 / 코드의 가독성 향상 (?? 응?? 모르겠는데??) ----> 아래 블로그 다시 보자.....어렵쓰....
func sum(first:Int) -> ((Int) -> Int) {
return { second in first + second }
}
sum(first: 10)(5)
프로토콜 지향 패러다임
'Language > Swift' 카테고리의 다른 글
[Optional] (0) | 2021.05.12 |
---|---|
[Optional] (0) | 2021.05.10 |
[2_객체지향 프로그래밍과 스위프트] Chapter10. property, method (0) | 2021.03.11 |
[2_객체지향 프로그래밍과 스위프트] Chapter9. struct/class (0) | 2021.03.11 |
[1_스위프트 기초] Chpater8. Optional (0) | 2021.03.11 |