SlideShare a Scribd company logo
1 of 22
객체 지향 프로그래밍
2팀
이진호 갈민상
이민우 김동현
이수연 문수진
목차
● 절차 지향 프로그래밍의 한계
● 객체 지향 프로그래밍의 주요 4개념
● OOP의 구조
● 객체 지향적 설계
● SOLID 원칙
Object
Oriented
Programming
절차 지향 프로그래밍의 한계
1. 데이터와 데이터를 다루는 함수의 분리
2. 함수의 이름
3. 확장성 부족
유지 보수의 곤란 ⇒ 객체 지향 프로그래밍의 등장
객체 지향 프로그래밍의 주요 4개념
1. 캡슐화
1. 상속
1. 추상화
1. 다형성
1. 캡슐화
캡슐화는 데이터와 데이터를 다루는
함수를 같이 작성하는 것
객체 지향 프로그래밍의 주요 4개념
1. 캡슐화
1. 상속
1. 추상화
1. 다형성
2. 상속
코드를 물려받아 코드를 재사용
객체 지향 프로그래밍의 주요 4개념
1. 캡슐화
1. 상속
1. 추상화
1. 다형성
3. 추상화
구현 세부정보를 숨기는 일반적인
인터페이스를 정의하는 행위
객체 지향 프로그래밍의 주요 4개념
1. 캡슐화
1. 상속
1. 추상화
1. 다형성
4. 다형성
같은 인터페이스를 사용하되,
다른 세부 구현 사항을 가질 수 있는 성질
OOP 의 구조
1. 객체
1. 클래스
1. 인스턴스
1. 객체
상태와 행동을 함께 지닌 실체로,
프로그래밍에서는 주로 메모리
OOP 의 구조
2. 클래스
사용자 정의 타입으로, 멤버의 집합체
1. 객체
1. 클래스
1. 인스턴스
OOP 의 구조
3. 인스턴스
클래스를 바탕으로 할당된 메모리로,
객체의 부분 집합
1. 객체
1. 클래스
1. 인스턴스
객체 지향적 설계
객체 지향 프로그래밍의 장점
❖ 캡슐화를 통한 직관적 모델링
➢ 메소드를 통해 기능을 표현
➢ 필드는 그 기능을 구현하기 위한 데이터를 표현
➢ 추상화를 통해 세부사항을 숨김
책임 주도 설계
1. 협력
1. 객체
1. 책임
1. 메시지
1. 협력
기능은 더 작은 책임으로 분할되고 책임은
적절한 역할을 가진 객체에 의해 수행된다
객체지향 설계는 적절한 객체에게 적절한
책임을 부여하는 것에서 시작된다
책임 주도 설계
1. 협력
1. 객체
1. 책임
1. 메시지
2. 객체
객체는 협력적이어야 한다
- 다른 객체의 요청을 잘 처리해야 하고, 다른 객체에 적
극적으로 도움을 요청해야 한다
객체는 자율적이어야 한다
- 객체의 자율성은 객체의 내부와 외부를 명확하게 구
분하는 것으로 나오게 된다
책임 주도 설계
1. 협력
1. 객체
1. 책임
1. 메시지
3. 책임
요청을 처리하기 위해 객체가 수행하는 행
동
책임은 객체가 어떻게가 아닌 무엇을 해야
하는가를 설명한다
책임 주도 설계
1. 협력
1. 객체
1. 책임
1. 메시지
4. 메시지
객체지향에서의 유일한 의사소통
메시지를 전송하는 객체와 수신하는 객체
사이의 관계를 협력이라 한다
책임 주도 설계
다형성에 대한 재해석
❖ 다형성은 메시지 송신자의 관점에서 동일한 책임을 수행하
는 것
❖ 메시지는 송신자와 수신자 사이의 결합도를 낮춤으로써 설
계를 유연하고, 확장 가능하고, 재사용 가능하게 만든다
SOLID 원칙
1. 단일 책임 원칙
1. 개방-폐쇄 법칙
1. 리스코프 치환 원
칙
1. 인터페이스 분리
원칙
1. 의존성 역전 원칙
1. 단일 책임 원칙
소프트웨어의 각 모듈은 그 변경의 이유가
하나여야 한다
SOLID 원칙
1. 단일 책임 원칙
1. 개방-폐쇄 법칙
1. 리스코프 치환 원
칙
1. 인터페이스 분리
원칙
1. 의존성 역전 원칙
2. 개방-폐쇄 법칙
객체는 확장에는 열려있어야 하고
변경에는 닫혀있어야 한다
SOLID 원칙
1. 단일 책임 원칙
1. 개방-폐쇄 법칙
1. 리스코프 치환 원
칙
1. 인터페이스 분리
원칙
1. 의존성 역전 원칙
3. 리스코프 치환 원칙
하위 타입에 관한 원칙
A is a B가 만족하면 A는 B의
하위 타입이다
SOLID 원칙
1. 단일 책임 원칙
1. 개방-폐쇄 법칙
1. 리스코프 치환 원
칙
1. 인터페이스 분리
원칙
1. 의존성 역전 원칙
4. 인터페이스 분리 원칙
어떤 타입이 다른 타입에 의존한다고
할 때, 필요한 인터페이스만을 분리해
의존하게 설계해야 한다
SOLID 원칙
1. 단일 책임 원칙
1. 개방-폐쇄 법칙
1. 리스코프 치환 원
칙
1. 인터페이스 분리
원칙
1. 의존성 역전 원칙
5. 의존성 역전 원칙
고수준 정책을 구현하는 코드는
저수준 세부사항을 구현하는 코드에
절대로 의존해서는 안되며,
세부사항이 정책에 의존해야 한다
감사합니다.

