객체 지향 프로그래밍이란?

이기훈·2022년 1월 15일
0

Programmer_Interview

목록 보기
2/4

Interview_forQuestion_for_Biginner에 나와있는 개발자 면접 질문들에 간단하게 정리

객체지향 프로그래밍 - 인간 중심적 프로그래밍 패러다임

프로그램을 수많은 ‘객체’라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식

객체란 하나의 역할을 수행하는 ‘메소드와 변수’의 묶음으로 봐야 한다.

현실 세계를 프로그래밍으로 옮겨와서 프로그래밍함, 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것 (추상화)

요소

  1. 캡슐화 : 변수와 함수를 하나의 단위로 묶음 (정보 은닉)
  2. 상속
  3. 다형성: 하나의 변수, 또는 함수가 상황에 따라 다른 의미로 해석될 수 있는 것
  4. 직렬화/역직력화: 서버나 다른 프로그램에 전송하기 위해 객체를 바이트 코드로 복사하는 작업

객체 지향적 설계 원칙

  1. SRP: 단일 책임 원칙 (클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유여야 한다.)
  2. OCP: 개방-폐쇄 원칙 (확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.)
  3. LSP: 리스코프 치환 원칙 (인터페이스는 그 인터페이스를 사용하는 클라이언트 기준으로 분리해야 한다.)
  4. ISP: 인터페이스 분리 원칙 (인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.)
  5. DIP: 의존 역전 원칙 (고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 된다.)
profile
Beyond Code

0개의 댓글