전체 글 198

[인프라 관리] Ansible을 이용한 소프트웨어 설정 변경 테스트

미들웨어를 직접 설정하는 업무에서 대부분의 작업은 SSH로 서버에 접속하여 수동으로 명령어를 입력하고 설정 파일을 편집하는 방식으로 진행된다. 이번에는 반복적인 설정 작업을 자동화하기 위해 Ansible을 처음으로 학습하고, 테스트 서버의 Tomcat 포트를 변경하는 실습을 진행하였다.오늘은 Ansible 설치부터 SSH 접속 문제 해결, Playbook 작성, 그리고 실제 포트 변경까지의 전 과정을 단계별로 정리한다.>Ansible은 서버 설정 작업을 자동화하는 오픈소스 도구이다. 별도의 에이전트 설치 없이 SSH만으로 대상 서버에 접속하여 작업을 수행한다는 점이 특징이다. 사람이 SSH로 접속하여 수행하던 명령어와 설정 변경 작업을 YAML 형식의 파일(Playbook)로 기술하고, 이를 실행하면 ..

[ETC] Hyper-Threading 이란?

서버 모니터링 시스템을 보면 아래와 같은 황당한 상황을 마주하게 될 수 있다."프로세스 A의 CPU 사용률: 150%" 아니, 전체 최고 수치가 100% 아닌가? 어떻게 혼자서 100%를 넘게 쓰고 있지? 버그인가? 이는 버그가 아니라 현대 서버의 핵심 기술인 하이퍼스레딩(Hyper-Threading)과 관제 시스템이 병목 현상을 잡아내는 방식 때문에 발생하는 지극히 정상적인 현상이다.오늘은 하이퍼스레딩의 내부 원리와 관제의 방식을 정리해 보자.1. 하이퍼스레딩(Hyper-Threading): 물리 코어를 속이는 마법굳이 비싼 돈을 들여 물리적인 CPU 코어를 2배로 늘리지 않고도, 성능을 끌어올리기 위해 탄생한 기술이 바로 하이퍼스레딩이다.개념: 하나의 물리적 코어(Physical Core)를 운영체제..

CS 공부/기타 2026.06.21

[업무_자동화] Google 스프레드 시트 - Discord - Google 캘린더 연동

설 연휴를 맞아, 평소에 회사에서 이게 자동화가 되면 편할텐데 라고 생각했던 기능(?) 을 만들어보도록 하자!1. 문제 상황: "가로로 끝없이 늘어나는 일정 시트"우리 팀에서 외근 일정을 기록하기 위해 사용하는 구글 스프레드 시트는 날짜가 지나감에 따라 열(Column)이 오른쪽으로 계속 늘어나는 구조이다. 부장님이 직접 해당 인원의 일정을 칸에 추가해 주시는데, 이를 매번 확인해서 개인 구글 캘린더에 옮겨 적었었는데, 일정이 등록되면 알람이 오고, 캘린더에 자동으로 등록되면 정말 편하겠다는 생각이 들었다.문제점 1: 공유 시트를 매번 직접 열어서 확인해야 함. (공유 시트의 내용 중 함부로 건드리면 안되는 탭들도 있음)문제점 2: 캘린더에 수동으로 입력하다 보니 누락이나 오타 발생 가능성.문제점 3: ..

CS 공부/기타 2026.02.16

[ETC]시스템 리소스 수집 방식 비교

