본문 바로가기

spring

(8)
[Spring Data JPA] 페이지네이션 게시판을 생각해보자. 정말 수많은 데이터가 있을 것이다. 매번 이 모든 데이터를 호출하기는 성능적으로 가능할 수가 없다. 그래서 우리는 페이지에 맞게 일정 수에 해당하는 데이터만 가져온다. 그게 페이징이다.이 페이징을 JPA로 어떻게 하는지 보고, 그것을 Spring Data JPA에서 얼마나 더 간단히 하는지 보자.    Pageable @GetMapping("page")public String Page(Pageable pageable){ ''' 코드'''}  먼저 컨트롤러에서 Pageable 인터페이스 타입을 파라미터로 받으면 된다.     Pageable 인터페이스를 보자.밑을 더 내려보면 getPageNumber(); getPageSize(); 와 같이 페이징에 관련된 기능과 정렬을 위한 기능들이..
[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] 인증, 인가 그리고 JWT Spring security를 이용하여  프로젝트에 보안 시스템을 구성할때 내가 JWT에 대한 전문지식이 부족한 것을 깨달았다. 그래서 포스팅을 해보며, JWT와 Spring security에 대해서 확실한 지식을 쌓고자 한다.  먼저, 우리는 사용자의 인증 및 인가를 하기 위해 세션 또는 토큰을 사용한다. 그 전에 인증과 인가의 차이점을 짚고 넘어가보자.        인증과 인가의 차이비슷하지만 아예 다른 두 말. 인증 : 어떤 사실 또는 어떤 문서가 진짜인지 증명하는 과정을 가리키는 용어인가 :  어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일 쉽게 말하여, 인증은 로그인을 하는 과정이라고 생각한다. 네이버 메일에 로그인 하려고..
컴포넌트 스캔 이전에 까지는 스프링 빈을 등록할때 @Bean을 코드에 작성하여 진행하였다. 이렇게 등록하는 것을 수동으로 하나하나씩 하기때문에, 수동 빈 등록이라고 부른다. 누가봐도 귀찮은 과정이기 때문에, 자동적으로 빈을 등록하는 과정에 대해서 알아 보자. 💻 @Component & @ComponentScan @Component 어노테이션을 쓰면 이 어노테이션이 붙은 클래스가 스프링 빈의 등록대상이 된다. 사용방법은 간단하게 스프링 빈으로 등록을 원하는 클래스 상단에 해당 어노테이션을 붙여주면 된다. @Component public class MemomryMemberRepository implements MemberRepository() @ComponentScan 어노테이션을 붙여주면, 이름 그대로 @Componen..
싱글톤 컨테이너 이전에 우리는 스프링 컨테이너의 존재와 필요성에 대해서 느꼈다. 이러한 스프링 컨테이너는 싱글톤 패턴의 형태로 되어 있는데, 싱글톤은 무엇인지 그리고, 싱글톤 컨테이너는 어떻게 구성되어 있는지 알아보자. 💻 싱글톤 패턴 먼저, 싱글톤 패턴이 무엇인지부터 알아보자. 예전 학부 수업중 디자인 패턴을 몇개 알아본 적이 있는데, 그 중에 싱글톤 패턴에 대해서도 다뤘었다. 그 당시는 어려워서 자세한 구현 방법은 제대로 알지 못하였고, 객체를 하나만 생성한다는 것만 알았다. 싱글톤 패턴이란 클래스의 인스턴스가 딱 1개만 생성 되는 것을 보장하는 디자인 패턴이다. 이 싱글톤 디자인 패턴을 따르는 것들은 객체 인스턴스가 2개 이상 생성되지 못한다. 이렇게 구성하는 방식은 꽤나 간단하다. public class Sing..
스프링 빈과 스프링 컨테이너 저번 포스팅에서는 DI(Dependency Injection)에 대해서 알아 보았다. 이번에는 스프링에서 DI를 통해 의존관계를 주입해주는 이 스프링 컨테이너에 대해서 알아보자. 💻 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 먼저, 스프링 컨테이너가 생성되는 코드를 보자. 여기서 AoolicationContext라는 인터페이스를 스프링 컨테이너라고 한다. 위 코드는 AppConfig라는 클래스에 속해있는 스프링 빈들을 스프링 컨테이너에서는 스프링 빈들의 생성,삭제,관리등을 담당한다. 스프링 빈에 대해서 간단하게 짚고 넘어가자면, 하나의 자바 객체이다. 우..
DI - 의존관계 주입 이번 포스팅에서는 스프링에서 중요한 DI의 개념에 대해서 적어보도록 하겠다. DI - 의존관계 주입 DI(Dependency Injection)을 번역하면 의존관계 주입 혹은 의존성 주입으로 부른다. 허나, 의존이 하나의 관계를 띄고 있고, 그 관계가 상당히 중요한 역할을 하므로 의존관계라고 부르도록 하겠다. 먼저,의존관계 주입을 알기 위해서는 의존관계가 무엇인지 알아봐야 한다. ■ 의존관계란? A는 B와 의존관계다. 라고 말한다면, 의존 대상 B가 변할 때, 그것이 A에 영향을 미친다. 예를 들어, 건축가가 있다고 치자. 그 건축가는 설계도를 보며 건물을 짓는다. 허나, 중간에 설계도가 변경이 되면 건축가는 다른 모양으로 건물을 짓게 될것이다. 설계도의 변화가 건축가에게 영향을 미쳤다. 이를 통해 건축..