Backend

보호되어 있는 글입니다.
A : Redis 왜 사용해요?B : 인메모리여서 빠르고, 다양한 자료구조 제공....A : 틀린 말은 아니지만...🥱 사실 여기서 B는 필자다.누가 나에게 Redis를 왜 사용했냐고 물어보면 B와 똑같이 대답을 할 것 같다...그래서! 이번 기회에 Redis에 대해 완벽히 공부를 하고자 Redis에 대한 사실과 오해를 작성하게 됐다.+ 우아한 스터디😁redis_version : 7.2.4 1. 인메모리 데이터베이스Redis는 인메모리 데이터베이스입니다.인메모리 데이터베이스의 특징을 알아보기 전에 디스크와 메모리에 대해 알아보겠습니다.디스크 & 메모리  위 사진은 하나의 데이터 패킷이 출발지에서 도착지까지 가는 데 걸리는 시간을 보여주고 있습니다. 메모리는 컴퓨터의 RAM을 의미합니다. 사진에서는 1..
현재 상황@Entity@Getter@Builder@AllArgsConstructor@NoArgsConstructor(access = AccessLevel.PUBLIC)@Table(indexes = @Index(name = "oauth_id", columnList = "oauthId", unique = true))public class Member extends BaseTimeEntity implements UserDetails { @Id private String id; @Column(nullable = false) private String oauthId; @Enumerated(EnumType.STRING) private OAuthProvider oauthPlatform; @Column(nullable..
문제 상황현재 Fixadate의 Signin 과정은 다음과 같습니다.Client(ios)에서 소셜 로그인을 수행한 뒤, 얻은 정보를 Server에게 보냅니다.Server는 받은 정보를 바탕으로 DB에서 해당 회원이 있는지 조회합니다.해당 회원이 DB에 있으면 JWT 토큰을 발급해서 header로 보내고, 없으면 401 exception을 발생시킵니다.이와 같이 진행을 하면 회원이 있는 것과 없는 것을 잘 판단할 수 있지만, 보안 관점에서 보았을 때 매우 위험한 방법입니다. 만약 무차별 대입 공격과 같이 무작위 문자열을 대입하다가 DB에 있는 회원의 oauthId와 일치하게 되어 jwt를 발급하게 되면 한 사람의 일정을 다른 사람이 전부 볼 수 있게 되기 때문에 매우 큰 문제가 될 수 있는 방법입니다. ..
LazyInitializationException이란 객체를 로딩할 때 지연로딩이 적용된 엔티티 또는 컬렉션을 초기화하지 못했을 때 발생하는 런타임 예외입니다. 지연 로딩? 지연로딩이란 자신과 연관된 엔티티를 실제로 사용할 때 연관된 엔티티를 조회하는 것을 말합니다. Team과 Member로 예시를 들면 1:N 관계에서 매번 Team을 불러올 때마다 Member를 가져올 필요가 없다면 이때 지연 로딩을 사용합니다. 배달의 민족 상점을 예시로 들어보겠습니다. 배달의 민족에서 음식을 시키기 위해 카테고리별 상점들을 보고 있을 때 저희는 상점의 정보만 필요합니다. 리뷰를 보고 싶으면 상점을 클릭해서 그 상점의 리뷰를 보죠. 상점과 리뷰는 1:N관계인데 상점을 호출할 때 상점에 달린 리뷰를 가져올 필요가 없는 ..
보호되어 있는 글입니다.
코딩하는_대학생
'Backend' 카테고리의 글 목록