OOP

ou·2024년 1월 16일
0

basic

목록 보기
2/24

OOP

OOP 이전의 모습

절차적 프로그래밍은 프로젝트의 덩치가 커질수록 변수명 관리가 어려워졌다.
데이터와 처리 방식이 하나의 모듈로 관리되며 작은 프로그램들이 독립적으로 돌아가는 형태되며 데이터의 접근과 처리 과정이 수월해져감

OOP 등장

부품을 만드는 설계도(Class)를 만들고 찍어내듯 부품을 만드는(Object)가 등장

여기서 기존의 구조체와 함수를 합쳐서 선언하는 것을 Class
Class를 통해 만들어진 결과물을 Object instance라 함

그래서 OOP 는

절차지향 프로그래밍과 대비되는 프로그래밍 방법론
패러다임 일 뿐 언어의 속성이 아님. 어느 언어로든 절차지향, 객체지향 프로그래밍 할 수 있음
강한 응집력(Strong cohesion), 약한 결합력(Weak Coupling)

프로그램은 모두 객체로 만들어져 있고 객체들 간의 메세지를 주고 받는 상호작용으로 이루어진다
프로그램을 객체로 바라보는 관점으로 프로그래밍 하는 것을 OOP라 부르게 됨

OOP 특징

추상화

코드에서 공통된 부분을 분리해 상위 개념으로 새롭게 이름 붙임
사용자가 필요하지 않는 메소드들을 노출시키지 않고, 단순한 엔터페이스로만 노출

캡슐화

내부에 바로 접근하지 못하도록하고 필요한 메서드만 열어두어 안정성을 높임
느슨한 결합을 도움

상속

객체의 공통된 부분을 만들어서 상속 받음

다형성

추상화된 상위 개념으로부터 하위의 여러 가지 타입으로 참조할 수 있다.
같은 메소드로 다양한 동작을 보여주는 것

이 글을 마무리하며

아직 많이 부족한 것 같다.
그럼에도 계속 OOP에 시간을 쏟을 수 없어 여기까지 정리하고 다음으로 넘어간다 . 공부하며 내용을 더 추가해야겠다

참고자료
https://rkgml981105.medium.com/object-oriented-programming-oop-prototype-in-javascript-a446e5e772e
https://yozm.wishket.com/magazine/detail/1396/
https://velog.io/@yejinh/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
https://velog.io/@loocia1910/JS-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DOOP-%EB%9E%80
https://parksb.github.io/article/1.html

profile
경험을 현명하게 사용한다면, 어떤 일도 시간 낭비는 아니다.

0개의 댓글

관련 채용 정보