[Tech] 객체 지향 프로그래밍, 프로세스&스레드
[Tech] 객체 지향 프로그래밍, 프로세스&스레드
객체 지향 프로그래밍이란?!
- Object Oriented Programming라 불리는 객체 지향 프로그래밍.
- 협력의 관점, 즉 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자 하는 것을 의미하고.
- 각각의 객체는 서로 메시지를 주고 받고 데이터를 처리할 수 있도록,
상호작용으로 로직을 구성하는 프로그래밍 방법이다.
객체 지향 프로그래밍의 장단점
장점
- 프로그램을 유연하고 변경이 용이하게 만듦.
- 대규모 소프트웨어 개발에 적합.
단점
- 설계 시 많은 시간 소요 + 처리가 느림.
- 객체가 많아질 수록, 용량이 커짐.
객체 지향 특징
- 추상화
- 캡슐화
- 변수와 함수를 하나의 단위로 묶고, 외부에서의 접근을 보호하는 것을 의미.
- 데이터의 무결성을 유지하고, 잘못된 접근을 방지.
예시와 같이,
#기호로private 필드를 정의할 수 있다.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
class 클래스명 { // 1. 비공개 필드 선언 #필드이름 = 초기값; // 2. 생성자 (선택) constructor(초기값) { this.#필드이름 = 초기값; } // 3. Getter (읽기 접근 허용) get 필드이름() { return this.#필드이름; } // 4. Setter (쓰기 접근 허용 + 유효성 검사) set 필드이름(새값) { if (/* 유효성 조건 */) { throw new Error("유효하지 않은 값입니다."); } this.#필드이름 = 새값; } } const 인스턴스명 = new 클래스명("매개변수값..."); console.log(인스턴스명.필드이름); // getter 호출 인스턴스명.필드이름 = "새로운값"; // setter 호출
- 상속
- 다형성
프로세스와 스레드의 차이는?!
프로세스
- 운영체제에서 할당하는 작업의 단위를 의미.
- 프로세스 간의 자원 공유는 없다.
스레드
- 프로세스 내에서 실행되는 작업의 단위를 의미.
- 부모 프로세스의 자원을 공유한다.
다음과 같이, 스레드는 부모 프로세스의 code, data, heap 영역을 공유한다.
이 때, stack 영역만 따로 할당 받는다.
✨ 출처
프론트엔드 기술 면접 질문
blog, 객체지향 프로그래밍 특징
This post is licensed under CC BY 4.0 by the author.