분류 전체보기

Spring

Spring Security (3)

Spring Security 란? Spring Security는 일반적인 공격에 대한 인증 , 권한 부여 및 보호 기능을 제공하는 프레임워크이다 Filter Chain FilterChainProxy 를 통해 상세 로직을 구현하고 있다. Spring Security 필터 구조 는 아래와 같다. UsernamePasswordAuthenticationFilter -> UsernamePasswordAuthenticationFilter -> AuthentucationManager Security 대신 Filter 처리 해보기 @Slf4j(topic = "AuthFilter") @RequiredArgsConstructor @Component @Order(2) public class AuthFilter impleme..

Spring

JWT

JWT 란? JSON 포맷을 이용하여 사용자에 대한 속정을 저장하는 Claim 기반의 Web Token 이다. 일반적으로 쿠키 저장소를 사용하여 JWT 를 저장한다. ( Header ) 세션ID 로 해도 되는데 왜 JWT? 먼저 세션 ID 로 관리할때 만약 서버를 여러대 두고 사용하면 세션을 관리할때 서로 서버의 세션들이 있을텐데 어떻게 관리할까... - 해결 방법 : Sticky Session : Client 마다 요청 Server 고정. 또는 세션 저장소 생성하여 모든 세션을 저장. 하지만 JWT 사용하면 로그인 정보를 Server 에 저장하지 않고 Client 에 로그인 정보를 JWT 암호화 저장 -> JWT 통해 인증 / 인가 모든 서버에서 동일한 Secret Key 소유 Secret Key 통한..

WIL

WIL ( 6.26 )

WIL 1주일동안 배운것과 앞으로 할일 Spring 개념 항해99 에서 강의를 지급해서 나는 그 강의 듣고 해당 개념들을 정리해서 올렸다. 알고 있는 내용도 있었지만 모르는 내용도 더 많아 다시 한번 개념들을 공부하고 다시 잡았다. 아래의 블로그 주소에 정리 하였다. https://domae.tistory.com/86 생각하여 정리한 개념들.. WS ? WAS? WS (Web Server) : 데이터 수정없이 HTML 파일들만 주는것을 정적이라고 칭하고 WS 가 그 역할을 맡아서 request 가 들어오면 response 를 HTML 파일을 주게된다. - 정적 WAS (Web Application Server) : 데이터 domae.tistory.com 기술 매니저님과의 대화 기술 매니저님과 대화해보니 ..

Spring

@Configuration 쓰고 안쓰고의 차이점

@Configuration 어노테이션 @Configuration 어노테이션을 안에 보면 @Component 컴포넌트가 있다 즉, @SpringBootApplication 이 실행될때 @Configuration 이 붙은 클래스에 @Bean 매서드들을 바로 IoC컨테이너에 등록이 시켜준다. 해당 @Bean 매서드를 호출하게 되면 IoC 에서 불러오게 된다. 만약 안쓸경우에는 @Bean 매서드를 처음 호출할때 IoC 컨테이너에 등록시키게 되고 다음부터는 IoC 컨테이너에 객체를 가져온다.

TIL

생각하여 정리한 개념들..

WS ? WAS? WS (Web Server) : 데이터 수정없이 HTML 파일들만 주는것을 정적이라고 칭하고 WS 가 그 역할을 맡아서 request 가 들어오면 response 를 HTML 파일을 주게된다. - 정적 WAS (Web Application Server) : 데이터를 수정하고 데이터를 주면 WAS 가 그 역할을 맡아서 request 가 들어오면 response 에 데이터를 담아서 주게 된다. - 동적 이를 통해 Apache Tomcat -> WS 와 WAS 를 합친것을 알수 있다. 대표적인 예 Nginx, Apach HTTP Server ( 분산 처리 ) RESTful API 란? Client Server 와 통신할려고 만든 방법을 정의한 것입니다. HTTP 방식이 있는데 GET, POS..

TIL

DB 연결 오류...

