프로그래밍 패러다임 : 프로그래머에게 프로그래밍의 관점을 갖게 해주는 개발 방법론
1. 선언형 프로그래밍(declarative programming) : 무엇을 할 것인가
- 함수형 프로그래밍(functional programming) : 순수 함수들을 블록처럼 쌓아 로직을 구현하고 고차 함수를 통해 재사용성을 높임
*순수 함수 : 출력이 입력에만 의존하는 것 (a ,b 를 받아 그것만으로 출력이 나옴)
*고차 함수 : 함수가 함수를 값처럼 매개변수로 받아 로직을 생성
2. 명령형 프로그래밍(imperative programming) : 무엇을 어떻게 할 것인가
- 객체지향 프로그래밍(OOP, Object-Oriented Programming) : 객체들의 집합으로 프로그램의 상호작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용한다
- 설계에 많은 시간이 소요되고 처리 속도가 느리다.
*추상화 : 중요한(핵심적인) 특징을 찾아낸 후 간단하게 표현,여러가지 요소를 하나로 통합하는 방향성 / 개라는 관념을 Dog 이라는 클래스로 정의, Dog 클래스, Cat 클래스 에서 공통된 기능을 묶어 Animal 클래스로 정의하는 것이 추상화
*캡슐화 : 연관 있는 것들을 하나로 묶어주는 것 , 객체와 연관 있는 변수나 함수를 클래스로 묶고 감출 내용은 감춤
*상속성 : 상위 클래스의 특성을 하위 클래스가 재사용, 확장할 수 있음
*다형성 : 서로 다른 방식을 하나의 표현으로 사용할 수 있는 것, 오버로딩(Overloading) 이란 함수가 같은 이름, 매개변수 타입이 다른 경우, 오버라이딩(Overriding) 이란 상위 클래스의 함수를 아휘 글래스에서 재정의 하는 것
- 절차형 프로그래밍 : 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 이루어짐
- 컴퓨터 처리 방식과 비슷해 처리 속도가 빠르다.
- 각 코드의 유기성이 높아 유지보수가 힘들다.
'일상 생활 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
chap1.0 - 디자인패턴 (0) | 2023.03.06 |
---|