본문 바로가기

Java107

JAVA ORM - JPA(기본 세팅, 간단한 JPA예제) 본격적으로 QueryDsl을 써보기 전에 Java 표준 ORM인 JPA부터 자세히 파보고 해봐야겠다 생각이 들어 JPA강의를 샀다.먼저 ORM이란? 객체 관계 매핑(Object-Relational Mapping, ORM)은 객체 지향 프로그래밍 언어를 사용하여 데이터베이스를 조작할 수 있게 해주는 기술이다. 데이터베이스 테이블을 객체로 매핑해서 쿼리를 작성하지 않고도 데이터를 다룰 수 있다는 것이다. 내가 여태껏 사용했던 Spring Data JPA와 그냥 JPA는 뭐가 다른걸까?ㅇ JPA (Java Persistence API)JPA는 Entity, Entity Manager, JPQL(Java Persistence Query Language) 등을 제공해 데이터베이스의 데이터를 객체로 매핑하고, 이를.. 2024. 7. 30.
JWT를 가장 쉽게 적용해보자. 1. 나는 gradle기준이다. 고로 build.gradle에 의존성 추가를 해주자. implementation 'io.jsonwebtoken:jjwt-api:0.11.2' implementation 'io.jsonwebtoken:jjwt-impl:0.11.2' implementation 'io.jsonwebtoken:jjwt-jackson:0.11.2' 첫줄부터 역할을 간략히 보자.implementation 'io.jsonwebtoken:jjwt-api:0.11.2'JWT를 생성, 서명, 인코딩, 파싱하는 기능을 제공함. implementation 'io.jsonwebtoken:jjwt-impl:0.11.2'위의 기능들의 실제 구현을 제공함.(서명 알고리즘, JWT토큰의 인코딩/디코딩,.. 2024. 6. 28.
QueryDsl에 대해 알아보자. 오랜만에 포스팅이다. 그간 취업이안돼서 방황도해보고 자격증공부도 해보고 혼자 웹페이지 프로젝트도 해보고 그런시간을 보냈다.요즘 다시 열정이 돌아와 열심히 취업을 준비중이다.전에 편하게 쓰던 Jpa를 보다가 jpa n+1 문제에 대한 해법으로 QueryDsl 에 대해 알게 되었고, 동영상 강의가 있길래 한번 정리해본다.QueryDSL은 간단하게 설명하자면 자바 기반의 데이터베이스 쿼리 언어로, 타입안전한 방식으로 쿼리를 작성할 수 있게 도와주는 기술이다. 기존의 JPQL이나 SQL같은 문자열 기반 쿼리 언어의단점을 보완하기 위해 설계되었다. 장점으로는 컴파일 시에 쿼리 오류를 잡을 수 있어 더 안전하고 유지보수가 쉬워진다는 점이있다.먼저 QueryDsl을 쓰기위해 build.gradle에 이렇게 의존성을 .. 2024. 5. 27.
spring security를 알아보자 - 12 ㅇ JSON Web Token 기반 인증 인증방법으로 세션과 토큰의 차이는 이미 포스팅해놓은게 있으니 패스. 그리고 JWT를 적용해서 어플을만든 경험도 있기에 간단하게 짚고 넘어가보겠다. ㅇ 토큰? 토큰은 클라이언트 애플리케이션에서 백엔드 시스템으로 보호된자료에 접근할때마다 보낼 수 있도록 설정되어있다. 토큰이 유효하다면 백엔드 서버는 올바른 응답을 해줄 수 있다. ㅇ 토큰을 사용함으로써 얻는 장점 자격증명이 되면 실제 자격증명을 공유하지 않고도 토큰을 주고받는것으로도 클라이언트와 백엔드 서버가 작업할 수 있게된다. 또한 백엔드 애플리케이션도 인증을 반복해서 하지 않아도 된다. 그리고 토큰을 사용하여 엔드 유저의 유저정보 혹은 역할정보를 저장할 수 있다. Spring Security 에서 기본으로 만드는.. 2024. 4. 19.