Framework & Library
-
Spring Boot - 메이븐(Maven) vs 그래들(Gradle)Framework & Library/Spring Boot 2022. 1. 30. 14:38
빌드 관리 도구 빌드 관리 도구란? 빌드 관리 도구란 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구를 말한다. 소스 코드를 컴파일, 테스트, 정적 분석 등을 하여 실행 가능한 앱으로 빌드해주는 역할을 수행한다. 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트를 관리해 주는 것은 이러한 빌드 관리 도구의 가장 큰 사용 목적이다. 자바의 대표적인 빌드 도구에는 Ant, Maven, Gradle이 존재한다. 메이븐(Maven) 메이븐(Maven)이란? 자바의 대표적인 관리 도구였던 Ant를 대체하기 위해 개발된 빌드 관리 도구이다. 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml 파일로 명시하여 관리하며, 참조한 외부 라이브러리에 ..
-
Spring Boot - 프로젝트 구조 알아보기Framework & Library/Spring Boot 2022. 1. 29. 20:51
스프링 부트의 프로젝트 구조 src/main/java 디렉터리 - 클래스, 인터페이스 등 자바 파일이 위치하는 디렉터리이다. - 스프링 부트 프로젝트를 생성하면 우리가 생성하지 않은 SpringBootStudyApplication 클래스가 포함되어 있다. - 해당 클래스는 main() 메서드 하나만 선언되어 있으며, main() 메서드는 SpringApplication.run()을 호출해서 웹 애플리케이션을 실행하는 역할을 한다. 애너테이션 설명 @EnableAutoConfiguration 해당 애너테이션에 의해 스프링 부트 개발에 필요한 몇 가지 필수적인 설정들이 자동으로 완료된다. @ComponentScan 해당 애너테이션에 의해 자동으로 컴포넌트 클래스를 검색하고 빈으로 등록한다. @Configur..
-
Spring Boot - JPA의 영속성 컨텍스트Framework & Library/Spring Boot 2021. 12. 2. 13:36
영속성 컨텍스트의 정의 개요 Spring Boot를 사용하고 있는 요즘에는 Spring 프레임워크에 맞춰져 있는 Spring Data JPA를 사용한다. 그런데, Spring Data JPA를 사용하면서 객체에 있는 데이터들이 스스로 변화를 감지하고, 객체의 데이터가 자동으로 변경, 생성, 삭제가 이루어지는데, 이 과정이 어떻게 가능한지 영속성 컨텍스트를 통해 알아보고자 한다. 영속성 컨텍스트란? 영속성 컨텍스트란, Entity를 영구적으로 저장하는 환경을 말한다. Spring으로 JDBC를 이용하여 개발을 해본 사람들은 DB에 있는 데이터가 어떤 식으로 읽히고 쓰이는 건지 이해할 수 있을 것이다. 간단하게 요약하자면, 다음과 같다. Connection 생성 - Connection 연결 - Stateme..
-
Spring Boot - JPAFramework & Library/Spring Boot 2021. 12. 1. 14:37
JPA의 정의 JPA란? JPA는 Java Persistence API의 약자로 Java에서 관계형 DB를 사용하기 위한 양식을 정의한 인터페이스이다. 말 그대로 인터페이스이기 때문에, 어떤 코드가 구현되어 있는 것은 아니다. 단지, Java라는 객체 지행 프로그래밍 언어에서 관계형 DB를 객체 지향적으로 설계하기 위한 모범 사례를 JPA라고 하는 것이다. 즉, Java 진영에서 ORM 기술 표준으로 애플리케이션과 JDBC 사이에서 동작하는 것이다. 여기서 ORM이란, Object Relationship Mapper의 약자이다. JDBC나 Spring JDBC, iBatis 같은 경우 DB 처리를 위해 로직을 별도로 작성하고, 이를 SQL 코드를 통해 질의하였는데, ORM은 SQL 코드를 작성하지 않고,..
-
Spring Boot - Transaction(트랜잭션)Framework & Library/Spring Boot 2021. 11. 29. 23:03
트랜잭션의 정의 트랜잭션이란? 돈을 송금하는 과정을 예로 들어 트랜잭션의 개념을 알아보겠다. 돈을 송금하는 과정은 아래와 같다. 1. 송금하고자 하는 계좌와 금액을 입력한다. 2. 이체하는 계좌에서 돈이 출금된다. 3. 이체받는 계좌에 돈이 입금된다. 4. 거래가 정상적으로 완료된다. 거래가 정상적으로 처리되면 문제가 없지만, 중간에 문제가 발생할 수 있다. 예를 들어, 2번과 3번 과정 사이에서 문제가 발생하면, 돈은 출금되었는데 이체받는 계좌에는 돈이 들어오지 않게 된다. 따라서, 돈을 송금하는 과정에서 문제가 발생하면 이와 관련된 모든 과정이 취소되고 원래 상태로 되돌아와야 한다. 트랜잭션이란, 데이터베이스의 상태를 변화시킬 때 더 이상 분리할 수 없는 작업의 단위를 의미한다. 위의 예를 볼 때 돈..
-
Spring Boot - FilterFramework & Library/Spring Boot 2021. 11. 28. 15:12
Filter의 정의 Filter란? - 필터는 스프링의 독자적인 기능이 아닌 자바 서블릿에서 제공하는 기능이다. - 스프링 프레임워크에서 필터를 통해 인증 등 다양한 작업을 수행할 수 있다. Filter의 동작 - 위 사진은 스프링 프레임워크에서 요청에 대한 생명 주기를 나타낸 그림이다. - 스프링 프레임워크는 들어온 요청이 DispatcherServlet에 의해 컨트롤러에 매핑된다. - 필터는 요청이 DispatcherServlet에 의해 다루어지기 전, 후에 동작한다. - 또한, 필터는 위 사진과 같이 필터 체인을 통해서 여러 필터가 연쇄적으로 동작하게 할 수 있다. Filter의 용도 - 필터는 주로 요청에 대한 인증, 권한 체크 등을 하는 데 사용된다. - 구체적으로, 들어온 요청이 Dispatc..