객체지향

시작하기 전 ... String vs StringBuffer vs StringBulider을 정확히 이해하고 어느시점에 적재적소로 사용할 것인지 다시 한번 정리가 필요하다고 판단하여 포스팅을 하게 되었다!.. 더보기 stirng 빈 값 체크 참고 [String] String 빈 값 및 Null 체크 Goal StringUtils이 제공하는 빈 값과 Null체크를 하는 메소드의 각 차이점을 알아본다 == 와 equals()의 차이를 알아본다 String.valueOf()메소드에 대해 알아본다 기존 코드에서의 빈 값 및 null 체크 // 계약 dev-rosiepoise.tistory.com Goal String에 대해서 알아본다 StringBuffer에 대해서 알아본다 StringBulider에 대해서 알..
Goal 다형성에 대해 알아본다 오버라이딩에 대해 알아본다 오버로딩에 대해 알아본다 오버라이딩과 오버로딩이 동시에 발생한 경우는? 오버라이딩과 오버로딩을 사용한 코드 예시를 살펴본다. 객체지향의 특성 참고 [객체지향의 원리와 이해 3] 자바와 객체 지향 객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕 dev-rosiepoise.tistory.com 다형성(Polymorphism)이란? 객체지향의 4대 특성중 하나로 사용편의성을 의미하며, 하나의 객체가 여러가지 타입을 ..
Goal 스프링의 추상화 중 하나인 Resource 추상화에 대해 알아본다 추상화를 한 이유에 대해 알아본다 Resource 인터페이스의 동작과정과 구현체를 알아본다 Resource를 읽어오는 방법에 대해 알아본다 Resource 추상화란 ? 구체적으로 java.net.URL를 추상화 한 것 org.springframework.core.io.Resource 클래스로 감싸서 로우 레벨에 접근하는 기능을 추상화하였다. 가져오는 기능은 아래 포스팅 참고 https://dev-rosiepoise.tistory.com/99 [IoC 컨테이너와 빈] ResourceLoader Goal ApplicationContext의 Resource Loader에 대해 알아본다 ResourceLoader란? 리소스를 읽어오는 기..
Goal @SpringBootApplication 어노테이션에 대해 알아본다 ApplicationContext에 대해 알아본다 어노테이션을 사용하지 않고, 고전적인 방법(ApplicationContext)으로 스프링 빈 설정파일을 만들어본다 @SpringBootApplication 기존의 스프링부트 DemoApplication @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @SpringBootApplication SpringBootConfiguration 스프링 부트의 설정을 나타내는..
Goal 스프링 삼각형에 대해 알아본다 스프링이 구현한 Inversion of Control에 대해 알아본다 IoC를 사용한 경우와 그렇지 않은 경우 비교 IoC 컨테이너에 대해 알아보고 이해한다 Bean에 대해 알아보고 이해한다 스프링 삼각형 스프링을 이해하는 데는 POJO(Plain Old Java Obejct)를 기반으로 스프링 삼각형이라는 애칭을 가진 Ioc/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수다. 이번 포스팅에서는 3대 프로그래밍 중 하나인 IoC에 관해 살펴보자 IoC (Inversion of Control) : 제어의 역전 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게..
Goal 추상 팩토리에 대해 알아본다 객체 의존성에 대해 고찰 해보기 샘플 코드를 통한 추상 팩토리를 이해한다 추상 팩토리 패턴(Abstact Factory Pattern) 추상 팩토리 패턴은 상세화된 서브 클래스를 정의하지 않고도(= 구상 클래스에 의존하지 않고도) 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다. 이 인터페이스를 사용하면 코드와 제품을 생산하는 팩토리를 분리할 수 있다. 추상 팩토리 패턴은 팩토리 메서드 패턴을 좀 더 캡슐화한 방식이라고 볼 수가 있다. 왜 or 언제 추상 팩토리 패턴을 사용하는가? 객체가 생성되거나 구성, 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때 여러 제품군 중 하나를 선택해서 시스템을 설정해야 하고 한 번 구성..
Goal 어댑터 패턴이란 무엇인지 알아보고 이해한다 어댑터 패턴을 사용한 코드를 이해한다 객체 어댑터와 클래스 어댑터를 이해한다 어댑터 패턴 (Adapter Pattern) 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있다. => 어댑터는 한 객체의 인터페이스를 구현하고 다른 객체를 매핑한다. 언제 어댑터 패턴을 사용해야 할까? 새로운 클래스의 인터페이스가 기존 코드를 만들 때 사용했던 인터페이스와 다를 때 사용한다. 적용 예시 기존의 코드 Duck 인터페이스와 그를 확장한 MaralldDuck가 있다고 하자 public interface Duck { public void quack(); public voi..
Goal Singleton이 무엇인지 이해한다 Singleton을 생성하는 방법에 대해 알아보고 이해한다 Singleton Pattern 싱글턴 패턴이란 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 프로그램 시작부터 종료 시까지 어떤 클래스의 인스턴스가 메모리 상에 단 하나만 존재할 수 있게 하고 이 인스턴스에 대해 어디에서나 접근할 수 있도록 하는 패턴이다. 왜 싱글턴 패턴을 사용할까? 예로, 로깅을 찍는 객체, 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 인스턴스를 여러개 만들게 되면 불필요한 자원을 사용하게 되며 또 프로그램이 예상치 못한 결과를 낳을 수 있다. 결과에 일관성이 없어질 가능성이 있다 한정된 리소스에서 메모리를 사용할 때 사용한다 => 메모리를 많이 사용하면 안될 때 ..
abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드란 선언부는 있지만 구현부가 없는 메서드를 말한다. 추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스여야 한다. public class Driver2 { public static void main(String[] args){ Animal[] animals = new Animal[5]; animals[0] = new Dog(); animals[1] = new Cat(); animals[2] = new Cow(); animals[3] = new Bird(); animals[4] = new Dolphin(); for(int i=0; i new 사용 불가 추상 클래스는 하위 클래스에게 메서드의 구현을 강제한다. 오버라이딩 강제 추상 메..
객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕어빵? 금형기계 붕어빵틀 = new 금형기계(); 붕어빵틀은 붕어빵을 만드는 팩터리 클래스와 객체를 구분하는 간단한 방법 - 나이 물어보기 사람의 나이는 몇살인가 -> 클래스 김연아의 나이는 몇살인가 -> 객체 뽀로로의 나이는 몇살인가 -> 객체 펭귄의 나이는 몇살인가 -> 클래스 클래스는 분류에 대한 개념이지 실체가 아니다! 클래스 : 객체 = 펭귄 : 뽀로로 = 사람: 김연아 추상화 : 모델링 여러가지 사물이나 개념에서..
dev_rosieposie
'객체지향' 태그의 글 목록