2023/09 32

HTTP 상태 코드

HTTP 상태 코드 HTTP 상태 코드 HTTP 상태 코드는 HTTP 요청에 대한 서버의 응답을 나타내는 3자리 숫자입니다. 첫 번째 숫자는 응답의 종류를 나타내며, 나머지 두 숫자는 세부적인 응답 내용을 나타냅니다. HTTP 상태 코드는 크게 5가지 종류로 나눌 수 있습니다. 1xx (Informational): 요청을 받았으며 프로세스를 계속 진행합니다. 2xx (Success): 요청을 성공적으로 받았으며 인식했고 수용하였다. 3xx (Redirection): 요청 완료를 위해 추가 작업 조치가 필요하다. 4xx (Client Error): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다. 5xx (Server Error): 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다. 1xx (In..

LRU/LFU/FIFO 캐시 삭제 알고리즘

LRU/LFU/FIFO 캐시 삭제 알고리즘 LRU/LFU/FIFO 캐시 삭제 알고리즘 LRU (Least Recently Used), LFU (Least Frequently Used), FIFO (First-In-First-Out)은 캐시에서 사용되는 다양한 삭제 알고리즘입니다. 이러한 알고리즘은 캐시에서 어떤 아이템을 삭제할지를 결정하는 데 사용됩니다. 각 알고리즘의 동작 방식은 다음과 같습니다: LRU (Least Recently Used - 가장 최근에 사용되지 않은 아이템을 삭제) 이 알고리즘은 캐시에서 가장 오래된(최근에 사용되지 않은) 아이템을 삭제합니다. 가장 최근에 사용된 아이템은 캐시의 앞쪽에 위치하며, 오래된 아이템은 뒤쪽에 위치합니다. 아이템이 캐시에 추가될 때마다, 해당 아이템을 캐..

스프링 @Transactional어노테이션의 동작원리와 전파 속성들

스프링 @Transactional어노테이션의 동작원리와 전파 속성들 스프링 @Transactional어노테이션의 동작원리와 전파 속성들 스프링 @Transactional어노테이션 스프링의 @Transactional 어노테이션은 트랜잭션 관리를 선언적으로 처리할 수 있게 해줍니다. 이 어노테이션을 메소드나 클래스에 붙이면 그 범위에서 실행되는 작업은 트랜잭션으로 처리됩니다. 주요 특징 원자성(Atomicity): 어노테이션을 사용한 메소드 내의 작업은 모두 성공하거나 실패합니다. 일관성(Consistency): 트랜잭션이 성공적으로 커밋되면, 데이터는 일관된 상태를 유지합니다. 격리성(Isolation): 동시에 여러 트랜잭션이 발생하더라도 각 트랜잭션은 독립적입니다. 지속성(Durability): 트랜잭..

스프링 필터와 인터셉터 그리고 차이점

스프링 필터와 인터셉터 그리고 차이점 스프링 필터 스프링 필터 스프링 필터(Spring Filter)는 웹 애플리케이션에서 HTTP 요청이나 응답을 가로채서 추가적인 처리를 할 수 있게 해주는 구성 요소입니다. 필터는 주로 인증, 로깅, 데이터 변환, 인코딩 등 다양한 목적으로 사용됩니다. 서블릿 필터(Servlet Filter)와 마찬가지로 동작하나, 스프링의 라이프사이클과 통합되어 더 다양한 기능을 제공합니다. 필터의 주요 책임: 인증과 권한 확인: 필터를 통해 사용자의 신원을 확인하고, 특정 리소스에 대한 접근을 제어할 수 있습니다. 로깅과 모니터링: HTTP 요청이나 응답을 로깅하여 나중에 분석하거나 모니터링할 수 있습니다. 데이터 가공: 요청이나 응답의 헤더나 본문을 수정하거나 새로운 속성을 추..

Scouter, Ngrinder 설치 후기

Scouter 설치 후기 스카우터 설치 과정 중 어려웠던 점은 JDK17 버전으로 돌아가지 않아 처음에 애를 먹었다. 월래 하던 방식을 하지 못하고 다른 방법을 생각해서 하였다. Scouter는 크게 4가지로 구성되는데 클라이언트, 콜렉터, 에이전트-자바, 에이전트-호스트 이렇게 이중 콜렉터는 자바 11버전으로만 되었다. 월래 설치하려던 서버는 그대로 JDK17인 것으로 보아 에이전트-자바, 에이전트-호스트는 자바17로 기동은 되었다. Scouter 클라이언트(로컬), 콜렉터 서버(ec2-1), agent-java (ec2-2) , agent - host (ec2-2)로 설치하였다. 콜렉터와 agent가 통신하는 포트가 있는데 UDP와 TCP둘다 열어야 되었던 것으로 기억한다. Ngrinder 설치 후기..

On-prem vs Cloud native vs Hybrid vs Multi-cloud 환경

On-prem vs Cloud native vs Hybrid vs Multi-cloud On-prem On-prem(온프레미스)은 "on-premises"의 줄임말로, 기업이나 조직 내부의 물리적 위치에 IT 인프라나 서비스를 배치하는 방식을 말합니다. 이는 클라우드 기반 솔루션과는 대조적이며, 기업이나 조직이 자체 데이터 센터에서 서버, 스토리지, 네트워크 장비 등을 보유하고 관리하는 방식을 가리킵니다. 온프레미스의 장점: 제어: 자체 데이터 센터를 가지고 있기 때문에, 하드웨어 및 소프트웨어에 대한 완전한 제어가 가능합니다. 보안: 자체 보안 프로토콜과 정책을 설정하여 데이터와 시스템에 대한 보안을 향상시킬 수 있습니다. 맞춤 설정: 특정 비즈니스 요구 사항에 따라 IT 환경을 완전히 맞춤 설정할 수..

Scale-up vs Scale-out 전략

Scale-up vs Scale-out 전략을 비교 Scale-up "Scale-up"은 시스템의 리소스를 증가시켜 더 많은 부하를 처리할 수 있게 확장하는 것을 의미합니다. 예를 들어, 웹 서버의 성능을 향상시키기 위해 추가적인 CPU나 RAM을 제공하는 것이 scale-up에 해당됩니다. 반면에, 여러 서버나 인스턴스를 추가하여 시스템의 용량을 확장하는 것은 "scale-out"이라고 합니다. AWS와 같은 클라우드 서비스 환경에서는 scale-up을 수행하기 위해 EC2 인스턴스의 유형을 변경하거나, 더 큰 사이즈의 인스턴스로 변경하여 리소스를 확장할 수 있습니다. 그러나 scale-up 방식에는 한계가 있을 수 있으므로, 때로는 scale-out 방식을 고려해야 할 수도 있습니다. 항상 시스템의 ..

이벤트 브로커와 메세지 브로커와 관련해서 메세지와 이벤트 특징과 장단점과 목적

이벤트 브로커와 메세지 브로커와 관련해서 메세지와 이벤트 특징과 장단점과 목적 이벤트 브로커와 메시지 브로커의 주요 차이점은 처리하는 데이터 유형과 그 데이터의 의도에 있습니다. 이들 각각은 "이벤트"와 "메시지"라는 용어와 관련되어 있습니다. 메시지 (Message): 정의: 메시지는 일반적으로 애플리케이션 간에 전송되는 데이터 또는 정보의 패킷입니다. 특징: 대부분의 경우 명확한 대상 (receiver)이 있습니다. 요청과 응답 패턴을 자주 사용합니다. 목적: 서로 다른 시스템 간에 데이터를 안전하게 전송하는 것입니다. 장점: 안정성: 메시지 전송이 보증됩니다. 복잡한 시스템 간 통신의 단순화. 단점: 높은 볼륨의 데이터에는 최적화되지 않았을 수 있습니다. 타이트 커플링의 위험이 있을 수 있습니다. ..

이벤트 브로커(event broker)

이벤트 브로커(event broker) 이벤트 브로커(event broker) 이벤트 브로커(event broker) 이벤트 브로커(event broker)는 특정 시스템, 애플리케이션, 서비스에서 발생하는 이벤트를 다른 시스템, 애플리케이션, 서비스로 중개하는 소프트웨어나 서비스를 의미합니다. 메시지 브로커와 비슷한 기능을 수행하지만, 주로 이벤트 주도 아키텍처나 스트림 처리와 같은 상황에서 활용됩니다. 이벤트 브로커의 주요 특징은 다음과 같습니다: 이벤트 중심: 이벤트 브로커는 특정 상황이나 조건에서 발생하는 이벤트에 중점을 둡니다. 예를 들어, 사용자가 웹사이트에서 제품을 구매하는 행위, 센서에서 새로운 데이터를 캡처하는 행위 등이 이벤트로 간주될 수 있습니다. 비동기 통신: 이벤트 브로커를 사용하..

메시지 브로커(message broker)

메시지 브로커(message broker) 메시지 브로커(message broker) 1. 탄생 배경 메시지 브로커는 복잡한 IT 환경에서 여러 애플리케이션과 서비스 간의 통신 문제를 해결하기 위해 도입되었습니다. 초기의 시스템은 종종 단일한 큰 애플리케이션으로 구성되었지만, 시간이 흐르면서 시스템은 분산되고 복잡해졌습니다. 여러 애플리케이션과 서비스가 서로 통신해야 하는 상황에서 직접적인 통신 방법은 확장성, 유지 보수성 및 복잡성 문제를 야기했습니다. 2. 용도 및 목적 메시지 브로커의 주요 용도와 목적은 다음과 같습니다: 비동기 통신: 시스템 간의 통신을 비동기식으로 수행하여 시스템의 성능과 가용성을 향상시키는 데 도움을 줍니다. 디커플링(Decoupling): 생산자와 소비자 사이의 직접적인 의존..