티스토리 뷰

Swift

프로그래밍 패러다임

unside 2020. 7. 31. 08:54

paradigm : 한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계 또는, 사물에 대한 이론적인 틀이나 체계

프로그래밍 패러다임 : 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 함


객체 지향 프로그래밍

  • 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 패러다임
  • 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 지향
    1. 강한 응집력 : 클래스에 하나의 문제 해결을 위한 데이터를 모아 놓은 데이터형을 사용함으로써 응집력을 강화
    2. 약한 결합력 : 클래스간에 독립적으로 디자인함으로써 결합력을 약화
  • 특징
    1. 자료 추상화 : 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것
      *) 추상 자료형 : 자료형의 자료 표현과 자료형의 연산을 캡슐화한 것, 접근 제어를 통해 자료형의 정보를 은닉
    2. 상속 : 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능
    3. 다형성 : 어떤 한 요소에 여러 개념을 넣어 놓는 것
      ex1) 오버라이딩(같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것)
      ex2) 오버로딩(같은 이름의 메소드가 인자의 개수, 자료형에 따라 다른 기능을 하는 것)
    4. 동적 바인딩 : 실행 시간 중에 일어나거나 실행 과정에서 변경 될 수 있는 바인딩
      *바인딩 : 변수 또는 상수의 이름에 값을 할당하는 것
      point) Swift는 동적 바인딩을 채용하고 있지 않다. 정적 바인딩을 채용한다.
    5. 등등...

명령형 프로그래밍

  • 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 패러다임
  • 객체 지향 프로그래밍 패러다임을 차용한 언어는 필수로 명령형 프로그래밍 패러다임을 사용
    • why? 프로퍼티, 변수 등에 해당하는 메모리 값의 변화(상태변화)가 있기 때문

함수형 프로그래밍

  • 함수 자체의 응용을 강조하고, 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변데이터를 멀리하는 패러다임
    • cf) 명령형 프로그램이 : 상태를 바꾸는 것을 강조
  • 특징
    1. 최근 대세
    2. 대규모 병렬처리가 쉬움 : 부작용이 거의 없음
    3. 전달된 인자값만을 사용하기 때문에 일정하게 같은 결과를 도출할 수 있음
    4. 일급 객체를 다룸
    5. 모나드, 함수객체, 필터, 맵, 플랫맵, 리듀스 등 사용가능
  • 최근 대세를 이루는 패러다임
  • 대규모 병렬처리가 쉬움

일급객체

  • 조건 : 로빈 포플스톤의 일급객체 정의

    1. 전달인자로 전달할 수 있음
    2. 반환 값으로 사용 가능
    3. 할당할 때 사용된 이름과 관계없이 고유한 객체로 구별 가능
    4. 동적 프로퍼티 할당이 가능
    5. 변수나 데이터 구조 안에 담을 수 있음
    • 4번 + 5번 : 할당 명령문의 대상이 될 수 있음

커링

  • 다중 인수를 갖는 함수를 단일 인수로 갖는 함수들의 함수열로 바꾸는 것

  • 장점

    1. 함수의 재사용성 향상
    2. 코드의 가독성 향상

....? ) 단순한 예시만을 보고는 커링에 대한 이해가 부족한 것 같다. 그렇다고 심화적인 예시를 보자니 실력이 안되는 것 같다. 나중에 다시 봐야겠다

정리한 내용들은 야곰님의 스위프트 프로그래밍 3판 책을 보고 어려웠던 부분을 공부한 내용에 위키와 검색을 통해 알게된 내용을 추가해 정리한 것입니다.

잘못된 내용이 있을 수 있습니다. 잘못된 내용이 있으면 댓글로 알려주시면 감사하겠습니다!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   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
글 보관함