오늘도 기록하는 중 GitHub

분류 전체보기 195

Access denied for user - Kubernetes + ArgoCD

문제2025-08-12T15:59:30.088Z WARN 1 --- [ main] o.m.jdbc.message.server.ErrorPacket : Error: 1698-28000: Access denied for user 'root'@'192.168.5.254' 플젝하랴, 이력서 작성하랴 바쁘게 지내고 있는데 쿠버네티스 클러스터 내에서 ArgoCD로 배포를 진행하는 와중에 특정 서비스에서 저런 에러 로그가 발생했다.말 그대로 DB 연결이 안된다는 의미다. 처음에는 "뭐지? 환경 변수가 잘못됐나?" 싶어서 Base64로 인코딩된 변수들을 직접 디코딩해보았다. 문제가 없었다! 값은 잘 있다.그래서 다음엔 DB 계정의 아이디, 비밀번호, 권한 순으로 찾아보았다. 이 또한 잘못된 것은 없었다.Deployme..

Problems 2025.08.19

Docker, 보안, 그리고 이미지 최적화

배경프로젝트 진행 중에 컨테이너 이미지 보안에 관련해서 지적을 받았기에 조치를 진행하고 있었다. 문득 이보다 더 효율적으로 만들 수 있지 않나 싶었다. 이미지 크기를 줄이고 캐시까지 적용하면 CI 빌드 시간을 생각보다 단축할 수도 있을 것 같았다. 따라서 이미지 최적화를 진행하고자 했다.이 글을 볼 사람들에게 미리 알려주자면 Github actions를 사용해 컨테이너 빌드를 진행한다. SpringDockerGithub actions 이미지 최적화진행 중인 프로젝트에서 Dockerfile의 변화가 어떻게 진행됐는지 보면서 설명하겠다.첫 번째 버전은 다음과 같다. FROM gradle:8.14.2-jdk21 AS buildWORKDIR /appCOPY gradlew .COPY gradle ./gradleC..

Java Virtual Thread

가상 스레드(Virtual Thread)?최근에 진행중인 프로젝트에서 맡은 거래 엔진 자원의 효용성을 높이기 위해 이것저것 공부하고 있다. 그러던 중 한 1년에 알게 된 Virtual Thread를 다시 공부하게 됐다. 이번엔 이를 다뤄보고 적용할 수 있지 없을지 판단해보겠다.자바 전통의 플랫폼 스레드(OS 스레드)는 생성·전환 비용이 높고, 스택이 고정(1MB ±)이라 메모리도 많이 소모한다. I/O-blocking 중심의 웹 서버처럼 “대기 시간이 긴 짧은 작업”이 수천 ~ 수만 개 쌓이면 플랫폼 스레드 방식은 금세 한계에 부딪힌다.이를 해결하기 위해 JDK 21부터 가상 스레드가 정식 도입되었다. 가상 스레드는 JVM 안에서 스케줄링되는 초경량 스레드로, 필요한 순간에만 소수의 캐리어(플랫폼) 스레..

기록/Language 2025.07.14

2025년 상반기 회고 - SAA, SQLD 합격 후기

지난 반 년 간내가 작성한 2024년 회고에 2025년에는 무엇을 하겠다고 했는지 다시 보았다.올해는 새롭게 무언가를 시작하고, 성장하고 발전하여 어엿한 사회구성원이 되는 게 목표다.사실상 목표는 3가지였다.새로운 활동엔지니어로써 성장취업이 중 1개는 달성했다고 생각한다. 1개는 달성 중이다. 1개는 아직이다.뭐가 됐든, 반 년 간 열심히 달려왔다. 벌써 반 년이다. 이 정도나 달려왔다는 게 되돌아보면 신기하다. 조금씩 스스로 발전하고 있다는 것도 알 수 있다.이번에는 지금까지 무엇을 했고, 앞으로 무엇을 할 건지 내 생각과 함께 정리해보고자 한다. 취미에 집중하자재작년부터 블로그에 개발 외적인 것을 담으려고 하진 않았는데 취미가 내 발전에 많은 도움이 됐기에 담아보자고 생각했다. 벌크업을 목표로 원..

Remembrance 2025.06.29

가상 메모리 - 페이징

가상 메모리 관리 기법현대 컴퓨터 시스템이 여러 프로그램(프로세스)을 동시에 매끄럽게 실행할 수 있는 비결은 무엇일까? 그 중심에는 한정된 물리 메모리(RAM)를 수많은 프로세스들이 나눠 쓸 수 있도록 하는 메모리 관리 기술이 있다. 그중에서도 페이징(Paging)은 가장 핵심적인 가상 메모리 관리 기법으로, 메모리 공간을 낭비하는 외부 단편화 문제를 근본적으로 해결하고, 각 프로세스가 마치 자신만의 거대한 메모리를 독차지한 것처럼 느끼게 해주는 안정적인 환경을 제공한다.페이징의 기본 원리: 페이지와 프레임페이징의 핵심 아이디어는 물리 메모리를 조각내어 프로세스에 비연속적으로 할당하는 것이다. 마치 책의 내용을 여러 페이지에 나누어 담고, 이 페이지들을 책장 여기저기에 꽂아두지만 목차를 통해 순서대로 찾..

