
의존성 추가dependencies { implementation("org.springframework.boot:spring-boot-starter-batch") implementation("org.springframework.boot:spring-boot-starter-data-jpa") // JPA 사용 시 runtimeOnly("org.postgresql:postgresql") // 데이터베이스에 따라 변경}application.ymlspring: // DB 정보는 알아서 적당히 바꾸시길 datasource: url: jdbc:postgresql://localhost:5432/mydb username: myuser password: mypassword driv..

간단하고 담백하게 설정 방법을 작성하려고 합니다.의존성추가// Swaggerimplementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.5")application.ymlspringdoc: swagger-ui: path: /docs // 경로 커스텀 disable-swagger-default-url: true api-docs: path: /api-docsSwagger Configimport io.swagger.v3.oas.models.OpenAPI;import io.swagger.v3.oas.models.info.Info;import org.springframework.context.annotation.Bean;impor..
@Autowired란? 의존성을 주입 할 때 사용하는 어노테이션으로 의존 객체의 타입에 해당하는 bean을 찾아주는 역할을 한다. 사용 가능한 위치 생성자(스프링 4.3부터 생략 가능) Setter 필드 생성자에 @Autowired (스프링 4.3부터 생략가능) @Service public class TestService { TestRepository testRepository; @Autowired public TestService(TestRepository testRepository) { this.testRepository = testRepository; } } public class TestRepository { .... } 위 코드에서 TestRepository의 의존성 주입이 작동할까? 당연히 작..

의존성 추가하기 implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' 스웨거의 경우 springDoc라는 라이브러리가 1개 더 있고, 2.x 와 3.x 버전의 차이가 있다. SwaggerConfig.java 추가 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors..

저번에 만들었던 컨트롤러에 자체 회원 가입을 JWT방식으로 구현해 보겠습니다. 이전 링크 : https://smujihoon.tistory.com/240 1. 의존성 추가 compile('io.jsonwebtoken:jjwt:0.9.1') 2. JwtTokenProvider 라는 jwt관련 메소드를 정의할 클래스 생성 @RequiredArgsConstructor @Component public class JwtTokenProvider { private String secretKey = "webfirewood"; // 토큰 유효시간 30분 private long tokenValidTime = 30 * 60 * 1000L; private final UserDetailsService userDetailsSer..

1. 구글 계정 만들기 먼저 OAuth 동의 화면에서 이름 짓고 밑에 3개 잘 등록되었는지만 확인하고 생성 제일 상단처럼 프로젝트 이름을 짓고 왼쪽 햄버거 버튼으로 사용자 인증 정보로 넘어오면 오른쪽 네모칸 처럼 클릭 승인된 리디렉션 URI 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공하면 구글에서 리다이렉트할 URL입니다. 스프링 부트 security 2.0 부터는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL을 지원하고 있습니다. 사용자가 별도로 리다이렉트할 URL을 지원하는 컨트롤러를 만들 필요가 없습니다. 시큐리티에서 구현됨 현재는 개발 상태이므로 위와 같이 적었고 포트는 알아서 맞춰서 사용하세요(기본 8080) 만들기 버튼으로 생성된 OAu..

JWT란?Json Web Token의 약어이며 Json 포맷으로 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. 주로 회원 인증이나 정보 전달에 사용된다. 기존에 사용되던 Session에서 jwt로 많이 넘오는 이유는 크게 2가지 측면이 있다. 1. 서버의 부하session에 저장한다는 것은 결국 서버의 저장공간을 사용하게 되므로 많은 이용자가 사용되는 어플일 경우 그만큼의 부하가 생기는 것이며 HTML5부터는 브라우저에 5MB의 저장공간을 쓸 수 있는 스토리지도 생겼기에 이를 이용한 것 2. 서버간 세션 동기화 문제트래픽이 몰리게 될 경우 컴퓨팅 파워를 높여서 해결 하는 방법보단 서버를 늘려서 부하분산을 하는 경우가 더 많다. 이 경우 특정 서버에만 저장된 세션의 정보를 다른 서..
JPA 소개 Oracle, mySql, msSql 등을 쓰지 않는 웹 애플리케이션은 거의 없습니다. 그러다보니 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요합니다. 관계형 데이터베이스가 계속해서 웹 서비스의 중심이 되면서 모든 코드는 SQL 중심으로 되어갑니다. 이는 관계형 데이터베이스가 SQL만 인식할 수 있기 때문인데, SQL만 가능하니 테이블마다 기본적이 CRUD를 매번 생성해야합니다. 예를 들어 User라는 테이블이 추가되면 기본적으로 아래와 같은 CRUD가 생성됩니다. select * from user insert into user vales(...) update user set .. delete from user 이런 문제말고도 패러다임 불일치 라는 문제도 있습니다. 관계형 데이터..