[TIL-251222] 객체지향

데비·2025년 12월 22일

본과정

목록 보기
12/79

오늘 배운 내용

- 객체지향 프로그래밍과 데이터 구조


객체지향

객체지향의 4대 특징

- 캡슐화 (Encapsulation)

  • 프로그램 내에서 객체가 구동되기 위한 데이터(필드)와 동작(메서드)을 객체 자신이 가질 수 있는 성질
  • 불필요한 데이터의 변질을 막기 위해 내부의 데이터와 동작을 감추고 외부에는 필요한 부분만 노출(은닉)하도록 할 수 있습니다. <=[은닉성]

- 상속 (Inheritance)

  • 하위 객체가 상속 받은 상위 객체에서 정의된 필드 or 메서드를 재활용가능
  • ex) 몬스터가 움직인다는걸 만들어뒀을 때, 슬라임, 고블린, 보스가 공통적으로 가지고있는 "플레이어 공격"을 이용 가능

- 추상화 (Abstraction)

  • 객체의 중요한 부분을 강조하기 위해 공통적인 속성과 기능을 추출하고 불필요한 세부 사항들은 제거, 객체의 가장 본질적이고, 공통적인 부분만 표현
  • ex) 배틀그라운드에서 자동차를 만들 때 자동차의 이동 요소는 만들지만 차에 들어가는 엔진이나 부품을 만들지는 않는다.

- 다형성 (Polymorphism)

  • 이름과 같이 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질이다.
    추후 프로그래밍을 배우며 지속적으로 다뤄질 객체지향에서 가장 중요한 특성 중 하나이다.

SOLID 원칙

- S : 단일 책임 원칙

  • 클래스(객체)는 단 하나의 책임만 가져야 한다.
  • ex) 총은 총알만 발사할 수 있다.

- O : 개방 폐쇄 원칙

  • '확장에 열려있어야 하며, 수정에는 닫혀있어야 한다.

- L : 리스코프 치환 원칙

  • 자식 객체는 언제나 부모 타입으로 교체될 수 있어야 한다.

- I : 인터페이스 분리 원칙

  • 하나의 큰 인터페이스 보다 용도에 맞는 인터페이스를 잘게 분리해야한다.

- D : 의존 역전 원칙

  • 고수준의 모듈은 저수준 모듈의 구현에 의존해서는 안된다.

데이터 구조

힙 영역

  • 동적 메모리 저장
  • 가비지 컬렉터(GC)에 의해 메모리 삭제
  • 사용자에 의해 관리

스택 영역

  • 함수와 관련된 지역 변수, 매개 변수 저장
  • 후입선출(LIFO) 방식으로 저장 및 삭제
  • 상대적으로 작은크기, 빠른 속도

데이터 영역

  • 전역 변수, 정적 변수 등 저장

코드 영역

  • 실행 가능한 프로그램 코드 저장


    객체지향 너무 많고 어렵다.. Class도 써야하는데 내용이 너무 많고 어려워서 이해하기가 쉽지않다..

0개의 댓글