CS/OS 2025.06.27

동기화

프로세스 동기화프로세스 동기화는 현대 멀티프로세싱 시스템에서 가장 중요한 개념 중 하나다. 여러 프로세스가 동시에 실행되는 환경에서 공유 자원에 대한 안전한 접근을 보장하기 위해 반드시 필요한 기술이다. 동기화는 단순히 프로세스 간의 실행 순서를 제어하는 것을 넘어서, 데이터의 일관성과 시스템의 안정성을 보장하는 핵심적인 역할을 수행한다.동기화란 무엇인가동기화(Synchronization)는 시스템 프로세스 간 정보를 공유하는 행위로 정의할 수 있다. 보다 구체적으로 말하면, 여러 프로세스나 스레드가 공유 자원에 접근할 때 발생할 수 있는 문제를 예방하고 올바른 실행 순서를 보장하는 메커니즘이다. 현대 컴퓨터는 다중 프로그래밍 시스템으로 여러 프로세스가 동시에 실행되며, 이러한 환경에서 동기화는 필수불가..

CS/OS 2025.06.10

프로세스, 그리고 스레드

프로세스와 스레드웹이든 앱이든 관계없이 개발을 해본 사람이라면 스레드에 대해 배우거나 들었을 것이다. 오늘은 CS에 대한 이해를 위해 운영체제에 관련된 내용 중 프로세스와 스레드에 대해 정리하려고 한다. 스레드에 관한 내용은 이전에도 올렸지만 이번에는 총체적으로 담아보려고 한다!아래는 내가 이전에 정리한 스레드 관련 글이다.2024.07.08 - [CS/OS] - 스레드 Thread (1) - 하드웨어와 소프트웨어프로세스?프로세스는 실행 중인 프로그램을 의미한다.응용 프로그램은 보조 기억 장치(하드 디스크, SSD 등)에 저장되어 있다가, 사용자가 해당 프로그램을 실행하는 순간 메모리에 적재되면서 '프로세스'가 된다. 컴퓨터는 수많은 프로세스들을 동시에 생성하고, 사용이 끝나면 메모리에서 삭제함으로써 메..

CS/OS 2025.06.08

커널 Kernel

커널?이 한 달 동안 배웠던 부분은 장기기억으로 넘기고, 부족한 부분은 채우기 위해서 공부하고 있다. 이번엔 운영체제의 중요 요소인 커널에 대해서 기록하려고 한다.운영체제의 핵심 요소커널은 운영체제의 가장 핵심적인 부분으로, 컴퓨터 시스템의 모든 것을 완전히 제어하는 컴퓨터 프로그램이다. 하드웨어와 소프트웨어 구성 요소 간의 상호작용을 관리하고, 항상 메모리(RAM)에 상주하면서 운영체제 코드의 일부분 역할을 한다. 커널은 운영체제를 구성하는 가장 중요한 부분으로, 어떻게 구성하느냐에 따라 컴퓨터 전체의 성능이 달라진다.커널의 메모리 보호커널의 핵심 코드는 응용 소프트웨어나 운영체제의 다른 중요하지 않은 부분들로부터 접근이 차단된 별도의 메모리 영역에 로드된다. 이 영역을 _커널 영역_이라고 부른다. 이..

CS/OS 2025.06.04

Kubernetes - Federation

🌐 Kubernetes Federation🎯 Federation?Kubernetes Federation은 단일 클러스터가 아닌 분산된 다중 클러스터 환경을 단일 제어 평면에서 관리하기 위한 표준화된 솔루션이다. 이는 여러 개의 Kubernetes 클러스터를 중앙에서 관리하고 최적화하는 기술로, 하이브리드 클라우드, 멀티 클라우드, 지리적으로 분산된 데이터 센터 운영 등에 활용되어 서비스 확장성과 가용성을 극대화할 수 있다.Federation은 두 가지 주요 버전으로 발전해왔다. 초기 Federation v1은 클러스터 연합을 위한 기본 기능을 제공했지만, Federation v2는 Kubernetes Operator를 활용한 CRD(Custom Resource Definitions) 기반의 개선된 아..

Kubernetes - 서비스 카탈로그와 서비스 브로커

☁️ 서비스 카탈로그와 서비스 브로커?클라우드 네이티브 환경이 발전하면서 다양한 서비스의 프로비저닝, 관리, 연결은 점점 더 복잡해지고 있다. 이러한 복잡성을 해결하고 개발 생산성을 향상시키기 위해 서비스 카탈로그와 서비스 브로커라는 개념이 등장했으며, 이들은 Open Service Broker API (OSB API)라는 표준을 통해 상호작용한다. 이번에는 핵심 개념과 구현 방안에 대해서 다뤄보고자 한다.📜 Open Service Broker API - 클라우드 서비스 자동화의 표준 프로토콜OSB APIOpen Service Broker API (OSB API)는 클라우드 플랫폼(예: 쿠버네티스, Cloud Foundry)과 외부 서비스 제공자 간의 통신을 위한 표준 규약이다. 마치 레스토랑에서 웨이..

반응형