// 최상단에 jquery를 추가해주자
@Component가 Spring Boot에 등록되는 과정
·
Spring
@Component는 어떻게 Spring Bean으로 등록될까@Component(혹은 @Service, @Repository 등)를 붙이면 Spring이 알아서 객체를 만들어 관리해 준다. 이 "알아서"의 내부 과정을 SpringApplication.run()부터 싱글톤 캐시에 올라가기까지 단계별로 따라가 본다.본격적으로 들어가기 전에 Bean이 무엇인지부터 짚고 시작하자.1. Bean이란?Spring에서는 객체를 직접 new 해서 쓰지 않는다. MemberService memberService = new MemberService();이런 코드를 개발자 대신 Spring이 수행하고, 생명주기까지 관리한다. 이렇게 Spring 컨테이너가 생성·관리하는 객체를 Bean이라고 부른다. 2. 등록 과정의 시..
Redis와 사용법
·
Spring
set key value get key // 출력값은 value keys * // 모든 키값의 value 출력 del key // key값 삭제 set key value ex 시간 // ex하고 시간(초)를 넣으면 시간초 후 expired ttl key // 해당key값의 expired 남은 시간 출력 삭제되어있으면 -2 , 시간 제한이 없다면 -1 flushall // 모든 값 삭제
OAuth2.0 google, kakao, naver
·
Spring
OAuth2.0사용자의 인증 및 권한을 부여하기 위한 프로토콜이다.다양한 서비스에서 로그인할 때 사용 된다. → 카카오, 네이버, 구글로 로그인하기 와 같은 기능을 구현하는 방식이다.다음은 일반적인 oauth2.0과 카카오의 oauth2.0의 동작 방식을 정의해 놓은 시퀀스 다이어그램이다.대부분의 oauth2.0은 위와 비슷한 방식으로 처리 된다.client구글이나 카카오를 통해 로그인하려는 앱 → 사용자가 사용하는 기기Resource Owner(리소스 소유자)자원을 소유하는 사용자(로그인을 하는 사용자) → 사용자의 구글 이메일이나, 사진 등의 권한을 허용할 수 있음.Authorization Server(인증서버)클라이언트에게 인증을 제공하고 엑세스 토큰을 발급하는 서버이다.Resource Server..
[오르미 백엔드7기] (Spring Security , Cors,CSRF)
·
Spring
Spring SeucirtySpring 웹 애플리케이션에서 인증 과 인가를 관리하는 보안 프레임워크이다.Filter인증 토큰을 검증하여 사용자 신원을 확인.톰켓에서 dispatcher servlet으로 전달하기 전에 실행요청과 응답에 대해 특정 작업을 수행 후 원래 요청을 서블릿이나 리소스로 전달하는 역할.인증, 로깅, 보안 검사 등에 사용된다.예시 : JWT 토큰 파싱 및 검증.FilterChainProxy: Spring Security에서 필터 체인을 관리하는 클래스SecurityFilterChain 인터페이스를 통해 요청을 필터링할 필터 목록을 제공.Servlet의 기본 Filter 인터페이스를 기반으로 동작.Interceptor요청한 사용자의 권한(Role)을 검증하여 특정 리소스 접근 제한.Di..
[오르미 백엔드7기](Spring 프록시객체, 지연로딩 ,즉시로딩, 영속성전이, N+1문제)
·
Spring
프록시 객체ㅇ지연 로딩데이터베이스에서 필요한 데이터만을 필요 시점에 로딩함으로써 애플리케이션의 성능을 최적화하는 데 큰 기여한다.지연 로딩의 핵심 개념은 객체가 참조하고 있는 다른 객체나 컬렉션의 데이터를 처음부터 메모리에 로딩하지 않고, 해당 데이터에 실제로 접근하려는 시점에 로딩을 수행하는 것→ 즉 커밋할 때 한번에 로드할 수 있도록 하는 것지연 로딩의 동작 방식은 **프록시 패턴(Proxy Pattern)**을 기반으로 함프록시 객체는 엔티티의 메타데이터와 식발자를 보유하여 엔티티 접근 시도가 있을 때 DB세션이 열려 있는지 확인하고 데이터베이스 쿼리를 실행하여 데이터를 로드한다. 데이터베이스 세션이 닫힌 상태에서 프록시 객체에 접근하면 LazyInitializationException 발생.지연로..
[오르미 백엔드 7기] (Spring Entity 개념, 연관관계, 공통속성정의)
·
Spring
Entity엔티티(Entity)는 데이터베이스의 특정 테이블을 자바 클래스 형태로 표현한 것create table boards( board_id bigint not null primary key auto_increment, name varchar(20) not null);위의 sql문을 java의 Spring으로 표현하면 다음과 같다@Getter@Setter@Entity@Table(name = "boards")public class Board { private Long boardId; private String name; }@Id기본키를 정의하는 필드를 사용할 때 선언.기본 키 필드는 보통 @GeneratedValue을 통해 자동으로 생성.@Getter@Sette..