전체 글
RabbitMQ 톺아보기
RabbitMQ란?RabbitMQ란 함수형 언어인 erlang 을 기반으로 AMQP를 구현한 메시지 큐(Message Queue)/메시지 브로커(Message Broker)로, 메시지를 송신자(producers)와 수신자(consumers) 사이에서 중개하는 역할을 한다. 💡 AMQP(Advanced Message Queing Protocol)란? 메시지 지향 미들웨어를 위한 개방형 표준 프로토콜이다. 이 프로토콜은 애플리케이션 간의 메시지 전송을 위한 규칙과 메커니즘(publisher/exchange/queue/consumer)을 정의하여, 서로 다른 시스템이나 애플리케이션이 효율적으로 통신할 수 있도록 지원한다. 그렇다면 RabbitMQ와 같은 Messaging Queue를 사용하는 이유가 뭘까? ..
[금융 IT] SI 프로젝트의 가용성 테스트
본 포스팅은 레거시 환경에서의 가용성 테스트를 다루고 있습니다.💡 가용성(Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다.가용성 테스트란 시스템이나 애플리케이션이 정상적으로 작동하면서, 지속적으로 서비스를 제공할 수 있는 능력을 검증하는 테스트이다. 가용성 테스트의 중요성가용성 테스트는 SI 이행 프로세스에서 인프라 담당자(AA, TA, DA)가 수행하는 핵심 테스트이다. SI 사이클에서 빠져서는 안될 필수적인 항목으로서, 가용성 테스트를 하는 목적은 다음과 같이 정리해볼 수 있다.시스템이 장애 상황에서도 정상적으로 작동하는 지 확인한다.서비스 중단 시간(Downtime)을 최소화할 수 있는지 검증한다.시스템의 복구 능력(Recovery ..
[스프링] RedisUtil 제공하기 with Azure Cache for Redis
Azure Cache for Redis란? Azure Cache for Redis | Microsoft AzureAzure Cache for Redis를 통해 빠르고 스케일링 가능한 애플리케이션을 제공하고 오픈 소스와 호환되는 완전 관리형 메모리 내 데이터 저장 서비스를 통해 Database as a Service를 캐시하세요.azure.microsoft.comAzure Cache for Redis란, Azure에서 제공하는 관리형 Redis 서비스이다. Spring 애플리케이션에서 Azure 리소스들에 접근할 때 사용할 수 있는 여러 인증 방식 중, Entra ID 인증 방식을 선택했다. Entra ID 인증 방식에 대해서는 이전 포스팅에서 상세히 다루었으니, 아래 포스팅을 참고하면 좋을 것 같다. [..
Nginx로 중계서버(Reverse Proxy) 구성해보기
Nginx는 대표적인 웹 서버(Web Server, WS)로, 리버스 프록시(Reverse Proxy) 역할의 중계 서버로도 사용할 수 있다. 오늘은 Nginx를 통해 중계 서버(리버스 프록시)를 구성해보자. Nginx란?Nginx는 가벼우면서도 고성능을 제공하여, 현재 많은 사랑을 받고 있는 웹 서버이다. 리버스 프록시, 로드 밸런서 등 다양한 용도로 활용된다. Nginx에 대해서는 자세히 다뤄본 포스팅(역사와 구조 등)이 있으니 참고할 수 있다. 웹 서버의 성장 : Nginx와 Apache엔지니어라면 대표적인 웹 서버(Web Server, WS)인 Nginx와 Apache를 사용해본 경험이 있을 것이다. Nginx는 2021년을 기준으로 아파치(Apache) 서버를 제치고, 전 세계 HTTP/HTTP..
웹 서버의 성장 : Nginx와 Apache
엔지니어라면 대표적인 웹 서버(Web Server, WS)인 Nginx와 Apache를 사용해본 경험이 있을 것이다. Nginx는 2021년을 기준으로 아파치(Apache) 서버를 제치고, 전 세계 HTTP/HTTPS 서버 점유율 1위를 기록했다.하지만, 나는 Nginx를 사용하면서도 왜 Nginx를 선택해야 하는지 지 잘 몰랐다. 오늘은 Apache와 Nginx가 등장한 배경을 살펴보며, 왜 Nginx를 사용해야 하는지 생각해보자. Apache 서버의 탄생 아파치(Apache)는 1995년 처음 등장했다. 당시에는 유닉스 기반의 최초 웹서버인 NCSA HTTPd가 있었으나, 여러 버그로 인해 많은 불편을 겪었다. 이를 해결하기 위해 많은 사람들이 수정하고 구조를 변경하며 만들어진 것이 바로 아파치(Ap..
3주간의 오블완 챌린지 후기
장장 21일 간의 티스토리 블로그 챌린지가 오늘 부로 끝이 났다. 작심삼주 오블완 챌린지오늘 블로그 완료! 21일 동안 매일 블로그에 글 쓰고 글력을 키워보세요.www.tistory.com 지난 11월 7일부터 오늘(11월 27일)까지, 3주 동안 티스토리 오블완 챌린지에 참여했다.챌린지를 홍보하던 시기가, 마침 블로그를 더 열심히 써야겠다고 다짐하던 시기였고, 나는 챌린지를 보자마자 아주 반가운 마음으로 챌린지에 참여했다. # 오블완 챌린지란? 오블완 챌린지란 "오늘 블로그 완료"의 의미로, 챌린지 기간(3주) 동안 매일 블로그 포스팅을 하는 챌린지이다. #티스토리챌린지 #오블완 태그를 추가하여 매일 최소 1개의 포스팅을 하면 되는 단순한 챌린지이다. 업데이트된 티스토리 앱 홍보차 기획하게 된 챌..
싱글턴(Single-Turn)과 멀티턴(Multi-Turn)
LLM에서 멀티턴(Multi-turn) 대화는 아주 중요한 요소이다. 왜일까? 멀티턴 대화는 궁극적으로 사용자 경험과 고객 만족도를 향상시키는 데 있다. 싱글턴 vs 멀티턴싱글턴 대화싱글턴(Single-Turn) 대화란 말 그대로 한 번의 질문과 한 번의 답변으로 끝나느 대화 방식이다. 사용자가 AI나 챗봇에게 질문을 하면, 챗봇은 그 질문에 대해 단 하나의 응답을 제공하고 대화가 종료된다. 멀티턴 대화멀티턴 대화는 사용자가 AI와 여러 차례에 걸쳐 주고받는 대화를 의미한다. 사용자가 한번 질문하고 챗봇이 다시 되묻는 과정이 있다면 모두 멀티턴이다. 사용자의 첫 번째 질문에 대한 챗봇의 응답 이후 사용자 또는 챗봇이 추가 질문을 하거나 더 많은 정보를 요청하면서 대화가 계속된다. 이는 단순한 질문과 답변..
[Web] 쿠키와 세션, 웹스토리지 : cookie vs localStorage
HTTP 프로토콜의 약점이나 특징을 보완하기 위해 고안된 것이 쿠키와 세션이다. 쿠키(cookie)는 앱 또는 웹사이트를 방문하는 사용자들에 대한 정보를 저장하는 주된 방법이었다. 그러다 HTML5가 등장하게 되었고, localStorage를 데이터 저장 옵션으로 도입하게 되었다. 본 글에서는 cookies와 localStorage를 중심적으로 비교하고 대조해보려 한다. 쿠키(cookie)사용자의 로컬에 저장되는 작은 정보 기록 파일이다. 로컬에 파일 형태로 저장되기 때문에, 요청 속도는 서버를 통하는 다른 저장소보다 비교적 빠르지만, 사용자의 로컬에서 관리되기 때문에 보안적인 부분에서 취약할 수 있다는 단점이 있다.🔎 쿠키 확인하기[F12] - [Application] - [Cookies]docume..
[Linux] 파일 시스템에서 검색하기 : find
find 명령어는 리눅스 파일 시스템 내에서 특정 파일이나 디렉토리를 검색하는 데 사용할 수 있다. 다양한 조건을 기반으로 파일과 디렉토리를 검색할 수 있어, 상당히 유용하다. find 의 기본적인 구문은 다음과 같다.find [검색 경로] [옵션] [조건]검색 경로는 검색할 디렉토리의 경로를 지정한다. . 을 사용하면 현재 디렉터리, / 를 사용하면 디렉터리부터 검색한다. 이때 접근 권한이 없는 경로에 대해서는 Permission Denied가 발생한다. 주요 옵션과 조건은 다음과 같다.옵션설명-name특정 이름을 가진 파일을 검색한다.-iname대소문자를 구분하지 않고 파일 이름을 검색한다.-type파일의 유형을 지정한다. f 는 일반 파일, d 는 디렉토리를 의미한다.-size파일 크기를 기준으로 ..
[Linux] expect로 커맨드 입력 자동화하기
리눅스 시스템에서 특정 패키지를 설치하거나 프로그램 실행 중 yes 와 같은 입력을 요구받는 경우가 종종 있다. 그러나 이러한 작업을 shell script로 자동화해야한다면 어떻게 해야할까?? expect 를 활용하면 입력 자동화를 쉽게 구현할 수 있다. expectexpect 는 커맨드 대화를 자동화하도록 하는 Linux 모듈의 하나이다. telnet 이나 ftp 와 같이 사용자와 상호작용하는 프로그램에서(interactive), 특정 문자열을 기다리고(expect), 정해진 문자열을 자동으로 보내는(send) 처리를 하는 스크립트 언어이다. expect의 주요 기능자동화된 터미널 상호작용 : expect 사용자로부터 입력을 요구하는 프로그램을 자동으로 실행할 수 있다.패턴 매칭 : expect 는 ..
[Linux] 네트워크 상태 점검하기 : netstat
netstat 는 "network statistics"의 약자로 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 확인할 수 있는 유용한 명령어이다. 주로 시스템의 네트워크 상태를 점검하고 모니터링할 때 많이 사용한다. netstat 명령어를 입력하면, 현재 서버의 네트워크 연결 상태를 확인할 수 있다. 대표적인 옵션에는 다음이 있다.옵션설명-a모든 연결과 수신 중인 포트를 보여준다.-tTCP 연결만 표시한다.-uUDP 연결만 표시한다.-n호스트 이름 대신 IP 주소를 숫자로 표시한다.-l수신 대기 중인 소켓만 표시한다.-p프로세스의 ID와 이름을 표시한다.$ netstat -antActive Internet connections (servers and established)Proto Recv-Q S..
[금융 IT] 내 데이터는 나의 것 : 마이데이터(MyData)
금융 프로젝트를 하면서 마이데이터라는 용어를 자주 접하게 되었다.은행 앱 등 실생활에서도 종종 들어볼 수 있는 용어, 마이데이터란 무엇일까? 우리가 일상에서 행동을 할 때마다 데이터는 계속 만들어지고 있다. 우리의 하루를 살펴보면, 아침에 일어나서 스마트폰으로 날씨를 검색하고, 맛집을 검색하고, 밥을 먹거나 물건을 사기 위해 신용 카드를 사용한다. 이렇게 한 사람의 24시간 동안 생성되는 데이터는 방대하며, 수집되고 저장되어 공유된다. 그러나 이렇게 만들어진 데이터의 주인은 누구일까? 내 데이터는 나의 것“개인정보 이용과 수집에 동의하겠습니까?” 라는 질문을, 모두들 수도 없이 들어봤을 것이다. 새로운 서비스를 가입허거나 이용하기 전에 우리는 항상 이 질문을 마주하게 된다. 사실 우리에게는 별다른 선택권..