IT Operations Portfolio

강민성

서버·네트워크·DB를 직접 다뤄 본 IT 운영 지원자

서버·네트워크 — 도메인 11개를 리버스 프록시 한 대 뒤에서 운영 데이터베이스·모니터링 — PostgreSQL 운영과 자원 대시보드 구성 사내 인프라 실무 — 카카오 엔터프라이즈 인턴, 업무 자동화와 문서화

역량 요약

서버 운영

Linux 서버를 직접 임대해 클라우드 스토리지, VPN, 웹호스팅, 게임 서버를 구축·운영. 임대부터 설치·설정·운영까지 전 과정 경험

네트워크

VPN 서버 구축, 사내망 러너에서 퍼블릭 클라우드 DB로의 SSH 터널 구성, 리버스 프록시(Nginx·Traefik) 설정, DNS·SSL 인증서 관리

데이터베이스

PostgreSQL 설치·운영, 스키마 설계, 클라우드 Managed DB 인스턴스 생성과 접근 제어 구성

모니터링·자동화

Prometheus·Grafana 기반 서버 자원 대시보드 구성, 반복 업무의 스케줄 배치 자동화

학력 · 교육 · 자격증

한국교통대학교 컴퓨터공학과

4년제 졸업 · 2019.03 ~ 2025.08. 자료구조, 네트워크, 운영체제, 데이터베이스를 배웠습니다.

카카오클라우드로 배우는 AIaaS 마스터 클래스 2기

스나이퍼팩토리 교육과정 수료. 리눅스·클라우드 입문, 클라우드 애플리케이션 개발 과정을 이수하고 AWS·카카오클라우드 인프라 구성을 실습했습니다.

NAVER Cloud Platform Certified Professional

Naver Cloud Platform · 2026.06 취득

인공지능실무활용능력 1급

가치랩스 · 2023.07 취득

컴퓨터공학을 전공했습니다. 서버는 직접 빌려 운영해 봤고, 기업 환경의 인프라 업무도 해봤습니다.

서버와 네트워크

해외 VPS(Contabo)를 빌려 스토리지(Nextcloud), VPN(Outline), 웹 호스팅(Hestia), 게임 서버를 직접 올려 봤습니다. 지금은 도메인 11개를 리버스 프록시 한 대 뒤에 두고 운영합니다.

판단: 한 곳이 뚫려도 옆 프로젝트로 못 넘어가게

상황

프로젝트 10여 개가 서버 한 대에 같이 삽니다. 전부 같은 네트워크에 두면 컨테이너 하나가 뚫렸을 때 옆 프로젝트의 DB까지 그대로 보입니다.

판단

공개 진입용 네트워크(edge)를 하나 두고, 프로젝트마다 전용 네트워크를 따로 만들었습니다. Nginx만 양쪽에 물리고, 앱 컨테이너는 edge에 직접 붙이지 않습니다.

결과

프로젝트마다 전용 네트워크를 따로 씁니다. 리버스 프록시는 그중 웹으로 열어야 하는 11개와 edge에만 붙습니다. 호스트에 열린 포트는 Nginx의 80·443뿐이고, 앱과 DB, 캐시는 ports 없이 expose만 씁니다.

운영 규칙

인증서 자동 갱신

도메인 11개의 Let’s Encrypt 인증서를 certbot이 주기적으로 갱신합니다. 갱신되면 훅으로 Nginx를 자동 리로드합니다.

권한은 최소로

인증서 볼륨은 Nginx에 읽기 전용으로만 붙였습니다. 쓰기는 certbot만 합니다.

스캔 차단

도메인 없이 IP로 들어오는 요청은 기본 서버에서 끊습니다. 80은 444로, 443은 handshake를 거부합니다. 서버 버전도 숨겼습니다.

사내 전산도 서비스는 여럿이고 서버는 한정돼 있습니다. 무엇을 열고 닫을지 정하는 일이 결국 네트워크 관리라고 생각합니다.

데이터베이스와 시스템 모니터링

데이터베이스 구축·운영

PostgreSQL 설치·운영

애플리케이션 서버에 배정된 저장 공간이 10GB뿐이라, 100GB가 배정된 GPU 서버로 DB를 옮기고 접속은 애플리케이션 서버에서만 되도록 막았습니다. 스토리지를 따로 늘리지 않았습니다.

클라우드 Managed DB

카카오클라우드 Managed PostgreSQL 인스턴스를 직접 생성하고, 업무 데이터 관리를 위한 스키마(3테이블 다대다 구조)를 설계했습니다.

