본문 바로가기

전체 글196

# 상속보다는 조립 Main Point : 조립은 상속이 야기할 수 있는 문제들을 해결한다. - 상속과 재사용 상속은 상위 클래스의 기능을 재사용하고 확장하는 방법으로 사용된다. - 상속을 통한 기능 재사용시 발생할 수 있는 단점 상위 클래스 변경의 어려움 클래스의 불필요한 증가 상속의 오용 - 상위 클래스 변경의 어려움 상위 클래스를 변경하면 그 변경의 여파가 계층도를 따라 모든 하위 클래스에 전파된다. 상위 클래스의 입장에서는 어떤 하위 클래스가 생성될지 모른다. 즉, 하위 클래스가 얼마나 생성될지 알 수 없기 때문에 최초에 상위 클래스를 생성할 때 완벽한 상위 클래스를 생성하는 것은 불가능하다. 하위 클래스가 많아질수록 상위 클래스의 사소한 변경점 하나가 큰 파장을 일으키기 때문에 상위 클래스의 변경이 더욱 어려워진다.. 2023. 1. 27.
# 다형성과 추상화 Main Point : 추상화는 유연한 변경이 가능하게 한다. - 다형성 다형성은 여러 모습을 갖는 것이다. 객체 지향에서의 다형성은 한 객체가 여러 타입을 갖는 것이다. 즉, 한 객체가 여러 타입의 기능을 제공할 수 있다. 다형성은 보통 타입 상속으로 구현한다. 어떤 타입을 상속받은 하위 타입은 상위 타입도 될 수 있다. 즉, 한 타입이 여러 타입을 갖게 된다. public class Timer { public void start() { ... } public void stop() { ... } } public interface Rechargeable { void charge(); } public class IotTimer extends Timer implements Rechargeable { publ.. 2023. 1. 19.
# 캡슐화 Main Point : 캡슐화는 구현의 유연성을 높인다. - 캡슐화 캡슐화란 데이터와 데이터와 관련된 기능을 묶는 것이다. 캡슐화는 객체가 기능을 어떻게 구현했는지를 외부에 감추는 것이다. 즉, 구현에 사용된 데이터의 상세 내용을 외부에 감춘다. 캡슐화에는 정보 은닉의 의미가 포함되어 있다. 캡슐화를 하는 가장 큰 이유는 외부에 영향을 주지 않고 객체 내부의 구현 변경을 가능하게 하기 위함이다. - 캡슐화하지 않으면 요구 사항이 바뛰면 데이터의 구조와 사용 방법이 바뀌게 된다. 이 때 캡슐화가 되어있지 않으면 데이터를 사용하는 많은 코드의 수정이 발생한다. 즉, 절차 지향적 프로그래밍이 지닌 단점이 나타나게 된다. //정회원 기능 if (acc.getMemberShip() == REGULAR && acc.. 2023. 1. 16.
# 객체 Main Point : 객체는 기능으로 정의한다. - 절차 지향 절차 지향은 하나의 데이터를 여러 procedure가 사용한다. 따라서 시간이 흐르며 요구 사항이 늘어날수록 코드의 유지보수를 어렵게 한다. 아래의 코드를 보며 이해해보자 //인증 API Account account = findOne(id); if(account.getState() == DELETE || account.getBlockCount() > 0){ ... } //암호 변경 API Account account = findOne(id); if(account.getState() == DELETE || account.getBlockCount() > 0){ ... } 더보기 위의 코드에서 요구 사항이 늘어나 아래와 같이 수정한다. //인증 .. 2023. 1. 16.
# 들어가며 해당 게시글은 인프런의 최범균 강사님의 강의인 '객체 지향 프로그래밍 입문' 수업을 듣고 정리한 내용들입니다. 해당 게시글에 작성된 모든 내용의 출처는 위 수업에 있음을 밝힙니다. 2023. 1. 15.
0장. 들어가며 이펙티브 자바를 읽고 정리해보고자 만든 카테고리입니다. 아래 글은 그냥 적어놓는 글이니 굳이 읽지 않으셔도 됩니다. 오늘(1/9)부터 Effective JAVA를 읽으려 한다. 그리고 인프런에서 최범균님의 객체지향 프로그래밍 입문 수업을 결제했다. 이전까지 개발자로서 취업 준비를 하면서 내가 한 일이라고는 알고리즘 문제를 풀고 코딩 테스트에 준비한 것 밖에 없었다. 이 블로그도 최초에는 기술 블로그로 이용하려 했지만 막상 기술 블로그를 운영해보려니 내가 아는 게 너무 없어서 글을 작성할 수가 없더라. 지난 우아한테크코스 프리코스를 겪어오면서 느낀 점은, '나는 진짜 아무것도 모르는구나' 였다. 어찌어찌 미션을 따라가기는 했지만, 자바에 대해서도 전혀 모르고 있었고, 객체지향 프로그래밍은 더더욱이 몰랐다... 2023. 1. 9.
반응형