정렬 방식 중 범위가 한정되어 있을 때 유용한 Counting Sort (개수 정렬) 에 대해 정리하고자 한다. 일반적으로 Quick Sort, Merge Sort 등은 O(n log n) 복잡도를 갖지만, Counting Sort 는 O(n+k) 를 갖는다. 여기서 n은 배열 크기, k는 최대값이다. 최대값이 복잡도에 포함되는 이유는 Counting Sort 원리를 이해하면 알 수 있고, 복잡도 계산도 어렵지 않다. Counting Sort 원리는 다음과 같다. 현재 배열이 다음과 같은 10개 숫자로 이루어진 상황이라면, 1 2 5 1 3 9 7 1 2 5 이들의 개수를 먼저 구한다. -> 단순 카운트이므로 O(n)1 : 3개2 : 2개3 : 1개5 : 2개7 : 1개9 : 1개 이후 이 개수들의 ..
querydsl 설정 시, 정의한 entity를 못 잡아서 발생되는 에러이다. maven 기준으로 아래와 같이 jakarta 추가하면 된다. dependency 설정 com.querydsl querydsl-apt ${querydsl.version} jakarta provided com.querydsl querydsl-jpa ${querydsl.version} jakarta plugin 설정 com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor maven 컴파일 후, 정상적으로 QProduct..
요즘 많이 언급되는 MCP를 간단히 테스트해보았습니다. MCP 구조는 아래와 같습니다. 1) host : 실제 llm을 지원하는 claude desktop, cursor 같은 앱입니다. 2) client : 서버와 통신할 host 내의 클라이언트입니다. (사람이 프롬프트를 입력하면 host 내의 client가 해당 프롬프트를 처리하기 위해 서버와 mcp 프로토콜로 통신해 결과를 반영한다는 개념입니다. 즉, 일반적으로 client-server 구조에서 client가 사람이었다면 MCP에서는 client가 ai agent인 셈입니다.)3) server : MCP 프로토콜에 맞춰 개발된 서버입니다. (client에게 프로토콜 형식에 맞는 응답을 제공)4) source / remote service : 사용..
고전적인 배포 환경 : 애플리케이션 배포 환경에 맞게 개발자가 일일이 코드 수정하고 빌드하고 배포해야 함-> 컨테이너 상에서 동작하는 애플리케이션은 컨테이너 환경에 맞게 배포하면 되며, 컨테이너 이미지를 이용해 쿠버네티스 환경에서 일관성 있게 애플리케이션 배포 가능 CI : Continous Integration코드 커밋, 빌드 시 정상적으로 동작하는 지 반복적으로 검증해 애플리케이션의 신뢰성을 높히는 작업CD : Contunous DeploymentCI 과정에서 생성된 애플리케이션을 실제 사용 환경에 자동으로 배포하는 것 컨테이너로 구동하는 애플리케이션 배포 방식1. github 등 저장소에 저장한 애플리케이션 소스코드를 내려받아 도커 컨테이너 이미지로 빌드2. 이미지를 쿠버네티스에서 사용하도록 레지..
service : 쿠버네티스 외부에서 쿠버네티스 클러스터에 접속하는 방법 NodePort : 모든 워커 노드의 특정 포트를 열고, 해당 포트로의 요청을 노드 포트 서비스로 전달한다. 노드 포트 서비스는 해당 요청을 처리할 수 있는 파드로 요청을 전달한다. 파드는 요청에 대한 응답을 전송한다. ref : https://zesty.co/finops-glossary/nodeport-in-kubernetes-a-glossary-overview/ What Is NodePort in Kubernetes? Everything You Need to KnowNodePort Services in Kubernetes expose apps externally, their port range, best use cases, d..
