본문 바로가기

분류 전체보기

(81)
로드밸런서와 로드밸런싱 기법 현대의 모든 정보들은 인터넷을 통해 퍼져있다. 이는 트래픽의 증가로 이어졌고, 그 결과 아무리 뛰어난 서버라도 엄청난 양의 트래픽을 감당해내지는 못한다. 이에 기업들은 여러대의 서버를 두고, 효과적으로 데이터를 분산한다. 그리고 이렇게 쏟아지는 트래픽을 여러 대의 서버에 분산시켜주는 것이 로드밸런싱이다.       로드밸런서란?     앞서 말한 로드밸런싱을 이행시켜주는 것으로, 서버에 가해지는 부하를 분산시켜주는 기술의 통칭이다. 클라이언트와 서버풀 사이에 위치하며 한대의 서버에 트래픽이 집중되지 않도록 트래픽을 관리해준다. 그리고 이는 서버를 여러대 두고 서비스를 제공하는 분산 처리 시스템에서 사용되어진다. 학생때까지 공부를 하며 서버를 구축했을때는 단일 서버에도 그러한 정상적으로 작동했다. 하지만 ..
[Spring Data JPA] 페이지네이션 게시판을 생각해보자. 정말 수많은 데이터가 있을 것이다. 매번 이 모든 데이터를 호출하기는 성능적으로 가능할 수가 없다. 그래서 우리는 페이지에 맞게 일정 수에 해당하는 데이터만 가져온다. 그게 페이징이다.이 페이징을 JPA로 어떻게 하는지 보고, 그것을 Spring Data JPA에서 얼마나 더 간단히 하는지 보자.    Pageable @GetMapping("page")public String Page(Pageable pageable){ ''' 코드'''}  먼저 컨트롤러에서 Pageable 인터페이스 타입을 파라미터로 받으면 된다.     Pageable 인터페이스를 보자.밑을 더 내려보면 getPageNumber(); getPageSize(); 와 같이 페이징에 관련된 기능과 정렬을 위한 기능들이..
[Spring Security] Form Login 과 UserDetails 2024.07.23 - [Spring] - [Spring Security] Spring Security Configuration 와 BCrypt 암호화 메서드 [Spring Security] Spring Security Configuration 와 BCrypt 암호화 메서드이전에 JWT가 무엇인지 알고, 인가 인증에 대해서 글을 기록해뒀다.이번에는, 스프링에서 보안을 위해 쓰이는 Spring Security에 대해서 알아보고, 이를 어떻게 사용해볼 수 있는지 알아보겠다.  2024jinnocode.tistory.com  이전 포스팅에서 form login에 대해서 간략하게 설명했다.이번에 세부적으로 한번 알아보자.     Form Login이 뭐죠? 간단하게 말해서 Form Login 이란 스프링 시큐리..
[Spring Security] Spring Security Configuration 와 BCrypt 암호화 메서드 이전에 JWT가 무엇인지 알고, 인가 인증에 대해서 글을 기록해뒀다.이번에는, 스프링에서 보안을 위해 쓰이는 Spring Security에 대해서 알아보고, 이를 어떻게 사용해볼 수 있는지 알아보겠다.  2024.07.17 - [Spring] - [Spring] 인증, 인가 그리고 JWT [Spring] 인증, 인가 그리고 JWTSpring security를 이용하여  프로젝트에 보안 시스템을 구성할때 내가 JWT에 대한 전문지식이 부족한 것을 깨달았다. 그래서 포스팅을 해보며, JWT와 Spring security에 대해서 확실한 지식을 쌓고자 한jinnocode.tistory.com    Spring Seucurity란?       Spring Security는 인증, 권한 관리 그리고 데이터 보호 ..
[Spring] 지연로딩 vs 즉시로딩 내가 이전에 페치 조인에 대해 포스팅 한 적이 있다.페치 조인을 사용하는 이유는 지연로딩 환경에서 N+1 문제를 없애기 위해서라고 말했다. 이번에 공부를하면서 지연로딩과 즉시로딩이 뭔지 다시 한번 확실히 깨닫게 되었지만, 인간은 망각의 동물. 잊지 않기 위해 기록하자.(면접에 나올 수도)   2024.07.15 - [Spring] - [Spring] 컬렉션 fetch join(페치 조인) 을 이용한 성능 최적화 및 페이징 2024.07.14 - [Spring] - [Spring] JPA 에서 fetch join(페치 조인)이란    지연로딩이란?이전에 프로젝트를 하다가 지연로딩을 사용하다가 일정 부분이 되지 않자 즉시로딩으로 바꿨던 기억이 난다.(페치 조인을 모르던 당시) 지연로딩이 뭔지 다시 한번 알아..
[Spring JPA] JPA 하이버네이트에서의 프록시 프록시 => 가짜객체 라는 것은 이미 스프링을 학습하면서 알게 되었고, 어떠한 장점들이 있는지는 기억이 난다.JPA 하이버네이트에서도 프록시를 사용하고 있다.  사실 프록시 객체를 쓰는 이유는 지연 로딩을 사용하기 위해서라고 볼 수 있다. 하지만 이번에는 프록시가 뭔지 한번 더 알아보고 하이버네이트에서는 어떻게 프록시 객체를 사용하는지만을 알아 보도록 하자.     이러한 객체가 있을떄, Member를 참조할 때 Team도 함께 가져와야 하는것일까?? 실제로, 비즈니스 로직에 따라 다른데, Team을 필요로 한다면 당연히 가져와야 한다. 하지만, 필요로 하지 않는데 계속 가져오지 않는 것은 낭비로 이어진다. JPA 에서는 이러한 낭비를 줄이기 위해 프록시 개념을 도입한다.         프록시란?프록시는..
[Spring JPA] JPA에서 OSIV와 커맨드,쿼리의 분리 이번 포스팅에서는 OSIV란 무엇인지 알아보고, 장단점을 이용한 성능에 도움을 줄 방법을 정리해 봐야곘다.      OSIV란?OSIV(Open Session In View)란 말그대로 세션 뷰까지 열어두는 기능이다. 여기서 세션은 하이버네이트에서의 세션 즉, 영속성 컨텍스트를 의미한다. 이렇게 되면 엔티티를 영속성 컨텍스트에서 사용 가능하고, 우리가 앞서 봤던 것처럼 지연 로딩을 사용할 수 있게 된다. JPA에서는 OEIV(Open EntityManager In View) 라 부르고, 하이버네이트에서는 OSIV라고 부르는데, 그냥 OSIV라고 부르면 된다.    OSIV가 활성화 됐을 때의 그림을 보자.원래 영속성 컨텍스트의 생존 범위는 트랜잭션 내이다. 하지만 우리가 OSIV을 활성화 시킨다면, 영속..
[Spring] 인증, 인가 그리고 JWT Spring security를 이용하여  프로젝트에 보안 시스템을 구성할때 내가 JWT에 대한 전문지식이 부족한 것을 깨달았다. 그래서 포스팅을 해보며, JWT와 Spring security에 대해서 확실한 지식을 쌓고자 한다.  먼저, 우리는 사용자의 인증 및 인가를 하기 위해 세션 또는 토큰을 사용한다. 그 전에 인증과 인가의 차이점을 짚고 넘어가보자.        인증과 인가의 차이비슷하지만 아예 다른 두 말. 인증 : 어떤 사실 또는 어떤 문서가 진짜인지 증명하는 과정을 가리키는 용어인가 :  어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일 쉽게 말하여, 인증은 로그인을 하는 과정이라고 생각한다. 네이버 메일에 로그인 하려고..