객체 지향 프로그래밍(OOP)이란?
어떤 제품을 만들 때 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 제품을 완성하듯이
소프트웨어를 개발할 때에도 부품에 해당하는 객체를 먼저 만들고, 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 말한다.
객체란?
① 물리적으로 존재 - 자동차, 자전거, 책, 사람 등 ② 추상적으로 생각할 수 있는 것 - 강의, 주문 등
중에서 자신의 속성을 가지고 있고 식별 가능한 것을 말하는데
객체는 속성과 동작으로 구성되어 있다.
ex1) 사람이란 객체의 속성 - 이름, 나이
사람이란 객체의 동작 - 웃다, 말하다
ex2) 자동차란 객체의 속성 - 색깔, 모델명
자동차란 객체의 동작 - 달린다, 멈춘다
자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부른다.
객체 모델링이란?
현실 세계 객체(사람, 자동차 등)를 소프트웨어 객체로 설계하는 것을 말한다.
즉, 객체 지향 프로그래밍은 만들고자 하는 완성품인 객체를 모델링하고 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다.
객체 지향 프로그래밍의 장·단점은?
장점
- 다른 사람이 만든 클래스를 가져와 사용할 수 있고 상속을 통해 확장해서 사용할 수도 있다. (코드 재사용이 용이)
- 수정해야 할 부분이 클래스 내부에 변수 또는 메서드로 존재하기 때문에 해당 부분만 수정하면 되어 유지보수가 쉽다.
- 클래스 단위로 모듈화시킬 수 있으므로 업무 분담이 쉽고 대형 프로젝트에 적합하다.
모듈화? 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정
단점
- 객체가 처리하려는 것에 대한 정확한 이해가 필요하므로 설계 단계부터 많은 시간이 소요된다.
- 객체 지향 언어는 상대적으로 처리 속도가 느리다.
- 객체가 많아지면 용량이 커질 수 있다.
객체 지향 언어의 종류
- 자바
- C++
- Python
이 외에도 여러가지 종류가 있다.
JVM(Java Virtual Machine) 이란?
자바는 OS(운영체제)에 종속적이지 않다는 특징을 가지고 있는데
OS에 종속받지 않고 CPU가 자바를 인식하고 실행할 수 있게 하는 가상 컴퓨터이다.
<참고>
[JAVA] JVM이란? 개념 및 구조 (JDK, JRE, JIT, 가비지 콜렉터...)
JVM이란 무엇인가 Java Virtual Machine의 줄임말. 직역하면 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있다. Java 는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속받지 않고 실행되
doozi0316.tistory.com
https://mangkyu.tistory.com/194
[OOP] 객체지향 프로그래밍의 5가지 설계 원칙, 실무 코드로 살펴보는 SOLID
이번에는 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대해 알아보고자 합니다. 실제로 애플리케이션을 개발할 때 어떻게 적용할 수 있을지 구체적인 예시를 들어 살펴보고자 합니다. 아
mangkyu.tistory.com
이번 주차에는 알고리즘 문제들을 많이 풀어보았는데 생각보다 체계적으로 코드를 작성하는게 쉬운 일이 아니라는 것을 뼈저리게 느낀 한 주였다.. 사실 체계적으로 작성하는 것도 바라지 않았다. 그냥 어떻게든 풀어나가는게 목표였다.
새롭게 알게 된 내용들도 많이 있어서 힘들지만 유익한 시간이였고 지금까지 풀었던 문제들을 다시 복습하고 중요하거나 자주 쓰이는 문법들은 정리해서 조금씩 정리해서 올려야겠다.
알고리즘이 중요하다는 것을 알게 되었으니 매일 1문제씩 푸는 것을 목표로 공부해야겠다.
화이팅 지치지 말자 :)
'📑WIL & TIL' 카테고리의 다른 글
| Week3 WIL : DI, IoC, Bean (0) | 2022.12.04 |
|---|---|
| 2022/11/29 TIL 인스턴스 멤버와 정적 멤버 (0) | 2022.11.29 |
| 2022/11/11 TIL 참조 타입과 배열 (0) | 2022.11.13 |
| 2022/11/10 TIL 조건문과 반복문 (0) | 2022.11.10 |
| 2022/11/08 TIL 연산자 (0) | 2022.11.09 |