오늘은 어제 공부해봤던 @PreAuthorize와 밀접한 연관이 있는@PostAuthorize에 대해 알아 본 내용을 정리해봤다. @PostAuthorizeJava의 Spring Security 프레임워크에서 제공하는 주석으로, 메서드의 반환 값에 보안 제약 조건을 적용하는 데 사용됩니다. 이 주석을 사용하면 개발자는 메서드 실행 후 평가되는 보안 식을 지정하여 반환된 개체 또는 결과가 지정된 보안 조건을 충족하는지 확인할 수 있습니다. @PostAuthorize작동 방식 주석이 달린 메소드가 @PostAuthorize호출되면 Spring Security는 먼저 메소드 실행을 허용합니다. 메서드 실행 후 에 지정된 보안 식이 @PostAuthorize메서드의 반환 값에 대해 평가됩니다. 표현식이 로 평가..
Backend/Spring
오늘은 SpringSecurity에 대해 배우던 도중filterChain에서authorizeHttpRequests, requestMatchers를 활용하는 것 이외에@PreAuthorize 어노테이션을 활용해 메소드 별로 콤팩트하게 코드를 짜는것에 대해접하게 되었고 해당 어노테이션에 대한 몇가지 개념과 사용방법에 대한 내용을 정리해보았다. 1. @PreAuthorize 작동 방식- @PreAuthorize 주석이 달린 메서드가 호출되면 Spring Security는 호출을 가로채고 지정된 표현식 평가 표현식이 true -> 평가되면 메소드 실행표현식이 false -> 액세스 거부, 보안 예외 발생2. 사용 방법- @PreAuthorize 복잡한 보안을 구현하는 데 사용 가능(역할, 권한) - 표현식..

오늘은 Spring 심화즉, Spring Security에 대해 배우기 이전에 인증과 인가에 대해 개념정립을 해보고자 알아본 내용을 정리해보았다. 1. 인증(Authentication)1-1 정의 - 사용자나 시스템의 신원을 확인하는 프로세스( 시스템이나 리소스에 액세스하려는 엔터티가 우리 서버에서 발급한 Claim을 보유한 사람인지 확인합니다. ) 1-2 인증 방법 - 사용자 이름, 비밀번호, 생체 인식 데이터 또는 토큰과 같은 자격 증명의 유효성을 검사 예시 : 이메일 주소와 비밀번호를 이용해 이메일 계정에 로그인하면 인증 과정을 거치게 됨결과 : 인증에 성공하면 시스템이 사용자를 인식 2. 인가(Authorization) 1-1 정의 - 인증된 사용자가 특정 리소스에 액세스하거나 특정 작업을 수..
미니 프로젝트에서 포스팅 된 피드(게시물)을 조회할 때 각 게시물에 태그 기준으로 필터링 조회하는 기능을 만드는 도중클라이언트에게 받아야할 Query String 변수의 수가 많았다. 여러개의 Request Parameter를 한번에 받을 수 있으면 좋겠다고 생각해 알아보던 중 @ModelAttribute를 사용할 수 있다는 것을 알게됐고 사용해보았다. @ModleAttibute라는 것이 무엇인지 더 알고 싶어져서알아본 내용을 정리해봤다. 1. Request Parameter - 클라이언트에서 서버로 보내지는 데이터# 전송 형태(resource)- Query string - Form-data - Request body - Request header통상적으로 form-data와 query string의 두..
미니 프로젝트에서 포스팅 된 피드(게시물)을 조회할 때 각 게시물에 태그 기준으로 필터링 조회하는기능을 만들고 테스트 하던 과정에서 문제를 겪었다. 조회 기능이기에 GetMapping을 하고필터링에 필요한 태그 정보를 @RequestBody를 통해 받았는데 swagger에서 오류가 발생했다. 어떤 문제인지 감을 잡기 어렵다가 RequestParam으로 받아보니 해결이 되어서 어떤 상황인지 좀 더 알아보고 싶어져서 찾아보았다. 1. GET 요청의 의미 - GET 메소드는 부작용을 일으키지 않고 서버에서 데이터를 검색하기 위한 것( 리소스 표현을 요청하는 데 사용 ) - GET 요청은 서버 상태를 수정해서는 안 된다. - HTTP/1.1 사양에 따르면 GET 요청에는 Body가 포함되어서는 안된다.( ..
1. Transaction(트랜잭션)의 기본개념 만약 데이터베이스의 데이터 수정 도중 예외가 발생된다면DB의 데이터들은 수정 이전 상태로 다시 되돌아가져야안정적인 작업처리가 가능할 것입니다. 이러한여러 작업을 진행하다가 문제가 생겼을 때이전 상태로 롤백하기 위해 사용되는 것 # 더 이상 쪼갤 수 없는 최소 작업 단위를 의미그러므로commit으로 성공 하거나rollback으로 실패 이후 취소되어야 한다.( 각 트랜잭션 속성에 따라 동작 방식 다르게 가능 ) ex) 새로운 데이터 추가 도중 에러 발생 시 해당 추가 작업은 없었던 것처럼 롤백 # 여러 개의 작업에 대한 롤백- 여러 개의 작업을 1개의 트랜잭션 관리앞선 내용과 같이 트랜잭션의 마무리 작업으로는 크게 2가지가 있다. 트랜잭션 커밋: 작업이 마무리..

1. 테스트 및 API 문서화 도구 설정하기Postman vs Swagger# Postman- 장점API 모니터링 : 작성한 API 주기적 실행 예약 가능이에 따른 API의 성공 실패 여부 모니터링 가능 Mock 서버 : 실제 개발을 하지 않고도,지정한 데이터를 응답하는 Mock Server를 만들 수 있어,Frontend 개발자 입장에서 Backend API의 완성 기다리지 않고 테스트 가능 환경변수 기능 : 다양한 환경 변수 지정 가능 -> 여러 환경에서 테스트 가능 팀 간 협업 기능 : 환경 및 문서 공유 위한 다양한 기능들 제공 -> 팀 간 협업 쉬움 - 단점유료 기능 : 유용한 기능 일부 유료필요 리소스 : 생각보다 컴퓨터의 자원을 많이 씀, 사양이 낮은 컴퓨터에서는 돌리기 힘들 수 있음러닝..