security config 흐름 정리, 로그아웃, 비밀번호 암호화, aop 어노테이션, spring 3대 개념

두부링·2025년 2월 21일

Spring

목록 보기
7/24

security config 흐름 정리

config 처리하는 파트부분 중심으로 보기

  • security가 있기에 sec를 사용할 수 있다.

  • admin, staff 로그인, 로그인 하지 않아도 접속 가능한 페이지

  • 로그인 되지 않았을 때, 리다일렉트 기능

  • login form 과 securityconfig를 같게 설정

로그인 시 설정된 파라미터명과 응답 파라미터를 일치시켜야 한다.

  • 인덱스에서 로그인 폼으로 바로 접속 시의 /user/loginform 이동
  • AuthsuccessHandler 는 필요시 만들어서 원래 접속한 페이지로 이동시킴

로그아웃

  • Handler 로 자바의 작업이 필요할 때
  • URL: 단순히 URL 이동이면

    로그인과 로그아웃 처리는 config 가 대신 처리해준다.

암호화된 비밀번호 비교하기(연습)

  • 결과

aop(Aspect Oriented Programming)

  • 서비스가 실행되는 시간을 알고싶을 때는 시작 시간과 종료 시간을 계산
  • 런타임 시에 클래스의 모양이 변경된다.
  • 런타임 시에 원하는 곳에 코드를 넣어준다.
  • bean으로 관리되는 객체에서만으로 적용이 된다.

실행과정

  1. spring 실행 시 @SpringBootApplication 객체 생성 및 하위 요소 스캔

    1-1. 하위 요소가 스캔이 되니 Aop(관여)와 Util(당함)이 bean 이 됨

  2. 관여와 당함 발생

  • @Aspect 덕분에 @component가 붙은 writeLetter 메서드에 변형이 발생했다.
  • 실행 결과

핵심 비즈니스 로직에 영향이 안 가면서 메소드를 추가할 수 있다.

Aop 어노테이션

@Aspect //관심사 @Aspect 어노테이션을 이용해서 만든다 .
@Before("execution(void write*())") //이런 모양의 메서드가 실행되기 직전
@After("execution(void write*())")  //이런 모양의 메서드가 실행된 이후

해당 키워드가 들어가면 메소드 호출이 안되게끔

  1. Aop 가 관여할 메서드를 생성
  2. 해당 메소드에서 해당 키워드 포함 시 원래 메서드 실행 안되게 함
  • joinpoint로 매개변수를 활용할 수 있다.

사용한 메서드

joinpoint.getArgs(); : 매개변수에 전달한 데이터를 배열에 담을 수 있다.
instanceof : 찾는 type 을 확인
contains : 찾는 키워드 확인

Aop 어노테이션

@Around("execution(void send*(..))") : 이전 이후에 실행하기 

Spring 3대 개념

  1. DI : Dependency Injection : 의존성 주입
  2. IOC : Inversion of Control : 제어 역전
  3. AOP

Example(배운 거 다 때려박는..프로젝트...)

  • 이식순서: dto > service > config > controller

table

-- 가입된 회원정보를 저장할 테이블
CREATE TABLE users(
num NUMBER PRIMARY KEY,
userName VARCHAR2(100) UNIQUE,
password VARCHAR2(100) NOT NULL,
email VARCHAR2(100) UNIQUE,
profileImage VARCHAR2(100),
role VARCHAR2(10) DEFAULT 'USER' CHECK (role IN ('USER','STAFF','ADMIN')),
createdAt DATE DEFAULT SYSDATE,
updatedAt DATE DEFAULT SYSDATE
);

-- 회원번호를 얻어낼 시퀀스
CREATE SEQUENCE users_seq;

보완

후기 테이블 어려웠던 개념 막혔던 개념&방안 보안점 추우계획
기능 xxxxx

테이블 연관관계, 칼럼 사용....., 세세하게.....
능동적으로......

  • restful api : 안드로이드 앱이나 ios 앱에서 받은 데이터는 restful api에서 받은 데이터이다.
  • restful api와 react를 배우면 프론트엔드와 백엔드가 완벽하게 분리된다.

<검색 한번 해보슈....>
restful api
spa: 싱글 페이지 어플리케이션
jwt
jpa

어노테이션 리마인드

@PostConstruct //spring frameowork 가 준비된 이후에 실행이 된다.
profile
하이하잉

0개의 댓글