1. OOP
- OOP(Object Oriented Programming)는 class와 object에 기반한 프로그래밍
- 대표적인 언어
C++, Java, Python, Javascript
1) 장점
- 코드의 재사용률을 높이고 코드를 간결하게 작성할 수 있어서 유지보수가 쉬움
2) 특징
(1) 캡슐화
- 객체 내부 로직은 감추고 외부에는 상대적으로 안정적인 부분만 공개
- 데이터를 안전하게 보존하는 기법
(2) 추상화
- 공통점을 찾아 Class로 한번에 묶고 복잡한 디테일을 숨기고 핵심만 추출해나가는 형태
- 큰 범위의 공통된 기능 측면에서 클래스를 개발
(3) 상속
- 상위클래스의 기능을 가져와서 재사용할 수 있을 뿐만 아니라 하위클래스에서 새로운 기능 추가 가능
- 코드의 중복을 없앨 수 있음
(4) 다형성
- 같은 이름을 가진 메소드라도 각 하위클래스의 상황에 맞게 다르게 구현될 수 있도록 하는 것
- 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석 가능
2. FP
- FP(Funtional Programming)은 Side effet(부작용)이 없는 Pure function(순수 함수)를 구현함으로써 프로그램
- 대표적인 언어
Clojure, Swift, Haskell, Scala
1) 장점
- 높은 수준의 추상화 제공, 코드 재사용성 증가, 디버깅이 쉬움, 불변성을 지향해서 프로그램의 동작을 예측하기 쉬움
2) 특징
(1) 고차 함수
- 함수를 인수로 받는 함수, 또는 함수를 반환하는 함수 === 콜백 함수
(2) 불변성
- 데이터 변경이 필요한 경우, 원본 데이터 구조를 변경하지 않고도 그 데이터의 복사본을 만들어 일부만 변경 후 복사본을 사용하여 작업 진행
(3) 순수 함수
- 동일한 input에는 항상 같은 output를 반환해야함
공부하며 작성하고 있는 블로그입니다.
잘못된 내용이 있을 수 있으며 혹시 있다면 댓글 달아주시면 감사하겠습니다
😊