티스토리 뷰
[Safe, Fast, Expressive]
- Safe : 엄격한 문법을 적용, 프로그래머의 실수를 사전에 방지함.
Optional, guard문, 오류처리, 강력한 타입 통제 등
- Fast : 실행 속도의 최적화, 빠른 컴파일 성능
- Expressive : 사용하기 편하고 보기 좋은 문법 구현
[객체 지향 프로그래밍 패러다임]
- 강한 응집력, 약한 결합력
: 클래스 하나에 문제 해결을 위한 데이터와 메서드를 모아 응집력을 강화
: 각 클래스는 독립적으로 작용하게 하여 결합력을 약화
: 자료 추상화, 상속, 다형성, 동적 바인딩
[함수형 프로그래밍 패러다임]
- 상태 변화 없이 데이터 처리를 수학적 함수 계산으로 취급하고자 함
- 전달된 인자 값만 결과에 영향을 주므로 일정하게 같은 결과를 도출함
- 함수를 일급 객체(First-class Citizen)으로 다룸
: 전달인자로 전달 가능
: 동적 프로퍼티 할당 가능
: 변수나 데이터 구조 안에 담을 수 있음
: 반환 값으로 사용 가능
: 할당할 때 사용된 이름과 관계 없이 고유한 객체로 구별 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | func doSomething(){ print("do something") } func doAnotherThing(){ print("do another thing") } func execute(tasks: [()-> Void]){ for task in tasks{ task() } } execute(tasks: [doSomething, doAnotherThing]) | cs |
위에서 함수가 배열에 담겨 전달 인자로 사용됨.
- 여러 가지 연산 처리 작업이 동시에 일어나는 프로그램을 만들기 쉬움
- 여러 개의 연산 프로세서를 사용하는 시스템에서 효율적인 프로그램을 만들기 쉬움
- 상태변화에 따른 부작용(side-effect)에서 자유로워지므로 순수하게 기능 구현에 초점을 맞추어 설계할 수 있음
'Swift > 야곰의 스위프트' 카테고리의 다른 글
6장 흐름 제어 (0) | 2018.01.29 |
---|---|
5장 연산자 (0) | 2018.01.29 |
4장 데이터 타입 고급 (0) | 2018.01.29 |
3장 데이터 타입 기본 (0) | 2018.01.29 |
2장 스위프트 처음 시작하기 (0) | 2018.01.29 |
댓글