서버의 상태를 실시간으로 파악하는 모니터링 시스템에서 가장 중요한 단계는 정확한 데이터를 수집하는 것이다. Agent 방식의 모니터링 솔루션을 개발하거나 도입할 때, 애플리케이션(특히 Java 기반)이 운영체제(OS)의 리소스 정보(CPU, Memory, Disk, Network 등)를 획득하는 방법은 성능과 유지보수 측면에서 결정적인 역할을 한다.오늘은 대표적인 시스템 정보 수집 라이브러리인 OSHI, 과거의 표준이었던 Sigar, 그리고 OS 레벨의 /proc 방식의 특징과 차이점을 분석해보자.1. OSHI (Operating System and Hardware Information)OSHI는 현재 Java 생태계에서 시스템 모니터링을 위해 가장 널리 사용되는 사실상의 표준(De facto stand..

CS 공부/기타 2026.01.05

32비트 / 64비트 운영체제 아키텍쳐는 무슨 차이일까

프로그램을 다운로드 받을 때, CPU 가 인텔 것 인지, 애플 실리콘 칩인지 구분하여 받는 것처럼 시스템 아키텍쳐가 32비트 인지, 64비트인지 구분하여 다운로드 받을 수 있도록 되어있다. 이 둘은 어떤 차이길래 소프트웨어 설치 시 구분되어 설치하도록 되어있는 것 일까? 먼저 한 가지 이유를 비유를 통해 쉽게 알아보자 1. 비유로 이해하기: 컨닝페이퍼와 책컴퓨터가 메모리를 다루는 방식은, 시험장에서 책을 펼쳐 참고하면서 문제를 푸는 상황(오픈북 시험)으로 비유해볼 수 있다.책: 메모리(혹은 데이터가 담긴 거대한 저장 공간)페이지 번호: 주소(address)컨닝페이퍼: CPU 캐시(혹은 CPU가 가까이 두고 자주 쓰는 빠른 공간)“다음에 참고할 페이지 번호 목록”: 포인터(pointer)- 32비트는 “페..

[Network] iptables 설정 완전 정리

리눅스 서버를 운영하다 보면, 불필요한 접근을 차단하고 필요한 서비스만 열어두기 위해 방화벽 설정이 필수적이다.Ubuntu 22.04 기준으로 iptables를 이용한 방화벽 설정 전반을 정리해보았다.이 글은 단순 명령어 나열이 아니라, 실제로 SSH 세션이 끊기지 않도록 조심스럽게 설정하는 과정을 중심으로 설명한다. 1. iptables 개념iptables는 리눅스 커널의 netfilter 모듈을 제어하는 명령어 도구이다. 패킷이 시스템에 들어오고 나가는 과정에서 어떤 처리를 할지를 정의할 수 있다. 주요 체인은 다음과 같다.체인역할INPUT외부 → 서버로 들어오는 패킷OUTPUT서버 → 외부로 나가는 패킷FORWARD서버를 경유하는 패킷(라우터 역할일 때 사용)기본 정책(policy)은 ACCEPT ..

[ETC] MobaXterm으로 Jump Host + SSH 포트포워딩 설정하기

VPN으로 내부망에 접속할 때, 172.16.x.x 대역까지만 접근이 되고, 172.30.x.x 대역(예: RabbitMQ 관리 페이지나 내부 웹서버)에는 직접 접근이 불가능한 상황이었다. 이럴 때 중간에 브릿지 역할을 하는 서버(Jump Host)를 이용, SSH 접속을 편하게 할 수 있는 프로그램인 MobaXterm에서 바로 내부망 자원에 접근할 수 있는 방법을 정리해본다. 1. Jump Host(브릿지 서버) 설정하기목표: MobaXterm에서 중간 서버(172.16.x.x)를 경유하여 최종 목적지(172.30.x.x)에 SSH/SFTP 접속하기. 1-1. SSH 세션 생성 세션 생성을 위해 목적지의 ip 주소와 hostname 을 입력한다. 1-2. Jump host 지정 Network sett..

CS 공부/기타 2025.10.14

[Network] SSH 포트포워딩을 통한 VPN 내부망 접근 기록

업무상 특정 VPN 을 통하여 회사의 서비스가 동작 중인 서버에 접근해야 할 일이 생겼다. 이에 업체에서 VPN 에 접속할 수 있는 ID 와 PW 를 알려주었고, 접속을 시도해 보았다.하지만 VPN 에 접속 성공하니 내가 할당 받은 아이피는 10.10.x.x 대역 이였고, 내가 접근해야할 서버는 10.5.x.x 대역이였다. 즉 10.10.x.x 의 게이트웨이까지만 접근이 가능한 상황고, 다른 대역도 접근하기 위해서는 VPN setting 이 필요한 상황이였다. 1. 문제 해결직접 가서 서비스를 구축할 때, 장비 연동을 위해 등록한 장비가 있었는데, 마침 이 장비가 10.10.x.x 의 아이피를 가지고 있었다.(서로 통신이 되는 것을 확인 했었다.)즉, 내가 직접 VPN을 통해 서버에 직접 접근할 순 없겠..

[DB] PostgreSQL 은 왜 프로세스가 이렇게 많을까?

리눅스 서버에서 PostgreSQL 을 사용하다 보면, 흔히 이런 명령어로 DB 상태를 확인한다.ps -ef | grep postgres 그런데 결과를 보면 PID 가 서로 다른 여러 개의 postgres 프로세스가 뜨고, 심지어 같은 IP 로 연결된 세션이 여러 개 보이는 경우가 있다. “PostgreSQL 이 왜 이렇게 프로세스를 많이 띄우는 걸까?”라는 의문이 들었다.1. PostgreSQL 은 멀티스레드가 아닌 멀티프로세스 구조이다일반적인 애플리케이션 서버는 하나의 프로세스 안에서 여러 스레드가 동작하는 구조가 많다.반면 PostgreSQL 은 멀티프로세스 구조를 사용한다.즉, PostgreSQL 서버는 “하나의 거대한 프로세스”가 아니라, 여러 개의 독립 프로세스가 역할을 나누어 담당하는 구조이..

[ETC] OS 설치 트러블슈팅 기록 ( RAID 구성이 안될 때)

오늘은 HPE ProLiant DL20 Gen10 서버에 Ubuntu 리눅스를 설치하는 과정에서 겪은 문제와 해결 과정을 기록하려 한다.생각해 봤을때 단순한 설치 과정이겠다라고 생각했지만, 실제로는 HDD 인식 불량으로 인 RAID 설정 실패, UEFI/ACHI 부팅 모드 이해 부족 등 여러 트러블 상황을 마주하게 되었다.. 이번 경험을 정리하면서 앞으로 비슷한 상황이 생겼을 때 참고 하도록 하자.1. 문제 상황 정리1-1. 물리 디스크 문제서버에는 1TB HDD 하나만 장착되어 있었음.설치 과정에서 RAID 구성을 하려 했으나, 물리적으로 디스크가 1개뿐이라 RAID1(미러링) 구성이 불가능.하나의 HDD 에는 미러링 구성이 불가능 하기 때문에 파티션을 모두 포멧하고 통으로 하나의 파티션 구성./ , ..

CS 공부/기타 2025.09.30