프로그래밍 패러다임이란 ? 프로그래밍에 대한 관점을 나타내는 개발 방법론. 크게 '선언형'과 '명령형'으로 나뉜다.
1. 선언형 : 함수형 프로그래밍
함수형 프로그래밍은 선언형 프로그래밍의 일종으로, 순수 함수로 이루어져있고 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임 이다.
- 순수 함수 : 외부의 상태를 변경하거나 영향을 받지 않으면서 동일한 인자에 대해 항상 똑같은 값을 리턴하는 함수
- 고차 함수 : 함수를 매개변수로 사용하거나, 함수를 반환하는 함수(일급 객체 ⭐️)
- 일급 객체의 특징 : 1. 변수에 할당(assignment)할 수 있다 2. 다른 함수를 인자(argument)로 전달 받는다 3. 함수를 결과로 반환할 수 있다.
2. 객체지향 프로그래밍
객체지향 프로그래밍은 데이터를 추상화시켜 속성와 메소드를 가진 객체를 만들고, 이러한 객체들간의 상호작용을 기반으로 프로그래밍하는 패러다임이다.
객체지향 프로그래밍의 특징 4가지 ⭐️
- 추상화 : 어떤 사물에 대한 여러가지 특징 중에 핵심적인 개념이나 공통된 특징들을 추출하여 정의하는 것
- 캡슐화 : 객체의 속성과 메소드를 하나로 묶는 것, 일부 정보를 외부로부터 감추어 은닉할 수 있다.
- 상속 : 상위 클래스의 속성이나 메소드를 하위 클래스에서 물려받아서 재사용하거나 확장하는 것
- 다형성 : 하나의 변수명과 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것(오버라이딩 / 오버로딩)
- 오버 라이딩은 하위 클래스가 부모 클래스의 메서드와 같은 이름, 매개변수를 재정의해서 사용하는 것을 말한다.
- 오버 로딩은 하나의 클래스 안에서 같은 이름의 메서드를 사용하지만 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있도록 하는 것을 말한다.
객체지향 프로그래밍의 장단점
장점
- 코드의 재사용성이 높다.
- 코드의 유지보수성이 높다.
- 캡슐화를 통해 보안성이 향상된다.
단점
- 처리속도가 상대적으로 느리다.
- 설계 시 많은 시간과 노력이 필요하다.
객체지향 프로그래밍의 설계 원칙
- 단일 책임 원칙(SRP) : 하나의 클래스는 하나의 책임을 갖는다. 적절한 추상화를 통해서 잘 모아서 하나의 클래스가 두 가지 이상의 책임을 갖지 않도록 함을 의미한다.
- 인터페이스 분리 원칙
- 의존 역전 원칙
- 리스코프 치환 원칙
- 개방-폐쇄 원칙
'개발 상식 🥕' 카테고리의 다른 글
[면접을 위한 CS 전공지식 노트] 디자인패턴의 종류 및 특징 (0) | 2024.07.02 |
---|---|
[Spring] 스프링이란 ? (0) | 2023.11.27 |
[면접을 위한 CS 전공지식 노트] 1-1 디자인 패턴 (0) | 2023.11.26 |
[Clean Code] 클린코드 이론 정리 (0) | 2023.11.20 |
[WEB] CORS와 SOP의 개념 및 CORS 에러 해결방법 (0) | 2023.08.18 |