Gradle의 라이브러리 관리 Gradle 같은 빌드 툴은 의존관계를 관리해준다. 즉, 하나의 라이브러리를 사용할 때 필요한 다른 라이브러리를 같이 설치해준다. IntelliJ 우측 상단에 Gradle 탭을 누르면 라이브러리 간의 의존관계를 한눈에 볼 수 있다. spring-boot-starter 스프링 부트에 관련된 모든 라이브러리를 포함...
다음과 같이 사용하면 된다.
스프링 부트 빌드 및 실행 cmd창을 열어 프로젝트 경로에 들어가 gradlew build를 실행한다. 하위에 build파일이 생기면 성공 build/libs로 이동해서 .jar파일이 생성된것을 확인하고 java -jar 파일명.jar을 하면 실행된다. gradlew clean을 하면 build 폴더가 사라진다.
정적 컨텐츠 정적 컨텐츠는 서버에서 html파일을 그대로 클라이언트로 전달하는 방식이다. static 폴더안에 원하는 html파일을 만들면 그대로 반영된다. 스프링은 먼저 url을 분석해 해당 관련 컨트롤러가 있는지 찾고 없으면 그때 static 컨텐츠를
Test 케이스 @Test 어노테이션은 해당 메서드가 테스트 메서드가 되어 독립적으로 실행될 수 있게 해준다. Test 코드는 서로간의 실행 순서가 없다. 즉, 서로 의존적으로 작성하면 안된다. @AfterEach 어노테이션은 Test 메서드가 실행된 후
스프링 빈 등록 방법1 : 컴포넌트 스캔 의존 관계 : 컨트롤러가 서비스를 통해서 동작한다. 즉, 컨트롤러가 생성될때 컨트롤러에 서비스가 할당된다. @Controller 어노테이션이 있으면 해당 클래스의 객체를 생성해서 컨트롤러 로써 스프링 컨테이너에 보관한다. @Autowired 어노테이션은 해당 생성자가 호출될 때 필요한 매개변수를 스프링 ...
root 호출은 @GetMapping("/") 어노테이션이 static - index.html 보다 우선순위에 위치한다. GET : URL을 그대로 쳐서 접속하는 방식, 조회할때 사용, @GetMapping 어노테이션 사용 POST : 데이터를 전달할때
스프링 통합 테스트 @Test 어노테이션은 스프링과 관련 없는 작업코드만을 테스트할 때 사용함. DB 연결 정보같이 스프링 부트와 연동할 필요가 있는 코드의 경우 @SpringBootTest와 @Transactional 어노테이션을 test용 클래스에 붙인다. 통합 테스트를 할 경우 service나 repository는 직접 객체를 생성하는게 ...
H2 데이터베이스 실행 방법 : h2 - bin - h2w.bat 파일을 실행시킨다. JDBC URL에 파일 명을 적어 접근하면 애플리케이션과 웹 콘솔이 파일 충돌을 일으킬 수 있어 소켓을 통해 접근해야 한다. ex) jdbc:h2:~/test -> jdbc:
Jpa는 EntityManager를 사용한다. insert query는 em.persist로 한다. select query @Id 어노테이션이 붙은 변수로 select 할때는 em.find(클래스 명, 변수)로 한다. 그렇지 않은 변수로 select 하는 경우 em.createQuery("query문", 클래스)로 한다. ...
스프링 데이터 JPA는 인터페이스 만으로도 Repository를 구현할 수 있다. 인터페이스가 JpaRepository를 extends하면 구현체를 자동으로 만들고 스프링 빈에 자동으로 등록한다. JpaRepository는 findAll, save, findById 같은 다양한 기본적인 CRUD가 선언되어있는 공통 인터페이스이다. 그러나 ...
AOP가 필요한 상황 실행시간 측정은 핵심 관심 사항이 아니다. 그러나 핵심 로직에 섞여있어 유지보수를 어렵게 한다. 시간 측정 로직은 공통의 관심 사항이지만 별도의 공통 로직으로 만들기 매우 어렵다. 그래서 하나씩 다 일일이 변경해야 한다. 위의 경우같은 공통 관심 사항을 수행할 일이 있을때 AOP를 사용한다. AOP 적용 AOP(As...