본문 바로가기

노력/Spring Boot

(5)
스프링 프레임워크 핵심 기술 - (3) Environment (Profile) ApplicationContext extends EnvironmentCapable getEnvironment() 프로파일 빈들의 묶음 (그룹) Environment의 역할은 활성화할 프로파일 확인 및 설정 프로파일 정의 클래스에 정의 @Configuration @Profile("test") @Component @Profile("test") @Component @Profile("!test") : test 프로파일이 아닌 경우 !(not), &(and), |(or) 등의 표현식도 추가가 가능. 메소드에 정의 @Bean @Profile("test") 프로파일 설정하기 VMOption : -Dspring.profile.active="test, A, B,..." @Activ..
스프링 프레임워크 핵심 기술 - (2) @Autowire 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아 주입한다. @Autowired required: 기본값은 true (Autowired 주입하는 빈에 문제가 있는 경우 애플리케이션 구동 실패) 사용할 수 있는 위치 생성자 (스프링 4.3부터는 생략도 가능) 세터 필드 경우의 수 (실패, 성공) 해당 타입의 빈이 없는 경우 해당 타입의 빈이 한 개인 경우 해당 타입의 빈이 여러 개인 경우 (빈 이름으로 시도 - 같은 이름 찾으면 해당 빈 사용, 같은 이름 못 찾으면 실패) 같은 이름으로 빈 주입을 사용하는 경우는 타입이 여러개 있는 것을 알고 있는 개발자만 이해하고 사용할 수 있을 것으로 보임. 새로운 개발자가 빈 주입을 할 때 혼란이 있을 것 같음. // 주입할 때 @Autowired ..
스프링 프레임워크 핵심 기술 - (1) 인프런, 스프링 프레임워크 핵심 기술 강좌 (백기선님) IoC(Inversion of Control), AOP(Aspect Oriented Programming) 처럼 추상 API에 다루는 강좌. 스프링의 역사 JavaEE와는 호환 관계이며 적대적 관계에 있는 것이 아니다. 최근까지는 서블릿 기반 애플리케이션을 만들 때 사용, 하지만 Spring 5부터는 WebFlux 지원으로 서블릿 기반이 아닌 서버 애플리케이션도 개발할 수 있게 됨. 디자인 철학 모든 선택은 개발자의 몫. 다양한 관점을 지향. 하위 호환선을 지킴. API를 신중하게 설계. 높은 수준의 코드 지향. 1부: 스프링 IoC 컨테이너와 빈 @Service public class SomeService { private SomeRepositor..
IntelliJ에서의 Spring boot 테스트 프로젝트 - (1) 처음으로 IntelliJ에서 프로젝트를 진행해보려고 토이 프로젝트를 진행 중입니다. Index를 찾아가는 컨트롤러만 추가하고 Run을 실행하니 오류가 발생하고 있습니다. 생각보다 단순한 오류였는데 경로 문제였습니다. USB에 프로젝트를 저장하고 있어서 경로 지정 후 사용했었는데요. Run이 됐다가 안됐다가 하는 오류가 있어서 C드라이브의 Document 폴더로 재지정하였습니다. ClassNotFoundException 오류는 없었습니다. 프론트엔드 프레임워크도 사용해보고 싶어서 Vue.js도 함께 세팅해 보았습니다. https://amanokaze.github.io/blog/Vuejs-Setting-with-SB/ Spring Boot 연동을 위한 Vue.js 개발환경 세팅 Various IT-based..
Spring Boot와 Spring의 디렉터리 구조 차이점 그리고 Entity 제가 완성해 본 프로젝트들은 모두 Spring으로 개발했었습니다. Spring은 각 기능마다 VO, DAO, Proc, Controller 그리고 각각을 인터페이스로 만들어서 제작했었습니다. Spring Boot를 사용하려고 여러 예제들을 확인해보니 사람들마다 사용하는 구조가 크게 두 부류로 나뉘는 것 같았습니다. 대부분의 Spring Boot 프로젝트가 위의 두 부류로 나눌 수 있었습니다. 그리고 기존에 사용하던 파일명과는 다르게 분류돼 있는 것을 확인할 수 있습니다. 위에서 언급했던 대로 기존에는 VO, DAO, Proc, Controller를 사용했다면, 이제는 VO를 붙이지 않은 Model 그리고 Repository, Service, Controller로 나뉩니다. 디렉터리 구조는 사용해보지 않은..