📌 절차적 프로그래밍 (Producedural Programming)
순차적인 처리를 중요시 여기며, 프로그램 전체가 유기적으로 연결되게끔 하는 프로그래밍 기법
장점
- 모듈 구성이 용이, 구조적 프로그래밍이 가능
- 컴퓨터의 처리구조과 비슷하여 실행 속도가 빠르다
단점
◽ 유지 보수 어려움
=> 순서대로 코드를 작성하므로 앞의 코드가 바뀌면 결과가 달라질 수 있음
◽ 순서대로 작성하기 위해서 앞에서부터 코드를 이해해야 하므로 긴 코드는 이해하기 어려움
=>대형 프로젝트에 맞지 않음
대표적 언어: C, 포트란
📌 객체 지향 프로그래밍 (Object Oriented Programming)
데이터와 기능을 하나로 묶어 재사용성을 갖는 프로그래밍 설계 철학
> 클래스에 객체를 만들기 위한 생성자 함수, 속성(데이터)과 메서드(기능)을 넣고, 인스턴스를 만들어 재사용성을 가진다.
주요 개념 4가지
✔ 캡슐화 (Encapsulation)
- 데이터와 기능을 하나로 묶는 것
- 은닉(hiding) : 구현은 숨기고 기능은 노출시킴 (코드, 데이터)
- 느슨한 결합(Loose Coupling)에 유리 : 구현 수정이 용이
- 느슨한 결합
: 코드 실행 순서에 따라 절차적으로 코드를 작성하는 게 아니라, 코드가 의미하는 실제 기능과 흡사하게 코드를 모아 결합하는 것
- 느슨한 결합
✔ 추상화 (Abstraction)
- 클래스를 사용하는 사람이 필요하지 않은 메서드를 노출시키지 않고, 단순한 이름으로 정의
예)
메서드의 기능 : 나이를 가져오는 메서드
메서드의 목적 : 성인인지 아닌지 체크하기 위함
❌ getAge()
⭕ checkAdult()
✔ 상속 (Inheritance)
- 부모 클래스의 속성을 자식 클래스가 상속받는 것
- 기본 클래스(base class)의 특징을 파생 클래스(derived class)가 상속받는 것
- subclass extends superclass : superclass의 특징을 subclass에 상속시킴
✔ 다형성 (Polymorphism)
- 동일한 메서드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성
> 오버라이딩 (overrading)
자식 클래스가 부모 클래스에 있던 메서드를 덮어 씌우는 것
'Codestates SEB FE 42기 > 정리노트' 카테고리의 다른 글
S2 unit2 | 프로토타입 체인, 최상위요소는 무엇일까? (0) | 2022.11.23 |
---|---|
S2 unit2 | 프로토타입, 브라우저 속성 확인 루틴, 객체 속성과 요소 (0) | 2022.11.22 |
S2 unit2 | [javascript] 클로저 모듈 패턴 / 클래스 생성 (0) | 2022.11.19 |
S2 unit1 | [javascript] 고차 함수 , 고차함수 메서드 (0) | 2022.11.18 |
S1 unit11 | DOM으로 javascript에서 html요소 편집하기 (0) | 2022.11.14 |