MongoDB Atlas 설정 https://devfunny.tistory.com/850 [MongoDB] MongoDB Altas Free버전 Compass 사용하기 1) monggoDB 사이트 접속 https://account.mongodb.com/account/login?signedOut=true Cloud: MongoDB Cloud account.mongodb.com 2) 회원가입 후 로그인시, 접속되는 화면 3) create a database ■ [Build a Database] ■ [Create] ■ [Create Cluste devfunny.tistory.com MongoDB Atlas 연동 1) [Connect] 클릭 2) [Drivers] 선택 3) [Driver], [Version] ..
트랜잭션 관리자 스프링 프레임워크에서는 트랜잭션 적용을 비교적 쉽게 구현하도록 도와주는 기능이 있다. 예시로, 트랜잭션 관리를 위한 코드를 비즈니스 로직에서 분리하기 위한 구조나 다른 트랜잭션을 투명하게 처리할 수 있게 하는 API 등이 있다. 스프링 트랜잭션 처리의 중심 인터페이스는 PlatformTransactionManager 이다. 이 인터페이스는 트랜잭션 처리에 필요한 API를 제공하며 개발자가 API를 호출하는 것으로 트랜잭션을 수행할 수 있다. PlatformTransactionManager는 트랜잭션 관리의 구현 방식을 추상화하기 위한 인터페이스이기 때문에 개발자는 서로 다른 종류의 트랜잭션을 사용하더라도 각각의 차이점을 의식할 필요 없이 같은 API로 조작할 수 있다. public int..
오류상황 SpringBoot3.1.2 버전 프로젝트에 Swagger를 적용하려고한다. https://devfunny.tistory.com/692 SpringBoot + SpringSecurity 프로젝트에 Swagger 3.0 적용하기 이전 버전 Swagger 2.0 적용 방법 https://devfunny.tistory.com/313 SpringBoot에 Swagger을 빠르게 적용해보기 Swagger 요즘 백엔드 개발은 ModelAndView 방식보다는 API 위주의 어플리케이션을 권장하고 있다. API 개발 devfunny.tistory.com ▶ 이전에 Swagger3.0을 적용하고 남겨둔 포스팅이 있어서 참고했지만 아래와 같은 오류를 만나게된다. Type javax.servlet.http.Htt..
DispatcherServlet 서블릿 컨테이너의 가장 앞단에서 들어오는 모든 요청을 먼저 받아, 적합한 컨트롤러에 위임해주는 프론트 컨트롤러다. dispatch "보내다" 라는 뜻 클라이언트로부터 어떤 요청이 오면, 서블릿 컨테이너가 이 요청을 받게되고, 이 요청을 프론트 컨트롤러인 DispatcherServlet이 받아서 해당 요청을 처리할 컨트롤러(Bean)을 getBean() 메서드로 받아와서 요청에 적합한 컨트롤러의 메서드를 실행시킨다. Spring : web.xml 을 통한 매핑 web.xml Hello_servlet Hello.Hello_servlet // servlet class Hello_servlet /Hello SpringBoot : 자동 구성 SpringBoot는 아래 spring-..
마이바티스(Mybatis) SQL과 자바 객체를 매핑하는 사상에서 개발된 데이터베이스 접근용 프레임워크다. 마이바티스는 SQL 기반으로 데이터베이스 접근을 수행하는 기존 방법을 받아들이고, 규모가 큰 애플리케이션 개발에서 발생하는 과제를 해결하는 구조를 제공한다. Mybatis는 자체 Connection Pool을 가지며, 환경에 따라 사용할 DB를 설정하여 사용한다. 마이바티스 등장 애플리케이션의 규모가 커지면서 SQL이 수백개가 넘는 경우가 많아졌다. SQL 자체의 체계적인 관리 방법이나 SQL의 입출력 데이터와 자바 객체의 효율적인 변환 방법 등 스프링의 기능만으로는 해결할 수 없는 과제가 발생했다. 마이바티스 이점 SQL의 체계적인 관리, 선언적 정의(설정 파일, 어노테이션) 자바 객체와 SQL ..
SpringBoot + Maven 프로젝트 생성 초기 셋팅 - 의존성 ▶ pom.xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime true com.h2database h2 runtime org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.restdocs spring-restdocs-mockmvc test 문서 작성을 위한 API 개발 ▶ UserController package com.maven.restapidocs.controll..
들어가며 API를 개발할때 API별로 파라미터 validation 체크를 해야한다. validation 체크를 하는 방법은 여러가지로 많겠지만, Spring Boot Starter Validation을 사용해서 여러가지 방법을 적용해보자. 의존성 추가 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation pom.xml org.springframework.boot spring-boot-starter-validation build.gradle implementation 'org.springframework.boot:spring-boot-starter-validation' // validation 예제..
이전 버전 Swagger 2.0 적용 방법 https://devfunny.tistory.com/313 SpringBoot에 Swagger을 빠르게 적용해보기 Swagger 요즘 백엔드 개발은 ModelAndView 방식보다는 API 위주의 어플리케이션을 권장하고 있다. API 개발이 많아짐에 따라, 프로젝트 안의 API를 관리할 수 있는 문서가 필요해졌다. API 문서를 만들 devfunny.tistory.com Swagger 3.0 적용 1) build.gradle implementation 'io.springfox:springfox-boot-starter:3.0.0' 2) SwaggerConfig.java package com.api.shop.config; import org.springframewo..
SpringBoot Project 1. build.gradle runtimeOnly 'org.postgresql:postgresql' 2. application.yml spring: # Postgres Database datasource: url: jdbc:postgresql://localhost:5432/devplan username: plan password: plan driver-class-name: org.postgresql.Driver # JPA jpa: hibernate: ddl-auto: create # 자동으로 테이블 생성 (drop -> create) properties: hibernate: format_sql: true Mac 터미널로 Postgresql 설치 1) 터미널에서 postg..
스프링 부트 스프링 부트의 기반은 스프링 프레임워크다. 스프링 프레임워크는 의존성 주입(Dependency Injection) 개념을 기반으로 되어있고, XML 구성파일을 사용한다. 기능이 점차 증가되면서 XML 구성 파일을 사용하는건 점점 부담이되어, 스프링부트가 출시되었다. 스프링 부트는 스프링 프레임워크 + 서드파티(제 3자의 기업) 제품으로 구성되어있고, 핵심 모듈의 설정 방식을 개선하여 빠르게 개발할 수 있도록 스프링 프레임워크 보다 개선된 프레임워크다. 스프링 부트는 기본 구성이 적용되어있어, 추가적인 설정을 최소화하고 필요한 경우에만 구성을 작성한다. 또한 독립형 JAR 파일 기반의 런타임 모델도 지원한다. (이전에는 WAR 파일로 배포 및 실행) @SpringBootApplication 스..
현재 프로젝트 목록 Prj1. Config -> 여러 Service 프로젝트들의 Config를 공통으로 관리하는 프로젝트 Prj2. API-Gateway -> 여러 Service 프로젝트들의 Gateway 역할을 하는 프로젝트 Prj3. User-Service -> User, Order, OrderItem 등 여러 서비스 프로젝트들 중에 유저 프로젝트 User-Service 프로젝트 우선 서비스 프로젝트들 중 하나인 User-Service 프로젝트에 추가 설정을 해보자. 1) pom.xml org.springframework.boot spring-cloud-starter-bus-amqp 2) application.yml spring: application: name: user-service rabbitm..
testconfig-{profiles} 의 yml 파일 생성하기 testconfig.yml test: message: default yml testconfig-dev.yml test: message: dev yml testconfig-prod.yml test: message: prod yml 위 파일들은 로컬 컴퓨터에 특정 폴더 안에 생성되어 있을 것이다. 해당 파일들을 git repository 에 push 한다. (예상 경로 : https://github.com/seohae/microservice-config) Config 관리 프로젝트 생성 1) SpringBoot 프로젝트를 생성하였다. ConfigApplication.java 파일 안에 아래 코드를 추가하여 Config Server로 등록하자. ..