-
[QueryDSL] QueryDSL에서 조인 시 주의사항 | 객체 그래프 탐색Spring 2023. 10. 22. 19:56
QueryDSL에서 groupBy를 사용하는 예제를 공부하던 중, '왜 이렇게 조인을 해야하는지'에 대한 의문을 가지게 되었다. 🔍 기본 조인 방식 먼저, 기본적인 조인 방식을 살펴보자. List result = queryFactory .select(team.name, member.age.avg()) .from(member) .join(member.team, team) .groupBy(team.name) .fetch(); 이 코드는 member 테이블을 기반으로 team 테이블과 조인하는 방식으로 작성되었다. from 절에는 member를 시작점으로 설정하고, join에서는 member와 연관된 team을 찾기 위해 (member.team, team) 파라미터를 사용했다. 이러한 방식은 member가 t..
-
[Spring] @GeneratedValue | 엔티티의 기본 키 생성 전략Spring 2023. 6. 18. 17:23
🔍 @GeneratedValue /* * Copyright (c) 2008, 2020 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0, * or the Eclipse Distribution License v. 1.0 which is available at * http://www.eclipse.org/org/documents/edl-v10.p..
-
[Spring] TDD와 단위 테스트Spring 2023. 6. 18. 00:25
🔎 TDD (test-driven development) TDD는 테스트가 주도하는 개발을 의미한다. 테스트 코드를 먼저 작성하는 것부터 시작한다. RED: 항상 실패하는 테스트 작성 GREEN: 테스트 통과하는 프로덕션 코드 작성 REFACTOR: 테스트 통과하면 프로덕션 코드 리팩토링 🔎 단위 테스트 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미하며, 다음과 같은 이점을 가진다. 개발단계 초기에 문제를 발견하게 도와줌 추후 코드 리팩토링, 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인 가능 기능에 대한 불확실성 감소 시스템에 대한 실제 문서 제공 자동검증 가능 개발자가 만든 기능을 안전하게 보호 기존 기능이 잘 작동되는 것을 보장 테스트 프레..
-
[Spring] Spring Security + JWT 로그인 구현하기 - 4Spring 2023. 6. 16. 14:36
📝 지난 포스팅 ➡︎ Spring Security + JWT 로그인 구현하기 - 3 [Spring] Spring Security + JWT 로그인 구현하기 - 3 📝 지난 포스팅 ➡︎ Spring Security + JWT 로그인 구현하기 - 2 [Spring] Spring Security + JWT 로그인 구현하기 - 2 Spring Security + JWT 로그인 구현 1️⃣ 라이브러리 설정 Spring Security와 JWT를 사용하기 위해 다 suddiyo.tistory.com 지난 포스팅에서 Postman을 사용해서 로그인 기능이 잘 작동하는지 테스트를 해보았다. 이번 포스팅에서는 SpringBootTest와 TestRestTemplate을 이용하여 test code를 직접 작성해보는 방식으..
-
[Spring] Spring Security + JWT 로그인 구현하기 - 3Spring 2023. 6. 15. 17:49
📝 지난 포스팅 ➡︎ Spring Security + JWT 로그인 구현하기 - 2 [Spring] Spring Security + JWT 로그인 구현하기 - 2 Spring Security + JWT 로그인 구현 1️⃣ 라이브러리 설정 Spring Security와 JWT를 사용하기 위해 다음 라이브러리들을 추가해준다. build.gradle dependencies { ... // Spring Security implementation 'org.springframework.boot:sp suddiyo.tistory.com 지난 번에 Spring Security + JWT로 구현한 로그인 기능을 구현해보았는데 이번에는 Postman을 사용해서 로그인 기능이 잘 작동하는지 테스트를 할 것이다! 1️⃣ DB..
-
[Spring] Spring Security + JWT 로그인 구현하기 - 2Spring 2023. 6. 15. 01:43
📝 지난 포스팅 ➡︎ Spring Security + JWT 로그인 구현하기 - 1 [Spring] Spring Security + JWT 로그인 구현하기 - 1 Session vs Token 사용자 인증 방식은 일반적으로 세션 기반 방식과 토큰 기반 방식(JWT)으로 나뉜다. 두 방식은 어느 것이 더 뛰어나다고 하긴 애매하고, 각 방식의 장단점과 요구사항을 분석하여 상 suddiyo.tistory.com 지난 포스팅에서 Spring Security + JWT 로그인 작동 원리를 알아봤으니, 이번 포스팅에서는 본격적으로 기능을 구현해 볼 것이다. 1️⃣ 라이브러리 설정 Spring Security와 JWT를 사용하기 위해 다음 라이브러리들을 추가해준다. build.gradle dependencies { ..
-
[Spring] Spring Security + JWT 로그인 구현하기 - 1Spring 2023. 6. 14. 20:19
📝 지난 포스팅 ➡︎ JWT(Json Web Token) 란? [Spring] JWT(Json Web Token)란? | 구조, 암호화 방법, 장단점 JWT (Json Web Token) : JWT(Json Web Token)란, JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web 토큰이다. JWT는 필요한 정보를 자체적으로 지니는 Self-Contained 방식으로 정보를 안정성 있 suddiyo.tistory.com 🔎 Session vs Token 사용자 인증 방식은 일반적으로 세션 기반 방식과 토큰 기반 방식(JWT)으로 나뉜다. 두 방식은 어느 것이 더 뛰어나다고 하긴 애매하고, 각 방식의 장단점과 요구사항을 분석하여 상황에 맞게 결정하는 것이 좋다. (두 방식의 차..
-
[Spring] JWT(Json Web Token)란? | 구조, 암호화 방법, 장단점Spring 2023. 6. 14. 18:04
JWT (Json Web Token) : JWT(Json Web Token)란, JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web 토큰이다. JWT는 필요한 정보를 자체적으로 지니는 Self-Contained 방식으로 정보를 안정성 있게 전달한다. * RFC 7519 🔎 JWT의 구조 JWT는 Header, Payload, Signature 세 가지로 구성된다. JSON으로 포맷된 각 부분은 Base64로 인코딩되어 표현되며, 각각의 구성 요소는 . 로 구분한다. * Base64는 암호화 된 문자열을 반환하는 게 X 1️⃣ Header(헤더) 토큰의 헤더는 alg와 typ로 구성된다. { "alg": "HS256", "typ": "JWT" } alg: 해싱 알고리즘. 서명(..