More Related Content

Similar to 2팀 객체지향 프로그래밍_Jinho.pptx

Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준HoJun Sung
 
[Dev rookie]designpattern
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern대영 노
 
OOP SOLID PRINCIPLE(KOREAN)
OOP SOLID PRINCIPLE(KOREAN)OOP SOLID PRINCIPLE(KOREAN)
OOP SOLID PRINCIPLE(KOREAN)Daeyeon Kim
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요Nohyun Kee
 
객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것jaypi Ko
 
Java null survival guide
Java null survival guideJava null survival guide
Java null survival guideSungchul Park
 
Oop (객체지향이란)?
Oop (객체지향이란)?Oop (객체지향이란)?
Oop (객체지향이란)?철운 장
 

Similar to 2팀 객체지향 프로그래밍_Jinho.pptx (7)

Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준
 
[Dev rookie]designpattern
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern
 
OOP SOLID PRINCIPLE(KOREAN)
OOP SOLID PRINCIPLE(KOREAN)OOP SOLID PRINCIPLE(KOREAN)
OOP SOLID PRINCIPLE(KOREAN)
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것
 
Java null survival guide
Java null survival guideJava null survival guide
Java null survival guide
 
Oop (객체지향이란)?
Oop (객체지향이란)?Oop (객체지향이란)?
Oop (객체지향이란)?
 

