Java-Spring

자바 / 스프링 / 스프링부트 스터디 정리
Java-Spring/Spring Boot JWT Tutorial

[Spring Boot JWT Tutorial] JWT 코드, Security 설정 추가

JWT 설정 추가 HS512 알고리즘을 사용하기 때문에 Secret Key는 64Byte 이상이 되도록 하며, 토큰 만료 시간은 86400초로 설정 (하루) // main/resources/application.yml jwt: header: Authorization # HS512 알고리즘을 사용할 것이기 때문에 512bit, 즉 64byte 이상의 secret key를 사용해야 한다. # 밑의 문자열을 base64로 인코딩한 값을 이용 # echo 'silvernine-tech-spring-boot-jwt-tutorial-secret-silvernine-tech-spring-boot-jwt-tutorial-secret'|base64 secret: c2lsdmVybmluZS10ZWNoLXNwcmluZy1i..

Java-Spring/Spring Boot JWT Tutorial

[Spring Boot JWT Tutorial] Security 설정, Data 설정

401 Unauthorized 해결을 위한 Security 설정 기본적인 Security 설정을 위한 SecurityConfig 클래스 생성 // main/java/me/gagyeong/tutorial/config/SecurityConfig.java @EnableWebSecurity // 기본적인 web 보안 활성을 위한 어노테이션 public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override // WebSecurityConfigurerAdapter의 configure 메소드를 오버라이드 protected void configure(HttpSecurity http) throws Exception { http .authorizeRe..

Java-Spring/Spring Boot JWT Tutorial

[Spring Boot JWT Tutorial] JWT 소개, 프로젝트 생성

JWT 소개 JSON 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token Header, Payload, Signature 3개의 부분으로 구성 1) Header : Signature를 해싱하기 위한 알고리즘 정보들이 담겨 있음 2) Payload : 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들이 담겨 있음 3) Signature : 서버에서 토큰의 유효성 검증을 위한 문자열 JWT는 중앙의 인증서버와 데이터 스토어에 대한 의존성이 없기 때문에 시스템 수평 확장에 유리한 장점을 가지며 Base64 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header 등 어디에서든 모두 사용 가능한 범용성을 가짐 Payload의 정보가 많아지면..

Java-Spring/스프링 입문

[스프링 입문] 회원 관리 예제 - 웹 MVC 개발

회원 웹 기능 - 홈 화면 추가 홈 컨트롤러 추가 // main/java/hello/hellospring/controller/HomeController.java @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 회원 관리용 홈 Hello Spring 회원 기능 회원 가입 회원 목록 웹 브라우저에서 요청이 오게 되면 관련 컨트롤러가 있는지 먼저 찾은 후, 없으면 static 파일을 찾도록 우선순위가 되어 있음 이 때는 home에 매핑된 것이 있으므로 컨트롤러를 호출해 home.html이 나타난 것 만약 매핑된 것이 없었다면, static의 index.html이 나타났을 것 회원..

Java-Spring/스프링 입문

[스프링 입문] 스프링 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정 화면을 붙이기 위해서는 (HTML로 뿌려주기 위해서) 컨트롤러와 뷰 템플릿이 필요 이 때 회원 컨트롤러 (MemberController) 는 회원 서비스 (MemberService) 를 통해서 회원 가입 , 조회를 할 수 있어야 함 이러한 관계를 의존 관계가 있다고 표현 → MemberController가 MemeberService를 의존 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자. 회원 컨트롤러에 의존관계 추가 // main/java/hello/hellospring/controller/MemberController.java @Controller // 스프링 컨테이너가 처음에 스프링을 뜰 때, @Controller 어노테이션으로 ..

Java-Spring/스프링 입문

[스프링 입문] 회원 관리 예제 - 백엔드 개발

비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소 (DB) 가 선정되지 않았다는 가상의 시나리오 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 - 예) 회원은 중복가입이 안된다. 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 - 예) 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리됨 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 interface로 구현 클래스를 변경할 수 있도록 설계 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 → 향후 데이터 저장소를 선정하고 나서..

Java-Spring/스프링 입문

[스프링 입문] 스프링 웹 개발 기초

웹 개발 방법 1) 정적 컨텐츠 : 파일을 웹 브라우저에 그대로 내려주는 것 방법 2) MVC와 템플릿 엔진 : jsp, php 등을 이용해 html을 서버에서 동적으로 바꿔서 내려주는 것 (model, view, controller) 방법 3) API : json 데이터 구조 포맷으로 클라이언트에게 데이터를 내려주는 것, 서버끼리 통신할 때 사용 정적 컨텐츠 스프링 부트 정적 컨텐츠 기능을 자동으로 제공 정적 컨텐츠 입니다. → 이를 서버에 그대로 전달 (반환) 정적 컨텐츠 이미지 - 동작 환경 그림 : 내장 톰켓 서버가 요청을 받은 후 스프링에게 정보를 넘겨줌 → 스프링에서는 hello-static 이라는 컨트롤러가 있는지 찾아보았으나 맵핑되는 것이 없으므로 → 내부에 있는 hello-static.h..

Java-Spring/스프링 입문

[스프링 입문] 프로젝트 환경설정

프로젝트 생성 Java 11 IDE : InteliJ 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 Generate 후, 압축 해제하여 인텔리제이에서 Open or Import HelloSpringApplication 메인 메소드 실행 // main/java/hello/hellospring/HelloSpringApplication.java // @SpringBootApplication 어노테이션으로 인해 스프링부트 애플리케이션이 실행되고, // 내장된 톰캣 웹 서버를 자체적으로 띄우며 스프링부트 실행 @SpringBootApplication public class HelloSpringApplication { public static void main(String[] args) { Spring..

김깅긍
'Java-Spring' 카테고리의 글 목록 (22 Page)