어쩌다가 객지프 공부할일이 생겨서 작성하게 되본
새로운 시리즈 OOP정복 출발 ✨✨✨
(물론 완전한정복🥲은 어려운걸 알고 있음)
🕖 등장배경
아니,, 그래서 왜 객체지향프로그래밍이 나왔는데?
기술이 급속도로 발전에 따라 하드웨어는 성장했고
이에 맞춰 SW도 복잡해지고 거대해졌습니다.
feat. 무어의 법칙 :
마이크로칩 기술의 발전 속도에 관한 일종의 법칙으로
마이크로칩에 저장할 수 있는 데이터 분량이 18-24개월 마다 두 배씩 증가한다
이렇게 되면서 기존의 flow 즉, 순서 중심의 절차지향 개발방식의 한계가 대두되었습니다.
👉 절차지향프로그래밍의 한계 👈
절차지향프로그래밍 방식의 경우
프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임으로
데이터를 처리하는 부분은 구조화가 되어있으나
데이터는 구조화 되어있지 않다.
따라서, 어떤 특정한 데이터가 정확한지 확인하는 함수를 또 만들게 되기도 하고이러면서 네임스페이스 문제를 만난다.
결국, 문제가 발생한 경우 함수에 영향을 주는 변수 추적이 어렵다는 문제가 대두된다는 것이다.
아무튼 그래서 절차지향프로그래밍의 이러한 특성은
프로그램이 복잡해질 수록
유지보수의 어려움을 낳게 되었다.
따라서 각 객체가 기능과 데이터를 동시에 가지고 독립적으로 협력할 수 있는
객체지향프로그래밍을 통해
유지보수의 어려움을 해결하고자 하였다.
🥊절차지향프로그래밍 VS 객체지향프로그래밍🥊
절차지향프로그래밍
절차지향프로그래밍의 핵심은 바로
거대한 문제를 쪼개고
차례대로 해결하는 것이다.
따라서 Top-Down 방식이라고 할 수 있다.
객체지향프로그래밍
객체지향프로그래밍은
독립적인 객체들의 공동체로부터 출발한다.
각자의 자원을 가지고,
스스로도 충분히 특정 문제를 해결할 수 있는 객체들이 존재한다.
그리고 이러한 객체들이 모야 독립적인 객체들의 공동체를 구성한다.
이들은 스스로 각자의 문제를 해결 할 수 있지만, 더 큰 문제 해결을 위해서는 협력이 필요하다.
공동체에서는 협력을 통해 이들의 문제를 해결한다.
따라서 Bottom-Up 방식이라고 할 수 있다.
✅ 객체지향프로그래밍
객체지향프로그래밍은 독립적인 객체들의 공동체에서 출발한다고 했다.
여기서 독립적인은 무슨 의미일까?
바로 의존성이 낮다 는 것이다.
즉, 약한 결합관계를 가지게 된다.
이렇게 되면 프로그램의 유지보수가 용이하고 신뢰성이 높아진다.
다음편에서 OOP 에 대해 조금 더 자세히 알아볼 것이다.
아마도 시리즈는
2 - oop 자세히
3 - 객체지향을 지지하는 4가지 주요컨셉
4 - SOLID
..
..
요런 순거가 될것같네요!
구독 누르고 기다려주세용 👋
ArticleS.UncleBob.PrinciplesOfOod,2023.02.11,http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
피터의 우아한 프로그래밍,2023.02.12,https://gracefulprograming.tistory.com/130
코드스페이츠, 2023.02.13, https://www.codestates.com/blog/content/객체-지향-프로그래밍-특징
조영호, 오브젝트: 코드로 이해하는 객체지향 설계 (위키북스, 2019)
김종민, 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (위키북스, 2015)
drom,2023.02.13,https://www.drom.ru/info/misc/tesla-model-y-78909.html
dev-jiwon,2023.02.13,https://dev-jiwon.github.io/swift-grammar-13/
scientecheasy,2023.12.13,https://www.scientecheasy.com/2020/07/encapsulation-in-java.html/
ITCookbook 컴퓨터사이언스, https://slidesplayer.org/slide/15298356/
'CS' 카테고리의 다른 글
OOP정복⛳️ (2) 객체지향프로그래밍이란 (0) | 2023.02.18 |
---|