데이터 관리 자동화

문서 데이터에서 DB 초기 데이터(seed SQL)를 자동 생성하는 스크립트를 구현해 수작업 입력을 없앴습니다.

시스템 모니터링

Prometheus

지표를 모으는 곳입니다. 무한정 쌓으면 디스크가 차기 때문에 5GB·7일로 끊어 뒀습니다.

Node Exporter

CPU와 RAM, 디스크 I/O를 같이 봅니다. 느려지는 원인이 한 곳에만 있지 않아서, 시스템 자원까지 봐야 판단이 섭니다.

Grafana

모은 지표를 대시보드로 봅니다. 지금 값 하나만으로는 정상인지 알 수 없고 추이를 봐야 알 수 있습니다.

활용

감이 아니라 수치로 봅니다. Cukee GPU 서버는 모델을 올린 직후 VRAM 약 8GB였고 답변 생성 중엔 더 올라가, 두 시점을 나눠 봤습니다.

Grafana 모니터링 대시보드
업무 데이터가 들어갈 DB를 직접 설치하고 설계했습니다. 서버 상태는 대시보드에 띄워 두고 수시로 봤습니다.

카카오 엔터프라이즈 인턴

기술문서가 바뀌면 담당자가 매번 직접 확인하고 교안에서 고칠 곳을 찾아야 했습니다. 누락이나 용어 불일치가 생기기 쉽고, 어디를 고칠지도 사람마다 달랐습니다. 이 일을 자동화하는 시스템(Doc2Edu Sync)을 만들었습니다. 기획부터 시연까지 맡았습니다.

반복 업무 자동화

사내망과 클라우드 잇기

기술문서가 사내망의 GitHub Enterprise에 있어, 사내망에 연결된 PC를 GitHub Actions self-hosted runner로 붙여 하루 한 번 배치를 돌렸습니다. 태그를 저장한 카카오클라우드 DB에는 SSH 터널로 보안 연결해 접속했고, 중간에 실패해도 다음 실행에서 빠진 것부터 이어 처리합니다.

왜 GUI까지 만들었나

개발자만 돌릴 수 있으면 결국 제가 계속 실행해 줘야 합니다. 실행하고, 상태를 보고, 리포트를 여는 GUI 도구를 따로 만들었습니다. 담당자가 직접 씁니다.

무엇이 달라졌나

고칠 곳을 찾는 일을 시스템이 대신합니다. 사람은 리포트에 올라온 후보만 검토하면 됩니다. PoC 로드맵 Phase 1~3을 2개월 안에 끝내고 팀 시연까지 마쳤습니다.

문서화와 사용자 안내

업무 문서화

기획안과 아키텍처 설계서, 로드맵, 회의록 3회, README를 직접 써서 팀에 공유했습니다.

교육 콘텐츠 현행화

콘솔 UI 개편에 대응해 강의 영상 18편을 전수 감수하고, 실습 영상 11편 재촬영과 음성 스크립트 작성·녹음까지 수행했습니다.

변경사항 안내

오프라인 교육 3개 과정의 커리큘럼을 최신 내용으로 고쳤습니다. 릴리즈 브리핑에는 4회 참여했습니다. KMS, MySQL, Load Balancing 등 바뀐 점을 정리해 팀에 공유했습니다.

시스템이 교안을 바로 고치게 만들 수도 있었습니다. 그렇게 하지 않고 사람이 확인하는 자리를 남겼습니다. 틀린 판단이 그대로 나가면 되돌리는 비용이 더 큽니다. 반복되는 건 자동화하고, 나머지는 개발을 모르는 사람도 읽을 수 있게 문서로 남겼습니다.

Summary

요약

서버·네트워크·DB

서버와 네트워크, DB를 개인 환경과 기업 환경 양쪽에서 다뤘습니다. 무엇을 열고 무엇을 닫을지 정하는 일까지 해봤습니다.

모니터링

서버 상태를 대시보드에 띄워 두고 봅니다. 평소 값을 알아야 이상한 값이 눈에 들어옵니다.

사내망과 클라우드 연결

사내 GitHub Enterprise에 닿도록 사내망 PC를 러너로 쓰고, 퍼블릭 클라우드 DB에는 SSH 터널로 보안 연결했습니다.

자동화와 문서화

사람이 매번 하던 확인을 시스템에 넘기고, 개발을 모르는 담당자도 쓰도록 GUI 도구를 만들었습니다. 나머지는 문서로 남겨 공유했습니다.