야곰님의 Swift Programming을 공부하며 혼자 끄적였던 것들을 옮긴다.

Swift를 공부하는 다른 개발자들에게도 0.1만큼의 도움이 되었으면 좋을 것 같다는 마음으로 시작!

 

Swift

- 고차원적 언어

- ARC(자동 참조 카운팅)으로 메모리를 관리한다

  - 자바 기반의 GC와 비슷한 역할을 하지만, 전혀 다르다고 말할 수 있다. 이에 대해서는 이후에 작성할 것임

- Object-C의 동적 객체 모델과 매개변수를 도입했다

 

특징

  • 안전성
    • guard, 옵셔널, 오류처리 등으로 보다 안전하다
    • 타입에 대해 엄격하다 -> 개발자에게는 오히려 불편하지만, 프로그램 관점으로 본다면 안전하다
  • 신속성
  • FP(함수형 프로그래밍) 패러다임을 적용
  • POP(프로토콜 지향 프로그래밍)

함수형

  • 대규모 병렬처리에 유용하다
  • 상태의 변화없이 데이터를 처리할 수 있다
    • 함수형이 아니라면 포인터, 레퍼런스 등이 변경되어 함수 내부 처리에 영향을 준다
      • 즉, 순수함수를 작성하기 힘들다.
  • 함수를 일급시민으로 다룬다.
    • 전달인자(매개변수)로 전달 가능
    • 동적 프로퍼티로 할당 가능
    • 변수나 데이터 구조 내에 할당 가능
    • 반환 값으로 반환 가능
func sum(first: Int) -> (Int) -> Int{
	return { second in
    	return first+second
    }
}

sum(first:10)(5)

해당 메소드처럼 하나의 매개변수만 담을 수 있게 하는 기법을 커링이라 한다.

 

커링이란?

- 여러개의 매개변수를 갖는 함수를 매개변수 하나를 갖는 함수의 나열로 표현

 

프로토콜 지향 프로그래밍 POP

- 뒤~에서 설명

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts