Hibernate ID Generator 나만의 JPA @ID 만들기 JPA의 Entity를 구성할때 특수한 상황일 경우 @ID의 값이 Sequence이지만 Long이 아니거나 특별한 ID를 줘야하는 경우가 있습니다. 커스텀 generator를 사용합니다. 커스텀 ID Generator 만들기 이 Generator는 우리 상황에 맞는 ID를 생성할 수 있도록 도와줄 것입니다. import org.hibernate.HibernateException;import org.hibernate.MappingException;import org.hibernate.engine.spi.SharedSessionContractImplementor;import org.hibernate.id.Configurable;import..
RabbitMQ Work Queues AMQP 오픈소스 메시지 브로커 다른 MQ 오픈소스보다 오래되었고 다양한 플러그인, 언어로 기능들을 제공합니다. Advanced Message Queueing Protocol 줄임말로 MQ 오픈소스에 기반한 표준 프로토콜 Quick Start 기본 포트 어드민 포트 : 15672 브로커 포트 : 5672 도커로 시작하기 docker run -d --hostname rabbit --name rabbit -p5672:5672 -p 15672:15672 rabbitmq:3-management 브로커 서버가 죽었을 떄 브로커 서버가 죽으면 모든 큐가 다 날아감 Sub하는 서버는 연결이 끊겨도 일단 계속 재접속을 시도함 -> 다시 브로커 서버가 살아나면 해당 queue 이름으..
현재 CI/CD를 구축하면서 젠킨스와 깃랩을 연동시켜 깃랩에서 merge가 일어나면 젠킨스가 바로 작동할 수 있도록 했습니다. 구축을 하면서 완성된 아키텍처는 아래와 같습니다. 여러가지 방법과 플러그인이 있었지만 젠킨스 버전을 올릴 수 없는 상황이라 버전에 맞는 방법을 찾았습니다. 제너릭 웹훅 트리거를 활용하여 젠킨스(Jenkins) 작업을 자동화하는 방법이 있습니다. 제너릭 웹훅 트리거는 젠킨스에서 제공하는 플러그인 중 하나로, 외부 시스템에서 발생하는 이벤트에 따라 특정 젠킨스 작업을 자동으로 실행할 수 있게 해줍니다. CI/CD를 구축할때 이 기능은 GitHub, GitLab 등의 분산 버전 관리 시스템과의 통합에서 특히 유용합니다. 웹훅 토큰 생성 및 작업 지정 제너릭 웹훅 트리거를 사용하려면 먼..
프록시 서버는 인터넷에서 데이터를 사용자 대신 검색하는 서버로 작동합니다. 사용자가 웹페이지를 요청할 때, 프록시 서버는 중개자 역할을 하여 해당 웹페이지를 검색하고 결과를 사용자에게 전달합니다. 이 과정을 통해 프록시 서버는 다음과 같은 이점을 제공합니다:보안프록시 서버를 사용하면 사용자의 IP 주소가 감춰져 인터넷을 익명으로 서핑할 수 있습니다. 프록시 서버만이 사용자 대신 웹페이지를 검색하기 때문에, 실제 사용자의 IP 주소는 외부에 노출되지 않습니다.속도프록시 서버는 검색된 웹페이지를 중앙 집중식 캐시 데이터베이스에 저장할 수 있습니다. 이후 동일한 웹페이지에 대한 요청이 있을 때, 프록시 서버는 인터넷에서 다시 검색할 필요 없이 캐시된 데이터를 바로 제공할 수 있습니다. 이는 속도를 향상시키고 ..
CDN(Content Delivery Network)은 전 세계에 걸쳐 정적 HTML 파일을 빠르게 전달하기 위해 개발된 시스템입니다. 이는 HTTP 통신이 가능한 어떤 장소에서든 사용될 수 있으며, 기본적으로 CDN은 사용자에게 물리적 거리를 단축시킴으로써 웹 콘텐츠를 더욱 빠르게 제공합니다. 이는 웹 서비스의 성능을 향상시키고, 사용자의 참여 및 유지에 중요한 역할을 합니다. CDN은 전 세계에 100개 이상의 장소에 서버를 배포하여, 사용자가 가까운 서버에서 서비스를 받을 수 있도록 합니다. 이러한 서버의 위치를 PoP(Point of Presence)라고 하며, PoP 내부의 서버는 엣지(edge) 서버라고 불립니다. 세계 곳곳에 많은 PoP를 두는 것은 모든 사용자가 가까운 엣지 서버에 빠르게 ..
DNS는 도메인 이름 시스템(Domain Name System)의 약자로, 사람이 이해하기 쉬운 도메인 이름(예: yahoo.com)을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템입니다. 우리가 웹 브라우저에 웹사이트 주소를 입력할 때, 컴퓨터는 그 주소를 숫자로 된 IP 주소로 변환해야만 해당 웹사이트의 서버와 통신할 수 있습니다. 이 과정에서 DNS가 핵심 역할을 합니다. 작동 순서는 다음과 같습니다: 1. 도메인 이름을 입력하면(예: yahoo.com), DNS 서버가 데이터베이스에서 해당 도메인 이름과 일치하는 IP 주소를 찾습니다. 2. 이제 사용자의 컴퓨터는 해당 IP 주소를 가진 서버와 통신이 가능해지며, 웹페이지를 찾을 수 있게 됩니다. 더 자세히 설명하자면: 1. yahoo.c..
🍪 쿠키 서버가 사용자의 브라우저에 데이터를 저장하기 위해 사용하는 key-value 형태의 문자열입니다. 특징 서버가 유효기간을 설정할 수 있습니다. 브라우저 종료 후에도 데이터가 유지됩니다. 요청 시 자동으로 브라우저가 쿠키를 서버에 전송합니다. 해당 도메인에서만 사용 가능합니다. 인증 외에도 다양한 데이터(예: 언어 설정)를 저장할 수 있습니다. 저장할 수 있는 데이터 크기에 제한이 있습니다. 동작 방식 사용자가 웹페이지를 요청합니다. 서버는 쿠키를 생성하여 응답에 포함시킵니다. 브라우저는 쿠키를 저장합니다. 이후 서버로 요청이 있을 때마다 브라우저는 저장된 쿠키를 자동으로 서버에 전송합니다. 📄 세션 서버에서 사용자 정보를 관리하는 방법으로, 사용자별로 고유한 ID(세션 ID)를 부여하여 관리합니..
REST API는 REST(Representational State Transfer) 아키텍처의 제약 조건을 준수하는 API(Application Programming Interface)입니다. REST는 웹 등의 분산 하이퍼미디어 시스템에 접근하기 위해 개발된 소프트웨어 아키텍처 스타일로, 구체적인 프로토콜이나 표준이 아니라 아키텍처 원칙의 집합입니다. REST API에서는 서버와 클라이언트 간의 통신에 HTTP/HTTPS 프로토콜을 사용하며, HTTP의 기본적인 메서드인 GET, POST, PUT, DELETE를 사용해 리소스에 접근하고 제어할 수 있습니다. REST API의 핵심 원칙 Client-Server Architecture: 클라이언트와 서버는 HTTP를 통해 요청과 응답을 관리하는 독립적..