OOP의 4가지 특징

1.캡슐화
2.추상화
3.상속
4.다형성

1.캡슐화

캡슐화란 객체가 필드 , 메소드를 하나로 묶고 public이나 private등의 접근 제한자를 사용해 실제 구현 내용은 외부에 감추는 것을 말한다.

외부객체는 객체 내부의 구조를 알지 못하며, 객체가 의도적으로 노출해서 제공하는 필드와 메소드만 사용할 수 있다.

2.추상화

공통의 속성이나 기능을 묶어 이름을 붙이는 것, 객체 지향 관점에 클래스를 정의하는 것을 추상화 라고 할 수 있다.

불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화 하는 것

즉 모델화 하는 것으로 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념이다.

함수가 커진다 -> 추상화를 제대로 하지 않은 것이다.

함수내 블록화된 코드를 묶어서 새로운 함수로 만든다. -> 그 블록에 대한 지식을 대표적으로 표현하기 위한 추상화
https://choi3950.tistory.com/25

3.상속

상속은 부모 클래스로부터 공통된 변수와 함수, 인터페이스를 그대로 물려받는것을 말한다. 추상화를 사용해 각 클래스의 공통된부분을 묶었다면, 부모 class를 상속받아서 거기에 포함된 데이터를 그대로 사용할 수 있다. 추상화와 밀접한 관계가 있다.

4.다형성

다형성은 같은 종류의 클래스가 하나의 메시지에 대해 서로 다른 행동을 하는 것을 말합니다. 부모 클래스의 함수를 다른자식클래스 2개가 상속받았을 때, 각자 필요한 용도로 변형하여 사용할 수 있다. 오버라이딩과 오버로딩의 형태로 다형성을 활용할 수 있다.


SOLID원칙

1. SRP (단일책임의 원칙: Single Responsibility Principle)

클래스 하나가 하나의 책임만을 가진다.

만약 한 클래스에 여러가지 책임이 있다면 여러 개의 클래스로 나누어줘야한다.
책임을 적절히 분배하면 코드의 가독성 향상, 유지보수 용이라는 이점이 있다.

2.OCP (개방폐쇄의 원칙: Open Close Principle)

확장(상속)에는 열려있고 변경하는것에는 닫혀있어야 한다.

공통된 기능을 추상화해서 상위단계로 올려서 인터페이스나 추상객체를 만들고 하위에서는 그것을 상속받거나 구현해서 목적에 맞게 상세한 기능을 구현한다. 프로그램은 최대한 추상화된 클래스를 사용함으로써 신규 하위클래스나 변경에 종속되어서는 안된다.

변경될것과 변하지 않을 것을 구분한다. 그리고 변하는 것을 인터페이스로 정의하고, 하위 클래스에서는 인터페이스를 구현한다.

3. LSP (리스코브 치환의 원칙: The Liskov Substitution Principle)

서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다.

4. ISP (인터페이스 분리의 원칙: Interface Segregation Principle)

ISP원리는 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원리다. 즉 어떤 클래스가 다른 클래스에 종속될때에는 가능한 최소한의 인터페이스만을 사용해야 한다. ISP는 '하나의 일반적인 인터페이스 보다는, 여러개의 구체적인 인터페이스가 낫다'라고도 정의할 수 있다. SRP와 유사하나 SRP는 클래스를 분리, ISP는 인터페이스를 분리하라고 말한다.

5.DIP (의존성역전의 원칙: Dependency Inversion Principle)

상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.

추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.

SOLID 관련해서 잘 정리되어있는 블로그 https://www.nextree.co.kr/p6960/

 

디자인패턴이란

디자인 패턴은

소프트웨어 설계 과정에서 많은 개발자들에게 자주 발생하는 문제들이 있다. 디자인 패턴은 그 문제들에 대한 전형적인 해결책이다.

복붙할수있는 스크립트나 공식이 아니다.

표준화된 라이브러리들이나 함수들을 코드에 복사해 사용하는 것처럼, 패턴은 붙여넣기식으로 사용할 수 없다. 패턴의 세부 개념들을 적용하여 각 프로그램에 맞는 해결책을 구현할 수 있다.

디자인 패턴의 종류

1995년 GoF(Gang of Four)라고 불리는 Erich Gamma, Richard Helm, Ralph Johnson, John Vissides가 처음으로 디자인 패턴을 구체화하였다.
GOF디자인패턴은 가장 많이 사용되는 디자인 패턴이고, 증명되었다. 목적에 따라 분류시 생성패턴, 구조패턴, 행위패턴으로 구성된다.

 


작성일: 1022년 12월 19일

'아카이브 > 개발,공부' 카테고리의 다른 글

군것질 후기  (0) 2026.05.12
유니티,깃 협업 환경 세팅 (팀원 공유용)  (0) 2026.05.12
Generic  (0) 2026.05.12
값 타입, 참조 타입 / Boxing, UnBoxing  (0) 2026.05.12
상속, Virtual , Abstract, Interface  (0) 2026.05.12

+ Recent posts