일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 마이크로서비스아키택처
- jquery
- 프로그래머스
- 비절차형 언어
- 객체지향 5대 특징
- 토글기능
- AttributeError
- 클래스추가
- 배열오름차순정렬
- 회원가입기능
- 로그인기능 #
- 빅오표기법
- oop 4대 특성
- 함수지향
- 객체지향
- 4-Way Handshake
- Arrays.sort()
- 3-Way Handshake
- soild
- MSA
- 멀티프로세스
- 클래스삭제
- 의존역적원칙
- 타입오류
- 의존성주입
- flask
- CORS
- nat inside
- 향상된 for문
- 분산형 아키택처
- Today
- Total
개발하는 체대생
객체지향 프로그래밍(OOP)에 대한 설명 본문
객체지향이란?
객체지향이란, 데이터를 추상화시켜 객체를 만들고 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
객체지향(oop)의 4대 특징
객체지향의 4대 특성에는 캡슐화, 추상화, 상속성, 다형성 이 있습니다.
- 캡슐화
캡슐화는 정보은닉이 필요한 경우, 즉 외부에서 해당 정보에 접근하지 못하게 제한한다는 개념입니다.
주로 접근제한자를 사용하여 캡슐화를 합니다.
캡슐화는 높은 응집도와 낮은 결합도로 유연함과 유지보수성이 증가된다는 장점이 있습니다.
예시 : 나의 이름이라는 정보는 외부에서 접근하여 변경하게 되면 문제가 생길 수 있기 때문에 나의 특징 중 이름이라는 정보는 캡슐화를 합니다.
- 추상화
객체의 공통적인 특징을 파악해서 하나의 개념으로 추상화 시켜 다루는 개념입니다.
장점으로는 공통적인 특징을 따로 정의 해두면 객체를 만들 때 매번 정의하지 않고 상속 받아서 사용하면 되기 때문에 코드의 낭비를 줄일 수 있고 가독성이 향상된다는 장점이 있습니다.
예시 : '사람1' 이라는 객체와 '사람2' 라는 객체를 만들 때 사람의 공통적인 특징인 '호흡한다', '밥을 먹는다' 라는 공통적인 특징을 정의하는 것입니다.
- 상속
상속은 부모클래스의 특징을 받아와 자식클래스에서 사용한다는 개념니다.
상속은 코드의 낭비를 줄일 수 있고 가독성이 향상된다는 장점이 있습니다.
예시 : 부모님의 음악적 재능을 자식이 물려받아 사용하는 것을 예시로 들 수 있습니다.
- 다형성
다형성이란 형태는 같지만 다향한 기능으로 동작하는 것을 의미합니다.
다형성은 오버라이딩과 오버로딩이라는 개념을 예시로 들 수 있습니다.
예시1 : 오버로딩 - 매개변수의 개수가 다르거나 다른 타입의 변수을 받았을 때 같은 이름의 메서드라도 다르게 동작합니다.
예시2 : 오버라이딩 - 자식클래스에서 부모클래스에 있는 메서드를 받아 재정의 하여 사용합니다.
객체지향 설계의 5대 특징(solid)
- SRP(Single Responsibility Principle)
단일 책임 원칙 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 합니다.
- OCP(Open-Closed Principle)
개방-폐쇄 원칙 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 합니다.
- LSP(Liskov Substitution Principle)
리스코프 치환 원칙 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 합니다.
- ISP(Interface Segregation Principle)
인터페이스 분리 원칙 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 합니다.
- DIP(Dependency Inversion Prinsiple)
의존 역전 원칙은 구체화된 클래스에 의존하기 보다는 추상 클래스나 인터페이스에 의존해야 한다는 뜻입니다.
추가참고자료
절차지향, 객체지향, 함수형 프로그래밍
질문 : 절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가? 답변 : 절차지향 프로그래밍이란 간단하게 말해서 일이 진행되는 순서대로 프로그래밍 하는 방법입니다. 객
rpguswns.tistory.com
오버로딩(Overloading)과 오버라이딩(Overriding)
오버로딩(Overloading)과 오버라이딩(Overriding)
질문 : 오버로딩과 오버라이딩의 차이점에 대해서 설명해주세요. 답변 : 오버로딩은 같은 이름의 메소드를 여러 개 정의하고, 매개변수의 타입과 개수를 다르게 지정하는 것입니다. 반면 오버라
rpguswns.tistory.com
'취업스터디' 카테고리의 다른 글
제네릭이란? (0) | 2023.03.29 |
---|---|
MSA(Micro Service Architecture)란? (0) | 2023.03.29 |
DB에서 Index란? (0) | 2023.03.28 |
DI(Dependency Injection)란? (0) | 2023.03.28 |
RESTful API란? (0) | 2023.03.27 |