• Resource / Validation

    들어가기에 앞서 본 포스팅은 백기선님의 인프런 강의를 기반으로 작성된 포스팅임을 알려드립니다. 처음 스프링을 배우는 입장이라 정확하지 않은 정보가 있을 수 있습니다. 댓글을 통해 알려주신다면 최대한 빨리 피드백하도록 하겠습니다! Resource 추상화 org.springframework.core.io.Resource : java.net.URL을 추상화한 클래스 추상화를 한 이유 : docs.spring.io 기존의 java.net.URL의 경우 classpath 기준의 상대경로로 읽어오는 기능 부재 ServletContext 기준의 상대경로로 읽어오는 기능 부재 구현의 복잡성과 편의성 메소드의 부족 Resource를 받아오는 상황으로 파일이나 URL에서 받아오는 경우를 생각해볼수 있다. // // Sou..

  • 스프링 IoC 컨테이너와 Bean ( 3 )

    들어가기에 앞서 본 포스팅은 백기선님의 인프런 강의를 기반으로 작성된 포스팅임을 알려드립니다. 처음 스프링을 배우는 입장이라 정확하지 않은 정보가 있을 수 있습니다. 댓글을 통해 알려주신다면 최대한 빨리 피드백하도록 하겠습니다! ApplicationContext AppicationContext는 컨테이너에서 Bean을 꺼내오는 기능말고도 다양한기능을 가지고 있습니다. Bean들의 그룹을 의미하는 Profile과 Property를 다루는 Environment Environment Spring Framework Docs Core Technologies In the preceding scenario, using @Autowired works well and provides the desired modulari..

  • 스프링 IoC 컨테이너와 Bean ( 2 )

    들어가기에 앞서 본 포스팅은 백기선님의 인프런 강의를 기반으로 작성된 포스팅임을 알려드립니다. 처음 스프링을 배우는 입장이라 정확하지 않은 정보가 있을 수 있습니다. 댓글을 통해 알려주신다면 최대한 빨리 피드백하도록 하겠습니다! Bean의 등록 Spring Boot에서 Bean은 ComponentScan을 통하여 등록됩니다. @SpringBootApplication 이라는 애노테이션 내부를 확인해보면 @ComponentScan 이라는 애노테이션이 메타애노테이션으로 달려있는 것을 확인할 수 있습니다. Spring Boot 프로젝트는 이 @SpringBootApplication이 붙어있는 클래스 이하의 경로에 있는 클래스들을 대상으로 @Component 가 붙어이는 애노테이션을 탐색하여 Bean으로 만들어주..

  • 스프링 IoC 컨테이너와 Bean ( 1 )

    들어가기에 앞서 본 포스팅은 백기선님의 인프런 강의를 기반으로 작성된 포스팅임을 알려드립니다. 처음 스프링을 배우는 입장이라 정확하지 않은 정보가 있을 수 있습니다. 댓글을 통해 알려주신다면 최대한 빨리 피드백하도록 하겠습니다! IoC ( Inversion of Control ) / DI ( Depencency Injection ) IoC ( 제어의 역전 ) 라는 말 자체는 개념적인 성격을 지닙니다. public class BookService { private BookRepository bookRepository = new BookRepository(); public Book save(Book book){ book.setCreated(new Date()); book.setBookStatus(BookSt..

  • 빌더

    이펙티브 자바 3판 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라 빌더 빌더는 인스턴스 생성 시에 제공해야할 선택적 매개변수가 많을 때 사용할 수 있는 방식입니다. 메소드를 연쇄적으로 실행하면서 파라마터 값을 받아오고, 최종적으로 build() 를 통하여 완성된 인스턴스를 반환합니다. 기존의 사용방식 ( 점층적 생성자 패턴, 자바빈즈 패턴 ) public class ComputerShop { private String CPU; private String Mainboard; private String Ram; private Long RamSize; private String Cooler; private String GraphicCard; private String Case; public Compu..