본문 바로가기

Java

(65)
[Spring Boot] Auto Configuration 만들기 1. Spring-Boot-AutoConfigure vs Spring-Boot-Starter XXX-Spring-Boot-Autoconfigure 모듈 : 자동 설정 XXX-Spring-Boot-Starter 모듈 : 필요한 의존성 정의(pom.xml이 중요) 하나로 만들고 싶으면 Starter로 만들면 됨 2. pom.xml에 의존성 추가 (Project A) org.springframework.boot spring-boot-autoconfigure org.springframework.boot spring-boot-autoconfigure-processor true org.springframework.boot spring-boot-configuration-processor true 3. Human cl..
[Spring Boot] 자동 설정 (Auto Configuration) 1. @EnableAutoConfiguration @SpringBootApplication만 적어도 Application 실행 시 여러 설정들이 읽히면서 웹 Application이 뜨게 되는 이유는 EnableAutoConfiguration 때문 2. @SpringBootApplication @SpringBootApplication은 다음 세 개의 어노테이션으로 바꿀 수 있음 @SpringBootConfiguration : @Configuration과 동일(명칭만 다르다고 봐도 무방) @ComponentScan @EnableAutoConfiguration 으로 바꿀 수 있음 3. Spring Boot의 빈을 등록하는 2단계 @ComponentScan 으로 등록 @EnableAutoConfiguration..
[maven] 의존성 찾기 1. mvnrepository 접속 https://mvnrepository.com/ 2. 의존성 검색 3. 버전 선택 4. 복사해서 pom.xml에 붙여넣기
[Spring Boot] 의존성 관리 1. 의존성 관리 pom.xml내에 dependency는 버전 정보를 적지 않아도 Spring Boot가 제공하는 의존성 관리에 의해 알아서 가져옴 Spring Boot가 제공하지 않거나 특정 버전을 사용하고 싶은 경우 직접 명시해야 함 프로젝트의 구조 때문에 parent POM을 사용할 수 없는 경우에는 dependencyManagement를 사용하면 되지만 spring-boot-starter-parent 사용을 권장 # pom.xml에서 parent를 타고 들어가게 되면 # 최상단에 위치한 파일에 tomcat, thymeleaf 등의 dependency 확인 가능 2. 의존성 추가 추가해야 할 의존성을 내에 지정 좌측에 화살표 위쪽 방향이 표시된 경우 자동으로 버전관리를 해주기 때문에 버전을 명시하지..
[Spring Boot] Spring Boot 시작하기 1. Spring Boot 소개 독립적이고, 제품 수준인 Spring 기반 application을 만들 때, 빠르고 쉽게 만들 수 있음 유저가 최소한의 설정만 할 수 있도록 자주 사용되는 설정 값을 기본적으로 제공함 ex) 톰캣 Java 8 이상에서 사용 가능 2. Spring Boot 목적 Spring application 개발을 더 빠르고, 폭넓게 할 수 있음 기본적으로 자주 사용하는 설정 값을 제공하지만, 요구사항에 맞게 얼마든지 변경할 수 있음 non-functional 기능도 제공함 ex) embedded servers, security, metrics, health checks, externalized configuration 코드 제너레이션과 XML 설정을 하지 않음 3. maven Java..
[Spring] 빌드하고 실행하기(Git Bash, CMD) : Git Bash, Windows CMD에서 gradle 빌드하고 실행하기 1. 프로젝트 디렉터리로 이동 (Git Bash, CMD 동일) C:\Users\hhlin>cd hello-spring 2. gradle 실행 # Windows C:\Users\hhlin\hello-spring>./gradlew # Git Bash C:\Users\hhlin\hello-spring>gradlew # CMD # Mac C:\Users\hhlin\hello-spring>./gradlew build # 잘 안되는 경우 # ./gradlew clean 하면 build 폴더가 없어짐 # ./gradlew clean build 하면 지우고 다시 생성 C:\Users\hhlin\hello-spring>./gradlew cle..
[Spring] View 환경설정 1. Welcome Page : spring boot는 static/index.html을 올려두면 Welcome page 기능을 제공 2. 정적 페이지 : 파일을 웹서버가 웹브라우저에 그냥 던짐 Hello hello 3. Thymeleaf 템플릿 엔진 : 템플릿 엔진을 이용해 루프를 넣는 등 원하는 대로 바꿀 수 있음 스프링 부트는 FreeMarker, Groovy, Thymeleaf, Mustache 제공 안녕하세요. 손님 를 선언해줘야 thymeleaf 문법을 쓸 수 있음 th : thymeleaf 4. Controller @Controller 붙여줘야 함 @GetMapping("hello") : 웹 어플리케이션에서 /hello로 들어오면 해당 메소드 호출 package hello.hellosprin..
[Spring] Spring 라이브러리(dependencies) # gradle의 의존관계 관리 : gradle, maven 같은 build tool들은 의존관계를 관리해줌 build.gradle에 Spring Web, Thymeleaf만 추가했지만 gradle이 Spring Web, Thymeleaf와 의존관계를 가지는 라이브러리들을 모두 가져옴. 실제 External Libraries에 보면 직접 추가하지 않은 라이브러리들이 많음. Gradle Dependencies 확인해보면 thymeleaf, starter-web 아래에 의존관계를 가지는 다른 라이브러리들 확인 가능 이미 선언한 라이브러리는 중복 표시하지 않고 (*)을 통해 나타냄(더블 클릭하면 선언된 곳으로 이동 가능) spring이 tomcat을 내장한다는 것도 확인 가능(Java main 메소드 실행만 ..
[Spring] Spring 프로젝트 생성 1. Spring Initializr 접속 https://start.spring.io/ 2. 설정 3. Generate - 설정 완료 후 Generate 클릭하면 zip 파일이 다운로드 됨 - 다운로드 받은 파일 압축 풀고 IntelliJ에서 해당 프로젝트 열기 4. 프로젝트 구조 확인 4. build.gradle 확인 5. 실행 - src/main/java 밑에 HelloSpringApplication 실행 - @SpringBootApplication 어노테이션 사용시, 내장하고 있는 톰캣 웹서버를 자체적으로 띄우면서 Spring boot가 같이 올라옴 - Tomcat initilaized with port(s): 8081 (http) 확인 - localhost:8081 접속 - Whitelabel E..
[Java] 컬렉션 프레임워크 컬렉션 프레임워크데이터 군을 저장하는 클래스들을 표준화한 설계컬렉션 프레임워크에는 List, Set, Map 인터페이스가 존재한다.이중 List와 Set의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. 인터페이스 특징 List 순서가 있는 데이터의 집합. 데이터의 중복 허용. 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set 순서가 없는 데이터의 집합. 데이터의 중복 허용하지 않음. 구현 클래스 : HashSet, TreeSet Map Key와 Value의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용함. 구현 클래스 : HashMap, TreeMap, Hashtable, ..