객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍의 한 패러다임으로, 소프트웨어를 객체들의 모임으로 파악하고 구현하는 방법론입니다. 객체지향 프로그래밍은 실세계의 객체(사람, 자동차, 계좌 등)를 모델링하여 소프트웨어 개발을 보다 직관적이고 효율적으로 만들어 줍니다.
객체지향 프로그래밍은 소프트웨어 개발에서 널리 사용되며, Java, C++, Python, Ruby 등 다양한 프로그래밍 언어가 객체지향 패러다임을 지원합니다. 객체지향 방법론을 통해 개발자는 보다 직관적이고 유연한 방식으로 문제를 해결할 수 있으며, 소프트웨어의 품질과 생
[1] velog - 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (https://velog.io/@coco_116/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%99%9C%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94)
[2] 코드스테이츠 - 객체 지향 프로그래밍의 4가지 특징ㅣ추상화, 상속, 다형성 ... (https://www.codestates.com/blog/content/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B9%EC%A7%95)
[3] 나무위키 - 객체 지향 프로그래밍 (https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)
[4] 얄코 - 객체지향 프로그래밍이 뭔가요? (https://www.yalco.kr/16_oodp/)
자바스크립트 내에서의 함수형과 클래스형의 차이점을 이해하기 위해서는, 우선 자바스크립트가 프로토타입 기반 언어라는 것을 기억해야 합니다. 이는 클래스 기반 객체지향 언어와 다른 점으로, 자바스크립트에서 "클래스"는 ES6에서 도입된 문법적 설탕(Syntactic Sugar)이라고 볼 수 있습니다. 즉, 자바스크립트의 클래스도 내부적으로는 프로토타입 기반으로 동작합니다.
함수형 프로그래밍에서는 순수 함수(pure functions)와 불변성(immutability)을 중시합니다. 자바스크립트에서 함수형 프로그래밍을 할 때는 함수를 일급 객체(first-class citizens)로 취급하며, 고차 함수(higher-order functions), 클로저(closures), 순수 함수 등의 개념을 활용합니다.
클래스형 프로그래밍은 객체지향 프로그래밍(OOP)의 한 방식으로, 데이터와 그 데이터를 조작하는 메서드를 하나의 단위인 "클래스"로 묶습니다. ES6에서 도입된 클래스 문법을 통해 보다 명시적으로 객체지향 프로그래밍을 할 수 있게 되었습니다.
class
키워드를 사용해 클래스를 선언합니다. 클래스 내부에서는 생성자(constructor
), 메서드, 속성을 정의할 수 있습니다.extends
키워드를 사용해 클래스 간의 상속을 구현할 수 있습니다. 이를 통해 코드 재사용성을 높이고, 관계를 명확히 할 수 있습니다.new
키워드를 사용해 클래스의 인스턴스를 생성합니다. 이 인스턴스를 통해 클래스에 정의된 속성과 메서드에 접근할 수 있습니다.자바스크립트에서 함수형과 클래스형의 가장 큰 차이는 설계 철학과 사용 방법에 있습니다. 함수형 프로그래밍은 함수의 조합과 데이터의 불변성에 중점을 두는 반면, 클래스형 프로그래밍은 객체의 상태와 행동을 클래스로 묶어 관리하는 객체지향적 접근을 제공합니다. 선택은 프로젝트의 요구사항, 개발 팀의 선호도, 그리고 특정 문제를 해결하기 위한 가장 적합한 패러다임에 따라 달라질 수 있습니다.
[1] velog - 함수형 프로그래밍과 클래스형 프로그래밍 (https://velog.io/@tjdud0123/%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EA%B3%BC-%ED%81%B4%EB%9E%98%EC%8A%A4%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)
[2] velog - 함수형 프로그래밍 - 함수형 vs 객체지향형 (https://velog.io/@doodream/%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%95%A8%EC%88%98%ED%98%95-vs-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%ED%98%95)
[3] YouTube - 함수형프로그래밍이 대세다?! (함수형 vs 객체지향) - YouTube (https://www.youtube.com/watch?v=4ezXhCuT2mw)
[4] 요즘IT - '액션-계산-데이터' 관점으로 보는 함수형 프로그래밍 패러다임 (https://yozm.wishket.com/magazine/detail/1485/)