동석쿠
프로그래밍 공부
동석쿠
전체 방문자
오늘
어제
  • 공부 (80)
    • 공부기록 (64)
      • 웹개발 (6)
      • Java (7)
      • cs 공부 (3)
      • http 웹 기본 지식 (8)
      • 자바 스프링 (20)
      • 개인 미니프로젝트 (3)
      • 알고리즘 공부 (6)
      • 면접준비 (2)
      • 프론트공부 (8)
      • 파이썬 플라스크 (1)
    • 항해99 기록 (14)
      • 회고록 (10)
      • 팀프로젝트 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링
  • 프로그래머스
  • 리프레시토큰
  • Get
  • Java
  • Post
  • lombok
  • 알고리즘
  • 상속
  • 리스트
  • 항해99
  • 스프링부트
  • JPA
  • 자바스크립트
  • 자바
  • API
  • 파이썬
  • 리액트
  • 리프레쉬토큰
  • 문법

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
동석쿠
공부기록/면접준비

객체지향에 대해서

공부기록/면접준비

객체지향에 대해서

2022. 4. 17. 15:09

객체 지향 프로그래밍 (Object Oriented Programming)

 

"객체지향이 뭐예요?"라고 물어본다면?

객체지향 프로그래밍은 사람 중심적으로 생각하여 프로그래밍하는 것입니다.

자동차를 예를 들면 바퀴나 엔진처럼 각각 맡은 기능의 역할만 수행하고 이 객체들은 필요에 따라 교체할 수도 있습니다. 객체지향 프로그래밍도 마찬가지로 객체들을 각각 역할에 맞게 작성하고 필요에 따라 교체하거나 수정할 수 있게 설계하는 프로그래밍 방법입니다..

 

객체지향의 장점

객체지향적인 코드는 이미 작성한 코드에 대한 재사용성이 높습니다. 또한 객체 단위로 코드가 나눠져 작성되기 때문에

유지보수에 용이하고 협업할 때 용이합니다.

객체지향의 단점

객체가 많으면 용량이 커질 수 있고, 설계 시 많은 노력이 필요합니다.

 

객체 지향적 설계 원칙

SOLID (SRP, OCP, LSP, ISP, DIP)

  1. SRP(Single Responsibility Principle) : 단일 책임 원칙
    클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다.
  2. OCP(Open-Closed Principle) : 개방-폐쇄 원칙
    확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.
  3. LSP(Liskov Substitution Principle) : 리스 코프 치환 원칙
    상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
  4. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
    인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
  5. DIP(Dependency Inversion Principle) : 의존 역전 원칙
    고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.

객체지향의 키워드 5가지

  • 클래스
  • 추상화
  • 캡슐화
  • 상속
  • 다형성

클래스와 객체(인스턴스)는?

클래스는 집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것으로 객체를 만들기 위한 메타정보라고 볼 수 있습니다.

객체는 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것으로 실제 프로그램에서 사용되는 데이터입니다.

 

객체지향 프로그래밍에서 추상화 (자료의 추상화)는?

공통의 속성이나 기능을 묶어 이름을 붙이는 것입니다.

 

캡슐화?

캡슐화란 객체가 내부적으로 기능을 어떻게 구현하는지 감추는 것입니다.

내부 기능이 변경되더라도 그 기능을 사용하는 코드는 영향을 받지 않아 유지 보수에 유연함을 주는 기법입니다.

 

상속?

상속은 부모 클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하고, 기능의 일부분을 변경해야 할 경우

상속받은 자식 클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것

 

다형성은?

하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것

 

오버 라이딩 : 부모 클래스의 메서드와 같은 이름, 메서드를 재정의 하는 것

오버 로딩 : 같은 이름의 함수를 여러 개 정의하고 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것,

'공부기록 > 면접준비' 카테고리의 다른 글

Spring MVC, DI, IOC  (0) 2022.05.26
  • "객체지향이 뭐예요?"라고 물어본다면?
  • 객체 지향적 설계 원칙
  • 객체지향의 키워드 5가지
'공부기록/면접준비' 카테고리의 다른 글
  • Spring MVC, DI, IOC
동석쿠
동석쿠

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.