어떤 문제가 생겼나요? spring 에서 application 으로 DB 연결하는 Driver 과 계정을 입력하고 연결하는데 계속 오류가 발생하였다... 전에 하였던 프로젝트들은 전부 잘 되고 있는 코드 였는데 갑자기 이런 오류를 뽑내면서 연결이 안되었다.. 전이랑 다른점은 DB 를 다른 컴퓨터에 있는 DB 에 연결할려고 해서 포트포워딩까지 설정하면서 하였다. 하지만 Sptring 에서만 안됬지 HeidiSQL 에서는 잘 연결이 되었다.. Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.co..

Spring

Spring Retry

Spring Retry 가 무엇일까? 다른 서버에게 API 호출 하였을때 1번의 실패로 서비스의 로직을 모두 실패하는것은 큰 리소스 낭비가 될수 있다. 틍정 API 호출 실패 상황에서는 최대 3번의 호출 재시도를 하는 등을 많이 쓰는것으로 알고 있다. 왜 재 시도를 하는지 예시로 들어보자면 일시적장애로 Read Timeout 이나 api throttling 문제가 재시도를 해볼만한 상황이다. 즉, 실패할경우 재시도를 몇번 하고 몇초 간격으로 다시 request 를 보낼수 있는지 다 실패할 경우에도 처리가 가능하게 지원해주는것이 Spring Retry 이다. Spring Retry Template 나는 어노테이션을 쓰면서 배우고 있지만 Template 를 통해 똑같이 또는 설정하여 만들수 있다. 자세한건 ..

Spring

JPA Dirty Checking

Dirty Checking이란? 코드에서 Entity의 값만 변경하였는데 DB 업데이트 쿼리가 발생하는것을 Dirty Checking 이라고 한다. Dirty 란 상태의 변화가 생긴 정도를 의미한다. JPA 에서 트랜잭션이 끝나는 시점에 변화가 있는 모든 entity 객체를 데이터 베이스에 자동으로 반영해준다. Dirty Checking 내부 구조 위의 사진처럼 JPA 는 commit 하는 순간 내부적으로 flush 가 호출되고 이때 Entity 와 스냅샷을 비교 한다. 만약 비교하여 변경된 값이 있으면 update 쿼리를 쓰기 지연 SQL에 넣어둔다. 트랜잭션이 다 끝나면 commit() 를 하여 DB 에 저장을 한다. 주의사항 당연한 소리이지만 Dirty Checking 은 Entity 에만 적용이되..

TIL

인텔리제이 환경변수 오류

어떤 문제가 생겼나요? 카카오맵 API 를 가져와서 확인하는 테스트 코드를 작성하다 계속 DB 와 연결이 안된다고 오류코드를 내뱉기 시작한다. 3일동안 이 문제를 계속 붙잡고 있었다... java.sql.SQLException: !AuthenticationProvider.BadAuthenticationPlugin! 어떤 시도를 하였나요? application.yaml DB 문제인가? 아니면 어떤 문제인지 파악을 하기위해 구글링과 ChatGPT 를 통해 계속 물어보았다. TestCode 에 문제가 있는건지 확인을 하였다. 어떻게 해결했나요? 3일째 되는날 아.. 이거해보고 안되면 멘탈 나갈것 같다 하면서 시도를 해본것이 application.yaml 에 보안을 위해 인텔리제이 환경변수로 값을 저장하고 ap..

TIL

DB 예약어 Table 이름

어떤 문제가 생겼나요? Test 코드로 Jpa Repository 에 접근하여 CRUD 확인 하는 코드를 작성중 에러 발생. org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Syntax error in SQL statement "insert into [*]user (name,nickname,user_pid) values (?,?,default)"; expected "identifier"; SQL statement: insert into user (name,nickname,user_pid) values (?,?,default) [42001-214]] [insert into user (na..

Domae_
'분류 전체보기' 카테고리의 글 목록 (10 Page)