Spring Boot

보안과 원활한 인증 방법이 중요한 시대에 OAuth 2 및 OpenID Connect와 같은 프로토콜이 산업 표준으로 자리잡았다. 이 장에서는 이러한 프로토콜의 복잡성을 해체하고, 그들의 메커니즘, 이점, 그리고 잠재적인 위험 요소에 대해 설명한다.액세스 토큰의 목적을 이해한다.OAuth 2 시스템에서 토큰이 발급되고 검증되는 방법을 파악한다.OAuth 2 / OpenID Connect 시스템에 관여하는 역할을 알아낸다. 여러가지 도구를 사용하는 대규모 조직에서 근무한다고 가정한다. 예를 들어, 버그 추적 앱, 업무 문서화 앱, 시간 등록 앱 등을 매일 사용해야 한다. 각 앱에 접근하려면 매번 인증을 해야 한다. 이러한 앱에 대해 서로 다른 자격 증명을 사용하게 되는데. 이는 사용자에게 번거로움을 주고 ..
·Spring Boot
Kafka는 Apache Software Foundation에서 개발한 분산 스트리밍 플랫폼으로, 실시간 데이터 스트리밍을 처리하고 관리하기 위해 설계되었습니다. Kafka는 데이터 처리, 전송, 저장을 효율적으로 수행하며, 주로 다음과 같은 용도로 사용됩니다:주요 특징메시지 브로커 역할Kafka는 대량의 데이터를 생산자(producer)로부터 소비자(consumer)에게 전달하는 메시지 브로커로 작동합니다. 데이터는 **토픽(topic)**이라는 논리적 단위로 분류되어 전송됩니다.분산 시스템Kafka는 여러 서버(브로커)로 구성된 클러스터에서 실행되며, 고가용성과 확장성이 뛰어납니다.내구성과 데이터 보존데이터를 디스크에 영구 저장할 수 있어 필요할 때 다시 읽을 수 있습니다.고성능초당 수백만 건의 메시..
(위키북스) Spring Security in Action[ ▶ CORS ]기본적으로 브라우저는 사이트가 로드된 도메인 이외의 도메인에 대한 요청은 허용하지 않는다. 그렇기에 CORS (교차 출처 리소스 공유) 로 정책을 완화하여 일부 조건에서 서로 다른 출처 간의 요청을 허용하게 한다.특히 대다수의 프론트엔드와 백엔드는 별도의 애플리케이션으로 구성되기 때문에 더욱 중요한 기능이다.  [ ▷ CORS 작동 방식 ]애플리케이션이 두 개의 서로 다른 도메인 간에 호출하는 것은 모두 금지된다. 하지만 그러한 호출이 필요할 때가 있다. 이떄 CORS를 이용하여 애플리케이션이 요청을 허용할 도메인, 그리고 공유할 수 있는 세부 정보를 지정할 수 있다.CORS 매커니즘은 HTTP 기반이며 주요한 헤더는 다음과 같다..
(위키북스) Spring Security in Action [ ▶ CSRF ]CSRF (사이트 간 요청 위조)는 광범위한 공격 유형으로 CSRF에 취약한 애플리케이션은 인증 후 사용자가 웹 애플리케이션에서 원치 않는 작업을 실행하게 할 수 있다.[ ▷ 스프링 시큐리티의 CSRF 보호 작동 방식 ]업무 환경에서 웹 툴을 이용해 파일을 저장하고 관리하는 시나리오를 예로 들어보면, 이 툴의 웹 인터페이스로 새 파일을 추가하고 레코드의 새 버전을 추가하며 삭제할 수 있다. 어떤 이유로 페이지 하나를 열어보라는 이메일 받는다. 페이지를 열어봤지만 빈 페이지였으며 알려진 웹사이트로 리디렉션된다. 다시 업무를 시작하려고 했지만 모든 파일이 없어진 것을 발견했다. 사용자는 파일을 관리할 수 있는 애플리케이션에 로그인한..
https://sundaland.tistory.com/440 [ ▶ Token ] 웹 애플리케이션에서 클라이언트와 서버 간의 안전한 통신을 위해 토큰이 사용된다. HTTP는 상태 비저장(stateless) 프로토콜이기 때문에, 클라이언트의 로그인 상태를 유지하거나 사용자를 식별하기 위해 매번 인증이 필요하다. 토큰은 사용자 인증과 권한 부여, 세션 관리 등을 보다 안전하고 효율적으로 처리하며, 이를 통해 웹 애플리케이션의 보안성과 확장성을 크게 향상시킨다.  [ ▷ 토큰의 생성과 전송 과정 ]인증 과정: 사용자가 로그인을 하면 서버는 사용자의 자격 증명을 확인하고, 이를 바탕으로 토큰을 생성하여 반환한다. 이 토큰은 주로 JSON Web Token (JWT) 형식으로, 서버만이 검증할 수 있는 서명(Si..
https://sundaland.tistory.com/420 [ ▶ Applying Query Hints ][ ▷ 쿼리 힌트 적용하기 ]JPA 쿼리 힌트를 적용하기 위해 @QueryHints 어노테이션을 사용할 수 있다. 이 어노테이션은 JPA의 @QueryHint 어노테이션 배열과 페이지네이션을 적용할 때 추가 카운트 쿼리에 적용할 힌트를 비활성화할 수 있는 불리언 플래그를 받는다. ▼ 쿼리 힌트 사용public interface UserRepository extends Repository { @QueryHints(value = { @QueryHint(name = "name", value = "value")}, forCounting = false) Page findByLast..
https://sundaland.tistory.com/434 [ ▶ Auditing ] Spring Data JPA는 엔티티가 언제, 누구에 의해 생성되거나 수정되었는지를 투명하게 추적할 수 있도록 고급 지원을 제공합한다. 이를 위해 엔티티 클래스에 감사 메타데이터를 추가해야 하며, 이 메타데이터는 어노테이션을 사용하거나 인터페이스를 구현하여 정의할 수 있다. 또한 감사 기능을 활성화하려면 어노테이션 구성 또는 XML 구성을 통해 필요한 인프라 구성 요소를 등록해야 한다.  [ ▷ Annotation-based Auditing Metadata ] Spring Data JPA에서는 @CreatedBy, @LastModifiedBy, @CreatedDate, @LastModifiedDate 어노테이션을 사용..
https://sundaland.tistory.com/137  [ ▶ Database Index ] 데이터베이스 인덱스는 대규모 데이터셋에서 성능을 최적화하기 위한 핵심적인 메커니즘으로, 테이블 내에서 특정 열 또는 열들의 조합에 대한 데이터 검색을 더 빠르게 수행할 수 있도록 돕는 데이터 구조다. 인덱스는 데이터를 미리 정렬된 구조로 유지해 두어, 테이블을 일일이 탐색하지 않고도 필요한 데이터를 효율적으로 찾을 수 있도록 해준다. 마치 책의 목차처럼, 특정 위치의 데이터를 빠르게 찾아가는 데 사용된다.  [ ▷ 데이터베이스 인덱스의 개념과 역할 ]△ 인덱스란?인덱스는 특정 열 또는 여러 열의 조합에 대해 데이터를 빠르게 검색할 수 있도록 구성된 데이터베이스의 자료 구조다. 테이블 전체를 스캔하는 것보다..
GLaDiDos
'Spring Boot' 카테고리의 글 목록