반응형 Book/스프링부트 핵심가이드36 스프링부트 프로젝트 생성(feat. MariaDB) 데이터베이스 연동 스프링부트 애플리케이션을 연동하여 프로젝트를 생성하는 것을 알아보겠습니다. 프로젝트 생성 groupId(그룹) : com.springboot name(이름), artifactId(아티팩트) : jpa Developer Tools : Lombok, Spring Configuration Processor Web : Spring Web SQL : Spring Data JPA, MariaDB Server 추가 내용 Swagger 의존성 pom.xml(Maven)에 추가 소스코드 config/SwaggerConfiguration.java @Configuration @EnableSwagger2 public class SwaggerConfiguration { @Bean public Docket ap.. Book/스프링부트 핵심가이드 2023. 11. 2. Spring Data JPA와 Entity의 설명 Spring Data JPA JPA 사용을 도와주는 스프링 하위 프로젝트 중 하나인 Spring Data JPA에 대해서 알아보겠습니다. Spring Data JPA Spring Data JPA는 JPA를 편리하게 사용할 수 있도록 지원하는 스프링 하위 프로젝트 중 하나이다. CRUD 처리에 필요한 인터페이스를 제공하며, 하이버테이트의 엔티티메니저(EntityManager)를 직접 다루지 않는다. 리포지토리(Repository)를 정의해 사용함으로써 스프링이 적합한 쿼리를 동적으로 생성하는 방식으로 DB를 조작한다. 이를 통해, 하이버네이트에서 자주 사용되는 기능을 더 쉽게 사용할 수 있게 구현한 라이브러리이다. 영속성 컨텍스트(Persistence Context) 애플리케이션과 데이터베이스 사이에서 엔.. Book/스프링부트 핵심가이드 2023. 11. 1. ORM과 JPA의 개념 이해 ORM과 JPA 객체와 데이터베이스의 테이블을 매핑하는 방법 중 하나이 ORM과 ORM의 종류 중 하나인 JPA에 대해서 알아보겠습니다. ORM(Object Relational Mapping) 자바와 같은 객체 지향 언어에서 의미하는 객체와 RDB(Relational Database)의 테이블을 자동으로 매핑하는 방법이다. 클래스는 데이터베이스의 테이블과 매핑하기 위해 만들어진 것이 아니기에 불일치가 존재할 수 밖에 없다. ORM은 해당 2개의 불일치와 제약 사항을 해결하는 방법이다. ORM의 장점 1. ORM을 사용하면서 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다. 쿼리문을 작성하는 양이 현저히 줄어 개발 비용이 줄어든다. 객체 지향적으로 데이터베이스에 접근할 수 있기 때문에 코드의 가독성을 높.. Book/스프링부트 핵심가이드 2023. 11. 1. 로깅 라이브러리 - Logback 로그를 등록하는 라이브러리인 Logback에 대해서 알아보겠습니다. 로깅(logging) 애플리케이션이 동작하는 동안 시스템의 상태나 동작 정보를 시간순으로 기록하는 것을 의미한다. 개발 영역 중 '비기능 요구사항' 에 속한다. (사용자나 고객에게 필요한 기능은 아니라는 의미) 디버깅하거나 개발 이후 발생한 문제를 해결할 때, 원인을 분석하는 데 꼭 필요한 요소이다. Logback 자바 진영에서 가장 많이 사용되는 로깅 프레임워크는 'logback' 입니다. log4j 이후에 출시된 로깅프레임워크로써 slf4j를 기반으로 구현되었으며 과거에 사용되던 log4j에 비해 월등한 성능을 자랑한다. 스프링부트의 spring-boot-starter-web 라이브러리 내부에 내장되어있어 별도의 의존성을 추가화지 않.. Book/스프링부트 핵심가이드 2023. 10. 26. Swagger - REST API 명세 문서화 명세 문서화 명세 : 해당 API가 어떤 로직을 수행하는지 설명하고 이 로직을 수행하기 위해 어떤 값을 요청하며 이에 따른 응답값으로는 무엇을 받을 수 있는 지 정리한 자료이다. API는 개발 과정에서 계속 변경되므로 명세 문서도 주기적인 업데이트가 필요하다. Swagger 명세 작업은 번거롭고 시간 또한, 오래 걸리기 때문에 이 같은 문제를 해결하기 위해서 사용하는 오픈소스 프로젝트이다. Maven 의존성 추가 pom.xml 파일에 있는 안에 해당 문구를 추가해준다. io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 gradle 의존성 추가 build.gradle 파일에 있는 dependencies에 해당 문구를 .. Book/스프링부트 핵심가이드 2023. 10. 26. DELETE 메서드 구현 방법(feat. @DeleteMapping) API를 작성하는 다양한 방법 HTTP 메서드에 해당하는 API를 개발하고 그 과정에서 필요한 내용들 중 하나인 DELETE 메서드의 구현에 관하여 자세하게 알아보겠습니다. DELELE API 웹 애플리케이션 서버를 거쳐 데이터베이스 등의 저장소에 있는 리소스를 삭제할 때 사용한다. 서버에서 클라이언트로부터 리소스를 식별할 수 있는 값을 받아 데이터베이스나 캐시에 있는 리소스를 조회하고 삭제하는 역할을 한다. 컨트롤러를 통해 값을 받는 단계에서는 간단한 값을 받기 때문에, GET 메서드와 같이 URI에 값을 넣어 요청을 받는 형식으로 구현된다. @PathVariable을 이용한 DELETE 메서드 구현 @PathVariable을 이용하면 URI에 포함된 값을 받아 로직을 처리할 수 있다. @RestCon.. Book/스프링부트 핵심가이드 2023. 10. 25. PUT 메서드 구현 방법(feat. @PutMapping) API를 작성하는 다양한 방법 HTTP 메서드에 해당하는 API를 개발하고 그 과정에서 필요한 내용들 중 하나인 PUT 메서드의 구현에 관하여 자세하게 알아보겠습니다. PUT API 웹 애플리케이션 서버를 통해 데이터베이스 같은 저장소에 존재하는 리소스 값을 업데이트하는데 사용한다. POST API와 비교하면 요청을 받아 실제 데이터베이스에 반영하는 과정(서비스 로직)에서 차이가 있지만 컨트롤러 클래스를 구현하는 방법은 POST API와 거의 동일하다. 리소스를 서버에 전달하기 위해 HTTP Body를 활용해야한다. @RequestBody를 활용한 PUT 메서드 구현 PUT API는 POST 메서드와 마찬가지로 값을 HTTP Body에 담아 전달한다. 서버에서는 이 값을 받기 위해 @RequestBody.. Book/스프링부트 핵심가이드 2023. 10. 25. POST 메서드 구현 방법(feat. @PostMapping) API를 작성하는 다양한 방법 HTTP 메서드에 해당하는 API를 개발하고 그 과정에서 필요한 내용들 중 하나인 POST 메서드의 구현에 관하여 자세하게 알아보겠습니다. POST API 웹 애플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장할 때 사용되는 API이다. GET API와 POST API의 차이점 GET : URL의 경로나 파라미터에 변수를 넣어 요청을 보낸다. POST : 저장하고자 하는 리소스의 값을 HTTP 바디(Body)에 담아 서버에 전달한다. URI가 GET API에 비해 간단하다. @RestController @RequestMapping("/sample") public class SampleController{ } @RequestMapping으로 구현하기 메서드를 정의할 .. Book/스프링부트 핵심가이드 2023. 10. 25. 스프링부트 생성 (Feat. Spring Initializr) 스프링 프로젝트 생성 스프링부트 프로젝트를 쉽게 만드는 방법인 인텔리제이(Intellj) IDEA 에서 프로젝트를 생성하는 방법과 Spring Initializr를 이용하여 생성하는 방법을 알아보겠습니다. 인텔리제이 IDEA에서 프로젝트 생성하기 1. 인텔리제이 IDEA -> [New Project] 생성 이름(Name) : 프로젝트 이름 설정 위치(Location) : 프로젝트를 생성할 위치를 설정한다. 언어(Language) : JVM 상에서 동작하는 언어를 선택 타입(Type) : 빌드 툴 선택, Maven/Gradle을 선택한다. 그룹(Group) : 해당 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정한다. 아티팩트(Aritifact) : 세부 프로젝트를 식별하는 정보를 기입한다. (프로젝.. Book/스프링부트 핵심가이드 2023. 10. 25. GET 메서드 구현 방법(feat. @GetMapping) API를 작성하는 다양한 방법 HTTP 메서드에 해당하는 API를 개발하고 그 과정에서 필요한 내용들 중 하나인 GET 메서드의 구현에 관하여 자세하게 알아보겠습니다. @RequestMapping @RestController @RequestMapping("/Sample") public class SampleController { } 클래스 수준에서 @RequestMapping을 설정하면 내부에 선언한 메서드의 URL 리소스 앞에 @RequestMapping의 값이 공통으로 추가된다. @RequestMapping 어노테이션을 별다른 설정 없이 선언하면 HTTP의 모든 요청을 받는다. GET API 웹 애플리케이션 서버에서 값을 가져올 때 사용하는 API이다. @RequestMapping 어노테이션의 met.. Book/스프링부트 핵심가이드 2023. 10. 25. [Spring] 스프링부트 개발 기초 지식 스프링부트 개발 지식 스프링부트 웹 애플리케이션 개발 프로젝트를 진행 할 때, 도움이 되는 개발 배경지식을 알아보겠습니다. 마이크로서비스 아키텍처(MSA) Microservice Architecture 서비스 규모를 작게 나누어 구성한 아키텍처를 뜻한다. ex) 포털사이트 : 어플리케이션 하나에 여러 기능을 삽입하여 블로그, 카페, 메일 등을 기능별로 나눠서 개발한다. 서버 간 통신 하나의 서버가 다른 서버에 통신을 요청하는 것으로 1대는 서버, 1대는 클라이언트가 되는 구조이다. ex) 사용자가 블로그 기능을 사용하기 위해 로그인 서비스를 거쳐야하는 상황 가장 많이 사용되는 방식은 HTTP/HTTPS 방식이다. 스프링부트의 동작 방식 spring-boot-starter-web 모듈을 사용하면 기본적으로.. Book/스프링부트 핵심가이드 2023. 10. 18. [Spring] 스프링부트(Spring Boot) 설명과 특징 스프링 부트(Spring Boot) 스프링이 제공하는 다양한 프로젝트 중 하나인 스프링 부트의 특징을 알아보겠습니다. 스프링부트 독립적이며, 운영할 수 있는 수준의 Spirng 기반 어플리케이션을 쉽게 만들 수 있게 해준다. 최소한의 설정으로 Spring 플랫폼과 서드파티 라이브러리를 사용할 수 있다. 대부분의 Spring Boot 어플리케이션은 최소한의 Spring 설정을 필요로 한다. 스프링부트의 특징 1. 의존성 관리 'spring-boot-starter' 라는 의존성을 이용하여 각 라이브러리의 호환되는 버전의 모듈 조합을 제공하여 문제를 해결한다. spring-boot-start 라이브러리 카테고리 spring-boot-starter-web : 스프링 MVC를 사용하는 RESTful 어플리케이션을.. Book/스프링부트 핵심가이드 2023. 10. 16. 이전 1 2 3 다음