티스토리 뷰

Swift/야곰의 스위프트

1장 스위프트

할루루 2018. 1. 29. 15:57

[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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함