본문 바로가기

백엔드62

Spring Batch 아키텍처 0. spring batch 구조를 보자 JOBLAUNCER는 COMPONENT . (JOB을 실행시킨다) JOB은 실제 진행하는 배치 작업을 의미한다. STEP은 배치 작업의 단계 . 1개의 JOB에, 여러가지 STEP 단계를 지닐 수 있다. 테이블을 읽는 ITEM READER -> ITEMPROCESSOR -> ITEMWRITER 등의 구성을 가질 수 있다. 사용자의 코드와 구성인 application -> job등을 포함하는 core -> 외부와 작용하는 infrastrcture layer (step) (3 Layer) 1. JOB (일) 전체 배치 과정을 캡슐화 한 것. (내부 과정과 내부 CLASS등을 가린다) 주로 CLASS 형태로 JOB을 구현하고. -> 내부 INSTACNE나 EXECUTI.. 2024. 1. 14.
배치 프로그램이란? / Spring Batch를 쓰는 이유 주로, 대용량 데이터를, 일괄적으로 처리한다. 데이터를 특정 일자에 재 작업, 혹은 고의 적인 지연시 주로 사용한다. 리소스를, 트래픽이 적은 시간에 처리하는 역할ㄷ ㅡㅇ을 한다. 실제 프로그램 ETL -> DATA WAREHOUSE에 저장 *DATA WAREHOUSE란, 각 주제 별로 DATA를 분류하는 부분 ( 정보처리기사 참고) 머신러닝 모델 ( 동기 중 왕병권형이 모델을 만들때 ) -> DATA 전 처리 , 변환 등을 배치 프로그램을 사용한다. 1. MESSAGE 발송. 많은 USER들에게 전송할때, DB의 USER LIST를 기반으로 변환 , 발송을 진행한다. 2. DATA MIGRATION . 데이터를 APPLICATION에서 APPLICATION 혹은 DB에서 DB로 이동할때 사용 DELET.. 2024. 1. 14.
프로젝트 진행 과정 1. 목표를 구체화 한다 ex : "코로나 줄서기 서비스 " 2. 해당 목표의 이유를 설정한다 . ex: 왜 코로나 줄서기가 필요한가 문제는 무엇인가. 사용자 입장에선 문제가 무엇인가. 다른 사용자 그룹 B의 문제는 무엇인가. 2-1 니즈 분석 : ex) 서비스 목표는 온라인으로 입장 현황 알려주기 니즈 : 사용자 A에겐 크지 않다 . B에겐 크다 . -> 프로젝트 진행 이유가 충분하다. 3. 요구사항 정리 : 3- 1 : 기능 정리 어떤 기능을 구현할지를 정리한다. 3-2 : 요구사항 : USE CASE 주로 : 다이어그램으로 어떤 기능을 누가 쓸지 정리한다. 3-3 : 요구사항(도메인) 설계 : 주로 ERD를 설계한다. 3-4 : API 요청문서 설계 : API 요청을 정리하고 설계한다. 4 : 실제.. 2024. 1. 12.
Spring Security Config spring security의 특정 filter를 disable 하는 방법. HTTPSECURITY.HTTPBASIC().DISABLE() **허나.. SPRING SECURITY 6부터 해당 방식도 변경되었다. 이는 spring security 홈페이지를 참고하자. 로그인 loginpage는 root 경로의 /login, 기본 성공시 /로 이동, 해당 로그인은 모두에게 허용된다는 의미를 지닌다. 로그아웃 http .logout((logout) -> logout.deleteCookies("remove") .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .logoutSuccessUrl("/") ); 로그아웃 요청을 받으면, 해당 페이지로 이동한다... 2024. 1. 11.
Spring Security의 핵심 , SECURITY Filter SECURITY FILTER란? 개발자가 별도로 설정 가능한, 스프링의 핵심인 확장성을 적용시키는 개념이다. 이와 같이, 모든 FITLER들은 FILTER를 구현해야한다. 들어오고, 나오는 것을 FILTERING하는 것을 SECURITY FILTER라고 한다. 모든 FILTER의 핵심 기능은 doFILTER안에 있다. REQUEST -> |필터| -> CONTROLLER -> |필터| -> RESPONSE와 같은 구조 해당 과정을 디버깅하면, WEBPROXYFILTER부터 기타 등등 FILTER(총 13개가 나왔다) 들이 모두 작동. FILTER와 FILTER간에, 사용자 설정 FILTER를 삽입할 수 있다. 필터의 예시들을 보자 1. SECURITYCONTEXTPERSISTENCEFILTER는 , 보통.. 2024. 1. 11.
Spring Security 구조와 내부 내부 구조란 ? SecurityContextHolder 안에, SecurityContext 안에 Authentication 안에 Principal과 GrantAuthority가 있는 구조 SecurityContextHolder는 SecurityContext를 제공, 해당 메소드를 지원 . SecurityContext는 접근 주체와 인증에 대한 정보, 즉 인증을 담고 있다 . Authentication에는 인증 이후 해당 인증을 저장. Principal은 User의 정보를 제공한다. 대부분 Principal로 userdetails를 반환 GrantAuthority는 User의 Role을 붙인다. 주로 ROLE_USER,ROLE_ADMIN등을 사용. 인가에서 사용한다 . 2개의 권한을 동시에 가질 수 있다... 2024. 1. 11.
Configuration으로 기타 설정 password encoder를 bean으로 등록하는 config **spring security 6에 오면서 사용불가화된 어노테이션ㅇ ㅣ굉장히 많다. 위는 , 그 예시중 하나이다. Spring security 6 부터는 아래 사진대로 작성하자. view controller의 설정. /home으로 가는것을 index로 명명하여 , 명명상의 오류가 발생하지 않게 유도 application properties의 jpa = true를 통하여 이를 해결할 수도 있다. (jpaauditing을 가능하게 하는 config 이다) 2024. 1. 10.
Thymeleaf 상세부 서버사이드 template engine . clinet가 동적으로 그리는 방식이 아니고, server가 모든 html을 다 구해서 이미 template(앞에서 배운 듯이, 여러가지 식을 다 작성해놓고 , 정리해놓고 이를 직접 구현해서 해당 template에 넣고 전달. ) 바로 브라우저 확인 가능. 1. 변수 값 불러오기 ex) 당신의 이름은 홍길동(이는 기본 값이 된다) 가 된다. 2. 변수 값 지정도 가능하다 와 같이 사용할 수도 있다. ++ 타임리프에서도 조건문을 제공한다 age가 10 미만일시 보입니다 layout에 따라 분할될때는 를 활용하여 분리한다. 타임리프와 spring security의 호환성을 보여주는 부분. 인증과 인가의 상태를 보고 보여줄 페이지를 다르게 할 수 있음. role-ba.. 2024. 1. 8.
SPRING SECURITY란? 보안에 활용되는 보안 프레임워크 . 유일무이한 선택지 EX) 어떠한 사용자라도 괜찮은지, 아닌지 LOGIN인이랑, 사실 사용자 인증의 역할을 한다. (네트워크 보안 교과목에서 수강하였다) 이에 추가적으로, 운영자와 사용자의 ROLE을 분할한다 (ROLE-BASED-ACCESS라고 볼 수 있다) 우리가 필요로하는 어떤 보안 절차라도 사용이 가능하다 . 스프링의 가장 유연하고 쉽게 구현된 기능은 인증과, 인가이다. 인증 (Authentication) 인증은 사용자가 누구운지 확인하는 절차이다. ex) 로그인 사용자의 인증을 주로 인증이라고 호칭한다. *주의해야할 핵심 기능 -> 로그인을 한번 하고 나면, 해당 user가 user가 맞음을 계속 인증받아야 한다. case 1 ) 모든 request시마다, id.. 2024. 1. 8.
JPA TEST @DATAJPATEST가 지원해준다. QUERY METHOD를 주로 사용한다. SPRING DATA JPA에서 크게 활용한다. 사실 CRUD는 굳이 TEST를 하지 않아도 되긴 한다 (넣어지기 때문에) 그래도 한번 TEST해보자 TESTENTITYMANAGER -> TEST용 ENTITYMANAGER 사용 가능 AUTOCONFIGURETESTDATABASE - > TEST용 인메모리 DB를 다른환경으로 바꾸고자 할 때 @JDBCTEST -> DATASOURCE만을 TEST @DATAJDBCTEST -> DATASOURCE+ ETC 실제 구현을 repository에서 해주기 때문에, 일단 해당 파트는 구현하진 않고 후에 만약에 내가 추가적으로 datarepository에서 구현을 하였거나 다른 경우가 존재.. 2024. 1. 7.