[CS] 1단원 총정리

이아현·2023년 9월 12일
0
post-thumbnail

✅ 디자인패턴

  • 프로그램을 설계 할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것

1. 싱글톤 패턴

  • (생성자 패턴) 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴

2. 팩토리 메서드 패턴

  • (생성자 패턴) 객체 생성 부분을 떼어내 추상화한 패턴
  • 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴

3. 전략 패턴

  • 객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하지 않고 전략이라고 부르는 ‘캡슐화한 알고리즘’을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴

4. 옵저버 패턴

  • (행동/이벤트 패턴) 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴
    • 옵저버 : 추가 변화 사항이 생기는 객체들
    • 주체 : 객체의 상태 변화를 보고 있는 관찰자

4. 프록시 패턴

  • 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 앞단의 인터페이스 역할을 하는 디자인 패턴

5. 이터레이터 패턴

  • 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴

6. 노출모튤 패턴

  • 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴

7. MVC 패턴

  • 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴
  • 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발
    • 모델 : 애플리케이션의 데이터인 데이터베이스, 상수, 변수
    • 뷰 : 사용자 인터페이스 요소
    • 컨트롤러 : 모델과 하나 이상의 뷰를 잇는 다리 역할

8. MVP 패턴

  • 컨트롤러가 프레젠터로 교체된 패턴
  • 뷰와 프레젠터는 1대 1 관계

9. MVVM 패턴

  • 컨트롤러가 뷰 모델로 바뀐 패턴
    • 뷰모델 : 뷰를 더 추상화한 계층
    • 커맨드와 데이터 바인딩을 가짐
    • 양방향 데이터 바인딩을 지원

✅ 프로그래밍 패러다임

프로그래밍 패러다임

  • 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론

선언형 프로그래밍

  • ‘무엇’을 풀어내는가에 집중

함수형 프로그래밍

  • 순수 함수들을 블록처럼 쌓아 로직을 구현하고, 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임

객체지향 프로그래밍

  • 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식
  • 특징
    • 추상화 : 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것
    • 캡슐화 : 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉
    • 상속성 : 상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것
    • 다형성 : 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것
  • 오버로딩 : 같은 이름을 가진 메서드를 여러 개 두는 것
  • 오버라이딩 : 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의하는 것
  • 설계원칙 (SOLID)
    • 단일 책임 원칙 (Single Responsibility Principle)
    • 개방-폐쇄 원칙 (Open Closed Principle)
    • 리스코프 치환 원칙 (Liskov Substitution Principle)
    • 인터페이스 분리 원칙 (Interface Segregation Principle)
    • 의존 역전 원칙 (Dependency Inversion Principle)

절차형 프로그래밍

  • 로직이 수행되어야할 연속적인 계산과정으로 이루어져있음
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글