2팀 객체지향 프로그래밍_Jinho.pptx

  • 1. 객체 지향 프로그래밍 2팀 이진호 갈민상 이민우 김동현 이수연 문수진
  • 2. 목차 ● 절차 지향 프로그래밍의 한계 ● 객체 지향 프로그래밍의 주요 4개념 ● OOP의 구조 ● 객체 지향적 설계 ● SOLID 원칙 Object Oriented Programming
  • 3. 절차 지향 프로그래밍의 한계 1. 데이터와 데이터를 다루는 함수의 분리 2. 함수의 이름 3. 확장성 부족 유지 보수의 곤란 ⇒ 객체 지향 프로그래밍의 등장
  • 4. 객체 지향 프로그래밍의 주요 4개념 1. 캡슐화 1. 상속 1. 추상화 1. 다형성 1. 캡슐화 캡슐화는 데이터와 데이터를 다루는 함수를 같이 작성하는 것
  • 5. 객체 지향 프로그래밍의 주요 4개념 1. 캡슐화 1. 상속 1. 추상화 1. 다형성 2. 상속 코드를 물려받아 코드를 재사용
  • 6. 객체 지향 프로그래밍의 주요 4개념 1. 캡슐화 1. 상속 1. 추상화 1. 다형성 3. 추상화 구현 세부정보를 숨기는 일반적인 인터페이스를 정의하는 행위
  • 7. 객체 지향 프로그래밍의 주요 4개념 1. 캡슐화 1. 상속 1. 추상화 1. 다형성 4. 다형성 같은 인터페이스를 사용하되, 다른 세부 구현 사항을 가질 수 있는 성질
  • 8. OOP 의 구조 1. 객체 1. 클래스 1. 인스턴스 1. 객체 상태와 행동을 함께 지닌 실체로, 프로그래밍에서는 주로 메모리
  • 9. OOP 의 구조 2. 클래스 사용자 정의 타입으로, 멤버의 집합체 1. 객체 1. 클래스 1. 인스턴스
  • 10. OOP 의 구조 3. 인스턴스 클래스를 바탕으로 할당된 메모리로, 객체의 부분 집합 1. 객체 1. 클래스 1. 인스턴스
  • 11. 객체 지향적 설계 객체 지향 프로그래밍의 장점 ❖ 캡슐화를 통한 직관적 모델링 ➢ 메소드를 통해 기능을 표현 ➢ 필드는 그 기능을 구현하기 위한 데이터를 표현 ➢ 추상화를 통해 세부사항을 숨김
  • 12. 책임 주도 설계 1. 협력 1. 객체 1. 책임 1. 메시지 1. 협력 기능은 더 작은 책임으로 분할되고 책임은 적절한 역할을 가진 객체에 의해 수행된다 객체지향 설계는 적절한 객체에게 적절한 책임을 부여하는 것에서 시작된다
  • 13. 책임 주도 설계 1. 협력 1. 객체 1. 책임 1. 메시지 2. 객체 객체는 협력적이어야 한다 - 다른 객체의 요청을 잘 처리해야 하고, 다른 객체에 적 극적으로 도움을 요청해야 한다 객체는 자율적이어야 한다 - 객체의 자율성은 객체의 내부와 외부를 명확하게 구 분하는 것으로 나오게 된다
  • 14. 책임 주도 설계 1. 협력 1. 객체 1. 책임 1. 메시지 3. 책임 요청을 처리하기 위해 객체가 수행하는 행 동 책임은 객체가 어떻게가 아닌 무엇을 해야 하는가를 설명한다
  • 15. 책임 주도 설계 1. 협력 1. 객체 1. 책임 1. 메시지 4. 메시지 객체지향에서의 유일한 의사소통 메시지를 전송하는 객체와 수신하는 객체 사이의 관계를 협력이라 한다
  • 16. 책임 주도 설계 다형성에 대한 재해석 ❖ 다형성은 메시지 송신자의 관점에서 동일한 책임을 수행하 는 것 ❖ 메시지는 송신자와 수신자 사이의 결합도를 낮춤으로써 설 계를 유연하고, 확장 가능하고, 재사용 가능하게 만든다
  • 17. SOLID 원칙 1. 단일 책임 원칙 1. 개방-폐쇄 법칙 1. 리스코프 치환 원 칙 1. 인터페이스 분리 원칙 1. 의존성 역전 원칙 1. 단일 책임 원칙 소프트웨어의 각 모듈은 그 변경의 이유가 하나여야 한다
  • 18. SOLID 원칙 1. 단일 책임 원칙 1. 개방-폐쇄 법칙 1. 리스코프 치환 원 칙 1. 인터페이스 분리 원칙 1. 의존성 역전 원칙 2. 개방-폐쇄 법칙 객체는 확장에는 열려있어야 하고 변경에는 닫혀있어야 한다
  • 19. SOLID 원칙 1. 단일 책임 원칙 1. 개방-폐쇄 법칙 1. 리스코프 치환 원 칙 1. 인터페이스 분리 원칙 1. 의존성 역전 원칙 3. 리스코프 치환 원칙 하위 타입에 관한 원칙 A is a B가 만족하면 A는 B의 하위 타입이다
  • 20. SOLID 원칙 1. 단일 책임 원칙 1. 개방-폐쇄 법칙 1. 리스코프 치환 원 칙 1. 인터페이스 분리 원칙 1. 의존성 역전 원칙 4. 인터페이스 분리 원칙 어떤 타입이 다른 타입에 의존한다고 할 때, 필요한 인터페이스만을 분리해 의존하게 설계해야 한다
  • 21. SOLID 원칙 1. 단일 책임 원칙 1. 개방-폐쇄 법칙 1. 리스코프 치환 원 칙 1. 인터페이스 분리 원칙 1. 의존성 역전 원칙 5. 의존성 역전 원칙 고수준 정책을 구현하는 코드는 저수준 세부사항을 구현하는 코드에 절대로 의존해서는 안되며, 세부사항이 정책에 의존해야 한다

Editor's Notes

  1. 접근 지정자 설명하기 public : 클래스 외부에서 접근 가능 private : 클래스 외부에서 접근 불가능 protected : 클래스 내부 및 자식 클래스에게만 접근 권한 부여
  2. 인터페이스란 서로 다른 부분이 서로에게 영향을 미치는 영역을 의미합니다.
  3. 객체지향이 주류가 된 이유는 다형성에 의한 높은 확장성 때문이다. 캡슐화를 통해 직접적이고 직관적으로 모델링 할 수 있다는 장점도 있다.