개발 24

[자바 ORM 표준 JPA 프로그래밍] 영속성 관리

김영한님의 강의를 복습하면서 평소 애매하게 알던 부분들을 기록하려고 합니다. JPA가 ORM 기술에 대한 표준 명세 API 입니다. JPA의 내부 동작 원리를 알기 위해 영속성 컨텍스트에 대해 학습하여야 합니다 JPA의 원리를 이해하기 위해 강사님은 Spring 없이 JPA로만 설명 합니다. JPA의 알아야 될 2가지 1. ORM - 자바의 객체와 DB 테이블 사이의 매핑 관계 2. 영속성 컨텍스트 - JPA의 내부 동작 원리 엔티티매니저팩토리를 통해 엔티티 매니저를 생성합니다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있습니다. 영속성 컨텍스트 📍 JPA에서 가장 중요함 📍 "엔티티를 영구 저장하는 환경"이라는 뜻 📍 EntityManager.persist(entity); → DB에 저장하는게..

개발 2023.09.10

[Spring Boot] AccessToken, RefreshToken을 이용한 로그인 구현

이번에 팀 프로젝트 로그인 구현 방식으로 JWT를 적용해봤습니다 다른 완성도 높은 방식들도 많지만 아직 완벽히 이해하진 못해서 스스로 이해 가능할 정도 수준으로 구현 했습니다😅 package구조 - 개인 패키지 이름 - config - controller - dto - entity - repository - service - jwt Build.Gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.13' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com.donggram' version = '0.0.1-SNAPSHOT' java { sourceComp..

개발 2023.07.22

[Spring Boot] jwt로 로그인, 회원가입 API 구현

이전 게시글에서 간단히 loginDto에 username을 입력하면 token을 발급하는 부분을 구현해봤습니다! https://changha-dev.tistory.com/160 [Spring Boot] Security + jwt로 인증, 인가 구현하기 스프링 시큐리티에서 JWT 토큰 인증 방식을 사용하기 위해서는 다음과 같은 과정을 거칩니다: 사용자 로그인: 클라이언트에서 사용자의 로그인 정보(예: 아이디와 비밀번호)를 서버에 전송합니 changha-dev.tistory.com 이번에는 이어서 회원가입과 로그인 부분을 추가로 구현해보겠습니다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.13' id 'io.spr..

개발 2023.07.07

[Spring Boot] Security + jwt로 인증, 인가 구현하기

스프링 시큐리티에서 JWT 토큰 인증 방식을 사용하기 위해서는 다음과 같은 과정을 거칩니다: 사용자 로그인: 클라이언트에서 사용자의 로그인 정보(예: 아이디와 비밀번호)를 서버에 전송합니다. 인증: 서버는 전달받은 로그인 정보를 확인하고, 사용자가 유효한지 확인합니다. 이 단계에서는 사용자의 아이디와 비밀번호를 검증하는 등의 인증 과정이 이루어집니다. 토큰 생성: 인증이 성공적으로 이루어지면, 서버는 사용자를 대표하는 JWT 토큰을 생성합니다. 이 토큰에는 사용자의 식별 정보와 필요한 추가 정보가 포함됩니다. 토큰 전달: 서버는 생성된 JWT 토큰을 클라이언트에게 전달합니다. 일반적으로는 HTTP 응답의 헤더나 JSON 응답의 일부로 토큰이 포함됩니다. 토큰 저장: 클라이언트는 받은 토큰을 안전한 곳에 ..

개발 2023.07.06

session, cookie, jwt 관계 및 정리

jwt 로그인 방식을 공부하는 도중에 session에 대해 알게 되었고 jwt 사용할 때 session을 안쓰는 이유에 대해 궁금해서 이 참에 용어 정리하려고 합니다 //SecurityConfig.class 의 SecurityFilterChain 메서드 중... //session 사용하지 않음 .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) SessionCreationPolicy.ALWAYS - 항상 세션 생성 SessionCreationPolicy.IF_REQUIRED - 필요시 생성(기본) SessionCreationPolicy.NEVER - 생성하지 않지만, 기존에 존재하면 사용 SessionCre..

개발 2023.07.01

[Spring Boot] 회원 정보 조회 및 삭제

이전 게시글https://changha-dev.tistory.com/149 [Spring Boot] 스프링 부트 회원 목록 출력하기 이전 게시글 https://changha-dev.tistory.com/148 [Spring Boot] 스프링 부트 로그인 구현 이전 게시글 https://changha-dev.tistory.com/147 [Spring Boot] MySQL DB와 연동하기 이전 게시글에서 https://changha-dev.tistory.com/146 [Spr changha-dev.tistory.com 에 이어서 이번 시간에는 회원 정보를 조회 및 삭제 할 수 있는 기능을 간단히 구현해보겠습니다. 조회 할 때 이전 리스트 구현과 약간 다른점은 리스트에서는 memberDTO 전체를 가져와야 되..

개발 2023.02.12

[Spring Boot] 스프링 부트 회원 목록 출력하기

이전 게시글 https://changha-dev.tistory.com/148 [Spring Boot] 스프링 부트 로그인 구현 이전 게시글 https://changha-dev.tistory.com/147 [Spring Boot] MySQL DB와 연동하기 이전 게시글에서 https://changha-dev.tistory.com/146 [Spring Boot ] 웹페이지 정보 -> Controller (http method) 전 게시글 https://changha-dev.tistory. changha-dev.tistory.com 에서 로그인 구현까지 해봤습니다. 이번 시간에는 DB에 저장 돼있는 회원정보들을 웹페이지에서 조회 하는 기능을 살펴보겠습니다. @Controller @RequiredArgsCons..

개발 2023.02.11

[Spring Boot] 스프링 부트 로그인 구현

이전 게시글 https://changha-dev.tistory.com/147 [Spring Boot] MySQL DB와 연동하기 이전 게시글에서 https://changha-dev.tistory.com/146 [Spring Boot ] 웹페이지 정보 -> Controller (http method) 전 게시글 https://changha-dev.tistory.com/145 에 이어 이번에는 [Spring Boot] 스프링부트 환경세팅 후 웹페이지 changha-dev.tistory.com 에서 MySQL DB에 연결하는 것 까지 해봤습니다. 이번에는 저장된 정보 가지고 로그인을 할 수 있도록 구현 해보겠습니다. @Controller @RequiredArgsConstructor //MemberService..

개발 2023.02.11

[Spring Boot] MySQL DB와 연동하기

이전 게시글에서 https://changha-dev.tistory.com/146 [Spring Boot ] 웹페이지 정보 -> Controller (http method) 전 게시글 https://changha-dev.tistory.com/145 에 이어 이번에는 [Spring Boot] 스프링부트 환경세팅 후 웹페이지 실행 스프링부트 이용하여 웹페이지 띄우기 먼저 IntelliJ 가 설치되어 있다는 전제로 시작하 changha-dev.tistory.com 웹페이지에서 입력한 정보를 Controller에 가져오는 것까지 해봤습니다. 이번에는 가져온 정보를 DB에 저장하는 것을 해보겠습니다. (MySQL WorkBench 설치 및 사용방법은 생략) 스프링 MVC패턴을 기반으로 하여 1. Service 로 ..

개발 2023.02.10

[Spring Boot ] 웹페이지 정보 -> Controller (http method)

전 게시글 https://changha-dev.tistory.com/145 에 이어 이번에는 [Spring Boot] 스프링부트 환경세팅 후 웹페이지 실행 스프링부트 이용하여 웹페이지 띄우기 먼저 IntelliJ 가 설치되어 있다는 전제로 시작하겠습니다. https://start.spring.io/ 위 사이트에서 프로젝트를 만듭니다. depenencies 에서 Thymeleaf 와 Spring Web 을 추 changha-dev.tistory.com html에 입력한 정보를 Controller에 가져오는 걸 해보겠습니다. 먼저 controller 패키지 => MemberController 생성 templates 패키지 => save.html 생성 Index Page! 회원가입 로그인 index.html ..

개발 2023.02.09