함수형 프로그래밍 & 객체지향

GoGoDev·2022년 10월 18일
0

프로그래머스

목록 보기
5/22

패러다임은 무엇을 해야할지를 말하기보다 무엇을 해서는 안되는지 말해준다 -Clean Architecture-

프로그램은 순차, 분기, 반복, 참조로 구성된다.
패러다임은 이 4가지 요소를 어떻게 이용할 것인지 다룬다.

함수형 프로그래밍

const stringNumber = "12345";
console.log(
  stringNumber.split('').map(x => parseInt(x)).reduce((x, y) => x + y, 0);
); // split함수, map함수, reduce함수 등 함수들을 조합하여 결과를 도출한다.

장점

  • 함수가 최소 단위가 된다.
  • 객체보다 더 작은 단위로 나누어지므로 재사용성이 높다.
  • 데이터의 불변성을 지향 -> 상태가 없기 때문에 사이드 이펙트 방지
  • 코드가 짧고 간결

단점

  • 상태가 없으므로 변수 조작이 어렵다. (메모리와 성능 저하)
  • 함수를 잘게 쪼게야하므로 복잡해질 수도 있다.

선언형 프로그래밍

  • 함수형 프로그래밍 == 선언형 프로그래밍
  • 무엇을 해결해야 할지에 집중하고 해결 방법은 컴퓨터에게 위임

객체지향

  • 객체지향의 객체는 실제 존재하는 것을 추상화한 것이다

    추상: 사물이 가지고 있는 여러 가지 중 특정한 부분만 보는 것 (필요없는 부분은 버린다)

  • 객체를 통해 데이터와 메서드를 묶고 객체끼리 데이터를 주고받으며 통신하여 프로그램이 동작한다.
  • 독립된 객체간의 소통을 중요시 한다.
  • 프로그램이 복잡해지더라도 객체 단위로 수정이 용이하고 오류 발생 시, 원인 파악이 쉽다.

JS의 객체

자바스크립트에서의 객체는 클래스처럼 속성메서드로 정의할 수 있다.

const animal = {
  species: "pomeranian", // 속성
  age: 3,
  bark: function () { // 메서드
  	console.log('왈왈 멍멍');
  },
};

console.log(animal.species); // 'dog'
animal.bark(); // '왈왈 멍멍'

객체 생성 방법

// 객체 리터럴
const animal = {...};
// Object 생성자 함수
const animal = new Object();
animal.species = "pomeranian";
// 생성자 함수
function Animal(species, age, bark){
  this.species = species;
  ...
}

🔗 출처

프로그래머스 데브코스

profile
🐣차근차근 무럭무럭🐣

0개의 댓글