A is B.상속의 기본 개념정의 상속은 한 클래스(부모 클래스 또는 슈퍼클래스)의 속성과 메서드를 다른 클래스(자식 클래스 또는 서브클래스)가 이어받는 것을 말한다. 이를 통해 자식 클래스는 부모 클래스의 모든 기능을 사용할 수 있으며, 필요에 따라 추가적인 기능을 구현하거나 기존 기능을 재정의(Override)할 수 있다재사용성 상속은 코드의 재사용성을 높인다. 공통적인 기능을 부모 클래스에 정의하고, 이를 여러 자식 클래스에서 확장하여 사용할 수 있다. 상속의 장점코드 재사용기존 클래스의 코드를 재사용하여 새로운 클래스를 생성할 수 있다. 이는 개발 시간을 단축시키고, 코드의 중복을 방지한다. 유지보수의 용이성공통된 기능이 부모 클래스에 중앙집중화되어 있기 때문에, 수정이 필요할 경우 한 곳에서만 ..
OOP
캡슐화의 기본 개념 정의캡슐화는 객체의 데이터(상태)와 그 데이터를 조작하는 메서드(행위)를 하나의 단위로 묶는 것을 의미한다. 이를 통해 데이터와 메서드가 서로 밀접하게 연관되며, 객체의 내부 구현은 외부로부터 숨겨진다.정보 은닉(information hiding)객체의 내부 상태는 외부에서 직접 접근할 수 없도록 숨겨지며, 오직 객체가 제공하는 메서드를 통해서만 조작될 수 있다.이로 인해 내부의 구현은 감추고 한 모듈 내에서의 응집도(얼마나 관련성이 높은 책임들이 할당되었는지)를 높여 외부로의 노출을 최소화한다. 이로 인해 코드의 유연성과 유지보수성을 높일 수 있다.(정보 은닉은 캡슐화로부터 파생된 보조 개념이다. 캡슐화 = 정보 은닉은 아니다.)캡슐화의 목적과 장점 유지보수성객체의 내부 구현이 외부..
절차적 프로그래밍객체 지향 프로그래밍(OOP)의 등장 이전의 프로그래밍 패러다임은 절차적 프로그래밍이었다.흔히들 OOP의 반대가 절차적 프로그래밍이라고 생각을 하는데, 이는 틀린 사실이다. 절차적 프로그래밍의 프로시저가 OOP의 메서드로 확장된 것에 가깝기에, 완전히 일치한다고 볼 수는 없어도 서로 공유하는 부분이 차이보다는 더 많다. 그럼에도 불구하고 왜 OOP가 등장하였냐 하면, 절차적 프로그래밍은 데이터를 구조화 하지 못하는 한계가 있었기 때문이다. 절차적 프로그래밍에서는 데이터가 종종 전역 변수로 선언되어 사용되었는데, 이는 다양한 함수들이 동일한 데이터에 접근하고 수정할 수 있음을 의미했다. OOP의 관점에서 보면, "메서드1" 에서 사용되는 전역 변수 "변수1" 이 아무 관련도 없는 생뚱맞은..

역할, 책임, 협력 객체지향의 사실과 오해를 다 읽었다. OOP를 하는 개발자들에게 필수 도서라 하여, 다른 공부할 것들을 제쳐두고 이것만 먼저 읽었다. 사실 이 책은 펼쳐놓고 코드를 타이핑하고 응용하는 책은 아니다. 이 책에서 실제 코드는 단 한 파트에서만 나온다. 대부분은 줄글과 이해를 돕기 위한 삽화로 구성되어 있다. 페이지 수는 260p 밖에 안되는 책이었다. 하지만 이 책을 완독하는데 순수 시간으로 약 20시간 정도가 든 것 같다. 단순히 글을 줄줄 읽기만 했다면 빠르면 1시간에도 충분했을 건데, 이 책이 설명하는 단어와 문장과 은유를 이해하려고 몇번이고 곱씹어보고, OKKY에 질문도 하느라 많은 시간이 들었다. 완독한 다음날인 오늘, 간략하게나마 회고를 해 본다. 일단, 어려웠다. 이 책은 은..