본문 바로가기

Learning-log/Spring & JPA55

JPA vs Hibernate vs Spring JPA 지난 프로젝트를 회고하며 JPA에 대한 이해도가 부족한 상태에서 기술만 급하게 사용한 것은 아닌가 하는 반성이 있었다. 따라서 JPA에 대한 이해를 굳건히 하고자, 김영한 강사님의 JPA ORM ㅇㅇ 강의를 다시 수강했다.해당 강의를 수강하며 거듭 드는 생각은, 내가 프로젝트에서 사용했던 JPA와는 차이가 있었다는 것이다. EntityManager를 통해 entity CRUD를 진행하는 강의와는 달리, 프로젝트에서는 Repositoy 인터페이스를 구현해 활용했기 때문에 이 둘 사이의 어떤 차이가 있는가에 대해 정리하고 넘어가려 한다.따라서 이번 게시글에서는 JPA, Hibernate, Spring Data JPA에 관하여 다루고, 비교해볼 것이다.JPAJPA는 Java Persistence API의 약자.. 2024. 5. 9.
[Spring Boot] Spring Security oauth2login 설정으로 Kakao 소셜로그인 API 구현하기 (DeafaultOAuth2User 확장) JWT1. 설정build.gradle에 dependency 추가하기implementation 'com.auth0:java-jwt:4.4.0'1) Dependency 추가build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' }Maven Project org.springframework.boot spring-boot-starter-security application.properties#JWT 설정jwt.secretKey=F22rV7dQ4uHx2P6gv5lsJrE8mUcYn2023# Access Token Configuration#1시간(60분) (1000L(ms -> s) * 60.. 2023. 9. 19.
[Spring Boot, 로그인] JWT란? JWT를 활용해서 Spring Boot에서 로그인 구현하기 ( JWT 회원정보 추출 커스텀 애노테이션 ) JWT인증에 필요한 정보들을 암호화시킨 JSON 토큰. 유저를 인증하고 식별하기 위한 Token 기반 인증JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화토큰 내부에는 개인키를 통한 전자서명이 들어있음토큰 기반 인증토큰 자체에 사용자들의 정보들이 포함 ⇒ Stateless하게 설계 가능Stateless(무상태성) 란?서버가 클라이언트의 상태를 보존하지 않음. 오직 클라이언트의 요청에 대한 응답만 주는 것.HTTP통신은 무상태성을 지향. 그래야 서버를 무한 확장 가능하기 때문고객이나 요청이 갑자기 증가할 때 서버 추가가 쉬워짐Stateful 하다면? 서버 하나 고장시 서버와 연결된 클라이언트가 기존 작업을 처음부터 다시 해야 하는 상황 발생(결제 튕기면 처음부터 다시!)S.. 2023. 9. 14.
[Spring Boot] SpringSecurity 이해하기 SpringSecurity란?Spring 기반의 애플리케이션 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크인증과 인가에 관한 부분을 Filter 흐름에 따라 처리보안관련 로직을 따로 작성하지 않아도 된다는 점에서 편리Filter vs InterceptorFilter : Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL을 받음Interceptor : Dispatcher와 Controller 사이에 위치Deprecated.WebSecurityConfigureAdapterSpring Security 5.4 이후부터 WebSecurityConfigurerAdapter가 Deprecated 되었습니다. 더 이상 해당 클래스는 사용하지 않고 아래와 같이 사용합니다. 이번 프.. 2023. 9. 2.
(DB2편) 섹션5-3. JPA 소개 1. ORM - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 2. JPA - Java의 ORM기술 - 마치 Java Collection처럼 생김 - 애플리케이션과 JDBC 사이에서 동작 - JPA 동작 - 저장 - JPA 동작 - 조회 - JPA 버전 1.0 : 초기버전, 복합키, 연관관계 기능 부족 2.0 : 대부분 ORM 기능 포함, JPA Criteria 추가 2.1 : 스토어드 프로시저 접근, 컨버터, 엔티티 그래프 기능이 추가 - JPA를 사용해야 하는 이유 SQL 중심적 개발에서 객체 중심으로 개발 생산성 증가 .. 2023. 7. 10.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 3-(3)JSP로 회원관리 웹 애플리케이션 만들기, (4)MVC패턴 - 개요 - JSP로 회원관리 웹 애플리케이션 만들기 JSP 라이브러리 추가 : build.gradle에! //JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' //JSP 추가 끝 JSP는 꼭 첫 줄 써야 함! JSP에 보통 로직 먼저 넣고 그 밑에 html 넣음 ' 내에 자바코드 그대로 쓸 수 있음 는 자바코드 출력 회원 목록은 이전보다 JSP를 쓰는게 효과가 좋은 걸 확인할 수 있음 하!지!만! JSP를 써도 두 가지 일을 한 페이지에 함께 처리하는 느낌. 서블릿과 JSP의 한계 서블릿으로 개발 시, 뷰 화면을 위한 HTML만드는 작업이 자바코드에 섞여 지저분하고 복잡 .. 2023. 5. 11.