목록전체 글 (155)
Rootable의 개발일기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oQTq8/btsGTFHmIQe/TVGbnEXGkFxkG9DjCMKf2K/img.jpg)
🚴♂️ 기본 키 할당 전략 JPA가 제공하는 기본 키 할당 방법은 직접 할당 방식과 자동 생성 방식이 있다. 직접 할당 방식은 애플리케이션에서 기본 키를 직접 할당하는 방식이고, 자동 생성 방식은 DB에 할당을 위임하거나 기본 키를 생성해 주는 별도의 수단을 통해 할당하는 것이다. 본 글에서는 직접 할당 방식과 RDBMS에서 많이 사용하는 자동 생성 방식에 대해 다뤄보고자 한다. 📌 직접 할당 방식 Entity를 생성할 때, Key Column에 @Id를 사용하면 된다. @Getter@Entity@NoArgsConstructorpublic class Member { @Id private Long id; ... } 해당..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dEDlhO/btsGR0ZqNrC/k5wHxGUK66SXrpqo5FKB81/img.png)
📌 Overview Spring Security와 JWT를 이용하여 토큰 기반 인증 구조를 구현하면서 GenericFilterBean과 OncePerRequestFilter로 구현한 코드를 보게 되었다. 그래서 두 방식의 차이점을 아래에서 비교해 보고자 한다. 🧾 Filter 위 그림은 Spring MVC에서 요청의 lifecycle을 나타낸 그림이다. javax.servlet-api나 tomcat-embed-core를 사용하면 제공되는 Servlet Filter Interface로서 클라이언트의 서블릿 요청을 가장 먼저 받는다. ✅ Filter interface package jakarta.servlet;import java.io.IOException;publ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcd4bi/btsGe9oje8s/7bP25IglZRUm2BmEftSgt1/img.png)
📌 OAuth 2.0 등장 배경 사용자는 자신의 개인 정보를 누군가에게 맡기는 것이 부담되고 안전하지 못하다고 느낄 것이다. 구글, 페이스북, 트위터와 같은 대형 플랫폼도 마찬가지다. 그래서 사용자는 비밀번호를 주기적으로 바꾸고, 또 이런 것을 권장한다. 사용자가 제3의 서비스를 이용한다면 사용자도 자신의 정보를 관리해야 하지만 이를 제3의 서비스 업체에서도 직접 저장하고 관리해야 한다. 이처럼 양쪽 모두의 부담을 덜기 위해 등장한 방법이 대형 플랫폼에 저장된 사용자 정보를 이용하자는 것이다. 하지만 대형 플랫폼에서도 사용자 개인 정보를 신뢰할 수 없는 제3의 서비스에 맡기는 것에 부담을 느낄 것이다. 따라서, 이러한 문제를 해결하면서 표준화된 방법이 필요해졌는데 이것이 OAuth의 등장 배경이 되었고,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sLika/btsGewLk38a/cRhqtLVCtUsro9NWtTj3ik/img.jpg)
📌 RDBMS(관계형 데이터베이스) 란? ACID를 보장하는 스키마에 복종적인 데이터베이스 고정된 행(row)과 열(column)로 구성된 테이블에 데이터를 저장한다. 각 열은 속성을 의미하고, 각 행은 여러 속성을 가진 데이터를 의미한다. 핵심적인 특징은 데이터가 정해진 스키마에 따라 테이블에 저장된다는 점과 모든 데이터는 테이블에 분산 저장되어 관계를 맺는다는 것이다. 그래서 테이블의 구조와 데이터 타입 등을 사전에 정의해야 하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입할 수 있다. ✅ 장점 명확한 스키마가 정의되어 있다. 데이터 무결성 및 ACID 보장 데이터 변경에 견고함 데이터를 중복 저장하지 않음 ✅ 단점 수정이 어려운 데이터 스키마 관계로 인한 복잡한 쿼리문 대체로 수직적 확장만..