프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론
무엇을 풀어내는가에 집중하는 패러다임이며 프로그램은 함수로 이루어진 것이다. 라는 명제가 담겨있는 패러다임입니다.
출력이 입력에만 의존하는 것을 의미합니다.
const pure = (a, b) => {
return a + b
}
고차 함수란 함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수있는 것을 말합니다
객체들의 집합으로 상호 작용을 표현하며 데이터를 객체로 취급 객체 내부넹 선언된ㄷ 메서드를 활용하는 방식이다.
설계에 많은 시간이 소요되며 처리 속도가 다른 러다임에 비해 상대적 느리다.
추상화란 핵심적 개념 or 기능을 간추리는 거승ㄹ 의미한다.
객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉한다.
상위 클래스의 특성을 하위 클래스가 이어서 재사용, 추가, 확장 하는것을 말한다.
코드의 재사용, 계층적인 관계 생성, 유지 보수성 측면에서 중요하다.
하나의 메서드나 클래스가 다양한 방법으로 동작하는 것을 말한다.(오버로딩, 오버라이딩)
모든 클래스는 각각 하나의 기능만 하는 원칙이다.
유지 보수 사항이 샌긴다면 코드를 쉽게 확장할 수 있도록 하고 수정할때는 닫혀 있어야하는 원칙이다.
객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 하는것을 의미한다. 클래스는 상속이 되기 마련이고 부모, 자식이라는 계층 관계가 만들어진다.
하나의 일반적인 인터페이스 보다 구체적인 여러 개의 인터페이스를 만들어야 하는 원칙을 말한다.
변하기 쉬운 것에 의존하던 것을 추상화 된 인터페이스나 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향받지 않게 하는 것이 원칙이다.
로직이 수행되어야 할 연속적인 계산 과정으로 이루어져 있다.
코드의 가독성이 좋으며 실행 속도가 빠르다. 계산이 많은 작업 등에 쓰이며 대표적을 포트란을 이용한 대기 과학 관련 연산 작업 머신 러닝의 배치 작업이 있다. 단점으로는 모듈화하기가 어렵고 유지 보수성이 떨어진다.
어떤 패러다임이 가장 좋냐? 그런 것은 없다.
비즈니스 로직이나 서비스의 특징을 고려해서 패러다임을 정하는 것이 좋다.
코딩의 대부분은 어느 곳에서 어느 방법을 선택하는 것을 잘 고려해서 하는 것이 제일 중요하다고 생각한다. 알맞지 않는 방법을 사용한다면 조금 힘든 길을 선택해 돌아가는 느낌일 것이다..
앞으로 가는 방향을 잘 선택할 수 있도록 좋은 방향으로 갈 수 있는 방법을 모색해 봐야할 것 같다.