DevOps 6

[개발 기초] Nexus란 무엇인가? 실무 개발자 관점으로 쉽게 이해하기

프로젝트에 처음 투입되면 팀원들에게 이런 말을 듣게 됩니다."패키지는 Nexus 통해서 받으세요""빌드한 Artifact Nexus에 올려주세요""CI 빌드가 Nexus 바라보고 있어요"ㅤ처음엔 이런 생각이 들죠. "그냥 npm install, pip install 하면 되는데 왜 굳이...?"저도 처음엔 그랬습니다. 하지만 이해하고 보니, Nexus는 단순한 개발 편의 도구가 아니라 운영 안정성과 패키지 관리를 위한 핵심 인프라였습니다.📦 Nexus란 무엇인가?Sonatype Nexus Repository의 줄임말로, 한 줄로 정의하면 이렇습니다."패키지(Dependency)와 빌드 산출물(Artifact)을 관리하는 저장소 서버" 쉽게 비유하자면 다음과 같습니다.Git: 소스코드 저장소 (코드 창고..

DevOps/Server 2026.04.29

Sparrow 보안 검사 탈락 이유: Git에 올린 DB 비밀번호 암호화로 해결하기

들어가며개발을 하다 보면 데이터베이스 비밀번호, API 키 등 민감한 정보를 .env 파일에 평문으로 저장하고 Git에 올리는 경우가 많습니다. 이번 글에서는 환경 변수의 민감정보를 암호화하여 형상 관리 시스템에서 평문을 완전히 제거하는 방법을 다룹니다.왜 암호화가 필요한가?기존 방식의 문제점# .env.prdDB_PASSWORD=myRealPassword123API_KEY=sk-proj-abc123def456형상 관리 노출: Git 히스토리에 영구 기록접근 권한 통제 불가: 저장소 접근 권한만 있으면 모든 비밀번호 열람 가능보안 스캔 실패: Sparrow, SonarQube 등에서 취약점으로 탐지개선된 구조# .env.prd (Git에 저장)DB_PASSWORD_ENC=gAAAAABmK9x3j2Lp4...

DevOps/Security 2026.04.28

개발자를 위한 회사 보안 검사 대비하기 - 하드코딩 없애고 안전한 인증 시스템 구축하는 법

🚨 이런 경험 있으신가요?DB 비밀번호를 코드에 그대로 박아두셨나요?.env 파일이 Git에 올라간 적 있으신가요?회사 보안 검사에서 이런 부분들이 적발되면 프로젝트가 중단될 수 있습니다.이 글에서는 실무에서 바로 적용 가능한 안전한 인증 시스템 구축 방법을 다룹니다.📌 목차현재 개발 현장의 문제점인증 솔루션 비교 - 어떤 걸 선택해야 할까?Vault 인증 방식 비교Vault란 무엇인가?Python에서 Vault 도입하기실무 적용 예제1️⃣ 현재 개발 현장의 문제점😱 일반적인 개발 현장의 모습# 하드코딩 방식DB_HOST = "192.168.1.100"DB_USER = "admin"DB_PASSWORD = "P@ssw0rd123!" # 😱 코드에 그대로 노출# .env 파일 방식DB_PASSWO..

DevOps/Security 2026.04.23

환경설정 파일, 왜 어떤 프로젝트는 git에 올리고 어떤 프로젝트는 서버에서 따로 관리할까

예전 프로젝트에서는 소스코드만 배포하고 환경설정은 서버에서 직접 관리했다. 새 프로젝트에서는 환경설정도 git에 올리고 한번에 배포한다. 이게 왜 다른 건지 비교해봤다.📌 결론 — 배포 철학 차이다"Java는 외부 config 분리 방식이고 Python은 코드에 같이 넣는 방식인가?" — 아니다.Python도 외부 config 분리가 가능하고, Java도 config를 코드와 함께 배포할 수 있다. 핵심 질문은 이거다.서버가 설정을 관리하는가, Git/배포본이 설정을 관리하는가📌 두 가지 방식 비교방식 1 — 외부 Config 분리소스코드만 배포하고, 환경설정 파일은 서버의 별도 경로에 둔다. 앱 실행 시점에 그 파일을 읽는다.# Javajava -jar app.jar --spring.config.l..

DevOps 2026.04.16

code-server란 무엇인가 — 서버에서 브라우저로 VS Code 쓰는 법과 헷갈리기 쉬운 것들

서버에서 포트를 확인하다가 8080이 올라와 있는 걸 발견했다. 웹 서비스 Next.js는 3333인데 8080은 뭐지? 알고 보니 code-server였다.📌 code-server가 뭔가VS Code를 서버에 설치해서 브라우저로 접근하는 웹 IDE다.로컬 PC에 VS Code를 따로 설치하지 않아도, 브라우저 주소창에 http://서버IP:8080만 입력하면 익숙한 VS Code 환경이 그대로 뜬다.처음 발견했을 때 이런 의문이 생겼다."이걸 내가 원하는 서비스 포트에 어떻게 매핑하는 거지?"결론부터 말하면 매핑할 게 없다.code-server는 서비스와 연결되는 프록시가 아니라, 서버 파일시스템에 직접 접근하는 브라우저용 에디터다. 실행 중인 서비스와 별개로 독립적으로 동작한다.📌 code-ser..

DevOps/Server 2026.04.08

서버 프로세스 관리 — PM2와 Gunicorn으로 Node.js, Python 서버 운영하기

로컬에서 node server.js나 uvicorn app:app으로 서버를 띄우는 건 쉽다. 그런데 이 방식으로 프로덕션 서버를 운영하면 어떻게 될까.터미널을 닫는 순간 서버가 죽는다. 에러가 나도 자동으로 살아나지 않는다. 서버 재시작 후 자동으로 켜지지도 않는다. 이 문제들을 해결하는 것이 프로세스 관리자(Process Manager) 의 역할이다.📌 왜 프로세스 관리자가 필요한가단순 실행의 문제점$ node server.js ← 터미널 닫으면 즉시 종료$ uvicorn app:app ← 에러 나도 자동 재시작 없음 ← 서버 재부팅 후 수동으로 다시 켜야 함 ← 멀티 코어 활용 안 됨 (단일 프로세스..