본문 바로가기

분류 전체보기28

Kafka 특징 카프카의 동작 방식과 원리 카프카는 기본적으로 메세징 서버로 동작 메세지라고 불리는 데이터 단위를 보내는 측(Publisher 또는 Producer)에서 카프카에 토픽이라는 각각의 메세지 저장소에 데이터를 저장하면, 가져가는 측(Subscriber 또는 Consumer)이 원하는 토픽에서 데이터를 가져가게 되어 있다. 프로듀서는 새로운 메세지를 카프카로 보낸다. 프로듀서가 보낸 메세지 토픽에 도착해 저장된다. 컨슈머는 카프카 서버에 접속하여 새로운 메세지를 가져간다. 카프카의 특징 프로듀서와 컨슈머의 분리 위의 두 그림을 비교해봐도 구조가 매우 단순해졌으며, 각각의 서비스 서버들은 모니터링이나 분석 시스템의 상태 유무와 관계없이 카프카로 메세지를 보내는 역할만 하면 되고, 마찬가지로 모니터링이나 분석 시.. 2021. 12. 26.
Spring Security & CSRF & Json Web Token JWT 사용 시 Spring Security 에서 csrf.disable() 을 해도 괜찮은 이유는 무엇일까? 에 대해서 심각하게 고민하게되어 정리하게 되었다. Cross-Site Request Forgery 웹 애플리케이션의 취약점 중 하나로, 이용자가 의도하지 않은 요청을 통한 공격을 의미한다. 즉, CSRF 공격이란, 인터넷 사용자(희생자)가 자신의 의지와는 무관하게 공격자가 의도한 행위(등록, 수정, 삭제 등)를 특정 웹사이트에 요청하도록 만드는 공격이다. 예시 로그인한 계정에서 다른 은행 계좌로 돈을 송금할 수 있는 은행 웹사이트 제작 예시. Form 형식 Http 요청 POST /transfer HTTP/1.1 Host: bank.example.com Cookie: JSESSIONID=rand.. 2021. 12. 24.
DBCP 왜 ? 운영 중 에러로그로 식별할 수 없는 이슈인 'out of memory' 가 발생하거나, DB서버에서부터 발생한 장애로 서버가 뻗는 경우는 대부분 WAS와 DB서버 간 이슈이다. 데이터베이스에서 데이터를 읽어올 때, 가장 비용이 큰 부분은 서버가 물리적으로 DB 서버가 최초로 연결되어 Connetcion을 생성하는 부분이다. JDBC 사용 시 DB 연결 과정 DB 접속을 위한 JDBC 드라이버 로드 getConnection 메서드로부터 Connection 객체 생성 쿼리 수행을 위해 PreparedStatement 객체 생성 후 쿼리 수행 처리가 완료되면 사용된 리소스들을 close 하여 반환 정의 DataBase Connection Pool의 약자 데이터베이스와 연결된 Connection을 미리 .. 2021. 12. 23.
3 - Spring Batch Job 이란? 기본 개념 배치 계층 구조에서 가장 상위에 있는 개념으로서 하나의 배치작업 자체를 의미 Job Configuration을 통해 생성되는 객체 단위로서 배치작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해 놓은 객체 배치 Job을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체를 제공한다. 여러 Step을 포함하고 있는 컨테이너로 반드시 한 개 이상의 Step으로 구성해야 함 기본 구현체 SimpleJob 순차적으로 Step을 실행시키는 Job FlowJob 특정한 조건과 흐름에 따라 Step을 구성하여 실행시키는 Job Flow 객체를 실행시켜서 작업을 한다. 쉽게 말해 Job은 하나의 배치 작업 단위이다. 그렇다면 Job은 어떻게 각각의 Step을 실행시키는가? 간단한 Jo.. 2021. 11. 5.