Java

시작하기 전 ... 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 자바의 자료형에 대해 알아본다 기본 자료형에 대해 알아본다 참조 자료형에 대해 알아본다 String 클래스에 대해 알아본다 자바의 자료형 타입(Data type)이란 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 것이다. 자바에서 타입은 크게 기본형 타입과 참조형 타입이 있다. 기본 자료형이란? 기본 자료형은 8개로 우리가 추가로 만들 수 없다 정수형, 소수형, 논리 타입이 존재한다 반드시 기본값을 지정해야 한다 지역변수는 꼭 지정해야하며, 인스턴스, 클래스, 매개 변수는 지정하지 않아도 컴파일 되지 않지만 권장 x null이 허용 x 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. 각종 연산자들은 대부분 기본 자료형을 위하..
Goal 다형성에 대해 알아본다 오버라이딩에 대해 알아본다 오버로딩에 대해 알아본다 오버라이딩과 오버로딩이 동시에 발생한 경우는? 오버라이딩과 오버로딩을 사용한 코드 예시를 살펴본다. 객체지향의 특성 참고 [객체지향의 원리와 이해 3] 자바와 객체 지향 객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕 dev-rosiepoise.tistory.com 다형성(Polymorphism)이란? 객체지향의 4대 특성중 하나로 사용편의성을 의미하며, 하나의 객체가 여러가지 타입을 ..
Goal 요구사항에 부합하는 API desgin을 해보자 API desgin란? 1. 심플하고 직관적으로 만들기 REST API를 URL만 보고도, 직관적으로 이해할 수 있어야 한다 /boards /boards/1234 2. 동사보다 명사 사용하기 ( http method를 사용해서 구분) 행위를 URL에 사용하지 않기 ex. getBoardList, registBoard 리소스 POST GET PUT DELETE create read update delete /board 새로운 board 등록 boards 목록을 리턴 board 정보를 업데이트 board 정보를 삭제 3.단어를 hyphen(-)으로 구분하기 (underscores _ , camel 표기법 x) ex. example.com/boardUs..
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 스프링 삼각형에 대해 알아본다 스프링이 구현한 PSA에 대해 알아보자 샘플코드를 통해 PSA를 이해해본다 스프링 삼각형 스프링을 이해하는 데는 POJO(Plain Old Java Obejct)를 기반으로 스프링 삼각형이라는 애칭을 가진 Ioc/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수다. 이번 포스팅에서는 3대 프로그래밍 중 하나인 PSA에 관해 살펴보자 PSA (Portable Service Abstraction) 이식 가능한 서비스 추상화 => 잘 만든 인터페이스 PSA 적용 전 나의 코드 확장성이 좋지못한 코드 또는 기술에 특화되어 있는 코드 문제 확장성이 좋지못한 코드 => 테스트가 어렵다 기술에 특화되어 있는 코드 => 어떠한 기술을 바꿀 때마다 ..
Goal 추상 팩토리에 대해 알아본다 객체 의존성에 대해 고찰 해보기 샘플 코드를 통한 추상 팩토리를 이해한다 추상 팩토리 패턴(Abstact Factory Pattern) 추상 팩토리 패턴은 상세화된 서브 클래스를 정의하지 않고도(= 구상 클래스에 의존하지 않고도) 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다. 이 인터페이스를 사용하면 코드와 제품을 생산하는 팩토리를 분리할 수 있다. 추상 팩토리 패턴은 팩토리 메서드 패턴을 좀 더 캡슐화한 방식이라고 볼 수가 있다. 왜 or 언제 추상 팩토리 패턴을 사용하는가? 객체가 생성되거나 구성, 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때 여러 제품군 중 하나를 선택해서 시스템을 설정해야 하고 한 번 구성..
Goal 팩토리 패턴에 대해 알아본다 팩토리 메소드에 대해 알아본다 샘플 코드를 통한 팩토리 메소드를 이해한다 팩토리 패턴(Factory Pattern) 객체 지향 디자인 패턴의 기본 원칙은 확장에 있어서는 열려 있어야 하며, 수정에 있어서는 닫혀 있어야 한다는 것이다. (OCP -개방폐쇄) 객체의 생성을 담당하는 클래스를 한 곳에서 관리하여 결합도를 줄이기 위하여 팩토리 패턴이 출현했다. 팩토리 메소드 패턴(Factory Method Pattern) 팩토리 메소드 패턴에서는 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정함으로써 객체 생성을 캡슐화하는 패턴이다. 즉, 어떤 클래스의 인스턴스를 만들지를 결정해서가 아니라, 생산자 클래스가 실제 생산될 제..
Goal 간단한 팩토리에 대해 알아본다 샘플 코드를 통한 객체의 캡슐화를 간단한 팩토리로 변경해본다 다양한 팩토리 만들어보기 new 연산자에 대한 고찰 간단한 팩토리 (Simple Factory) 디자인 패턴이라기 보다는 프로그래밍에서 자주쓰이는 관용구에 가깝다. 왜 or 언제 간단한 팩토리 사용하는가? 객체 생성을 처리하는 부분을 Factory라고 부르며, 해당 부분을 캡슐화하여 분리할 수 있기 때문에 코드 가독성이나 관리 측면에서 용이하다 다이어그램 최첨단 피자 코드 만들기 as - is 피자 주문 코드 public Pizza orderPizza(String type) { Pizza pizza = new Pizza(); // 바뀌는 코드 if(type.equals("cheese")){ pizza = ..
dev_rosieposie
'Java' 태그의 글 목록 (2 Page)