본문 바로가기

Spring Boot

(7)
[SpringBoot] 코드 다이어트를 위한 Lombok 프로젝트 롬복( Lombok )은 자바 컴파일 시점에 특정 어노테이션에 해당하는 코드를 추가 / 변경하는 라이브러리이다. 롬복을 이용하여 보일러플레이트 코드( boileplate code )의 절감을 도모한다. ※ 보일러플레이트 코드란? 프로그래밍 언어에 사용구 코드를지 지칭하는 말로, 예를 들어 getter, setter 메서드가 있다. 이런 메서드는 꼭 필요하지만 코드의 길이가 길어지게 한다는 단점이 있다. STEP#01. IDE( Eclipse, STS )에서 롬복 설정하기 https://projectlombok.org/download 에 접속하여 lombok.jar 파일을 다운받자. 다음으로 PowerShell을 관리자 권한으로 실행하고 다운 받은 lombok.jar가 있는 경로로 이동하여 lombok.j..
[SpringBoot] 메인 어플리케이션 클래스 메인 어플리케이션 클래스는 스프링 부트의 어플리케이션을 실행하는 메서드를 호출한다. 자바 어플리케이션 엔트리 포인트인 main 메서드 안에서 SpringApplication 클래스의 run 메서드를 호출하면 내장된 톰캣이 실행되고 Spring IocC 컨테이너가 초기화 된다. 메인 어플리케이션 클래스는 디폴트 패키지가 아닌 루트 패키지에 배치할 것을 권장한다. 자동 구성에 의해 @EnableAutoConfiguration이 부여된 클래스의 패키지를 기준으로 동작하기 때문이다. ※ 전형적인 디렉터리 구성 루트 패키지에 메인 어플리케이션 클래스를 배치함으로써 @ComponentScan의 basePackage 속성을 명시적으로 지정할 필요는 없지만. 아래 예제처럼 scanBasePackageClasses 속성..
[SpringBoot] 구성 클래스 스프링 부트는 자바 기반으로 구성한느 것을 선호한다. 아래 예제와 같이 XML 파일에 기존처럼 작성할 수도 있지만, 스프링 부트는 @Configuration 어노테이션을 부여한 클래스로 구성하는 것을 권장한다. 구성 클래스는 꼭 하나의 클래스로 만들 필요는 없다. @Import 어노테이션을 사용하여 다른 구성을 로드할 수 있다. 아니면 @Configuration 어노테이션을 각 구성 클래스에 부여해 컴포넌트 스캔 기능으로 구성을 자동 설정하는 방법도 있다. 스프링 부트에서 @Configuration 어노테이션을 사용하여 구성을 정의하면 아래 예제처럼된다. 나중에 언급할 자동 구성 기능으로 정적 컨텐츠를 배포하는 설정은 자동으로 이루어 지므로 설정을 변경할 필요가 없다면 작성하지 않는다. 컴포넌트 메인 어..
[SpringBoot] 빌드도구( Maven, Gradle ) 스프링 부트는 일반적인 자바 라이브러리와 마찬가지로 클래스 경로에 Spring-boot-*.jar를 포함하여 이용할 수도 있지만. 의존관계 관리가 가능한 빌드 도구를 이용하는것이 좋다. 자바 어플리케이션 빌드 도구는 여러 가지가 있다. 스프링 부트는 메이븐( Maven ) 또는 그레이들( Gradle )의 사용을 권장한다. 물론 아파치 앤트( Apache Ant )와 같은 다른 빌드 도구를 사용할 수도 있지만. 메이븐이나 그레이들처럼 광범위한 지원을 받을 수 없다. STEP#01. 메이븐( Maven ) 빌드 도구로 메이븐을 이용하려면 spring-boot-stater-parent 프로젝트를 부모 프로젝트로 상속한다. 그러면 플러인의 디폴트 설정, 의존 라이브러리의 버전 정의, 자바 컴파일러 준수 레벨,..
[SpringBoot] 스타터( Starter ) 스타터는 스프링 붙의 구성 요소중 하나이며 일련의 의존관계를 세트로 정리하는 모듈이다. 스타터를 이용하면 필요한 라이브러리를 준비하거나 각각의 라이브러리 버전을 선정하는 번거로운 작업에서 해방된다. 예를 들어 spring-boot-start-web 이라는 하아늬 의존관계를 추가하기만 하면 스프링 MVC 톰캣등 웹 어플리케이션에 필요한 라이브러리가 함께 추가된다. 아래의 스타터는 자주 사용하는 예다. spring-boot-starter-web : 스프링 MVC, 톰캣이 의존관계에 추가된다. spring-boot-starter-jdbc : 스프링 JDBC, 톰캣 JDBC 커넥션 풀( Tomcat JDBC Connection Pool )이 의존관계에 추가된다. 이 외에도 어떤스타터가 존재하는 지알고 싶다면 스..
[SpringBoot] Spring Boot의 기초 STEP#01. 스프링 부트란? 스프링 부트는 프로덕션 환경에서 실행할 수 있는 어플리케이션 개발을 쉽고 빠르게 할 수 있다. ( 서드파티 라이브러리나 스프링 플랫폼 설정이 처음부터 들어 있어 최소한의 작업으로 개발을 시작할 수 있다. ) 설정을 변경하지 않는다면 내장된 컨테이너로 톰캣( Tomcat )을 사용해 미리 준비된 환경에 따라 동작한다. 스프링 부트를 사용하여 어플리케이션을 개발하면 명령줄로 실행 가능한 하나의 JAR파일을 만들 수 있다. 스프링 부트를 사용하여 어플리케잇녀을 개발하면 명령줄로 실행 가능한 하나의 JAR 파일을 만들 수 있다. 명령줄에서 JAVA -jar 명령의 인수로 작성한 JAR 파일을 지정해 실행하면 내장된 톰캣이 실행된 이후에, 어플리케이션이 실행된다. 즉, 개발자는 톰..
[SpringBoot] 환경 설정 파일 어플리케이션을 실행하면 다음 위치에 있는 application.properties 설정 파일을 읽어들인다. ① 현재 디렉토리의 /config 서브 디렉토리 ② 현재 디렉토리 ③ 클래스 경로의 /config 패키지 ④ 클래스 경로의 루트 위에서부터 순서대로 우선 순위가 높게 설정되어 있어 여러 설정 파일이 존재하는 경우에는 순위가 우선인 설정값으로 덮어 쓰이게 된다. 설정 파일은 프로파일( profile )이라는 단위로 별도의 설정을 가진다. 개발 환경, 프로덕션 환경 등 환경별로 설정을 나누고 싶은 경우에는 application-{ profile }.properties의 명명 규칙으로 설정파일을 만든다. 예를 들어 프로덕션 환경경의 프로파일명을 production으로 한 경우, application-pr..