2025/12 17

[73일차]첫 오픈 소스 기여 & 프로젝트 발굴하기

1. 실전 시뮬레이션: first-contributions오픈 소스 기여를 주저하게 만드는 가장 큰 이유는 "내가 뭔가 잘못해서 프로젝트를 망치지 않을까?"라는 두려움이다. first-contributions 프로젝트는 이러한 두려움을 없애기 위해 만들어진 샌드박스(Sandbox) 저장소이다. 이 프로젝트는 오직 '기여 연습'만을 위해 제공되므로, 편안한 마음으로 실습할 수 있다.한국어 가이드 경로: first-contributions/translations/README.ko.md1-1. 기여 프로세스 (CLI 환경 기준)가장 정석적인 방법은 Git 명령어를 사용하는 것이다. 이 흐름은 실제 오픈 소스 기여와 100% 동일하며, CLI(Command Line Interface)를 통해 작업하는 방식이다...

Programmers 2025.12.24

[72일차]오픈 소스 기여 심화

1. GitHub 문서 템플릿 (Document Templates)GitHub 템플릿 기능은 프로젝트 기여자들에게 일관되고 체계적인 형식을 제공하여 커뮤니케이션 오류를 줄이고 프로젝트 관리자의 부담을 경감시키는 핵심 도구이다.1-1. 템플릿의 구조와 작동 원리GitHub 템플릿은 저장소 루트에 위치한 .github/ 디렉터리 내부에 특정 이름을 가진 파일을 배치함으로써 작동한다.배치 경로: 모든 템플릿 관련 파일은 .github/ 폴더 내에 저장된다.파일 형식: 템플릿 본문은 Markdown(.md) 문법을 사용하여 작성되며, 구조 설정을 위해 YAML (.yml) 형식을 사용하기도 한다.1-2. 핵심 템플릿 유형 및 구성 요소템플릿 유형파일명/경로용도 및 구성 요소풀 리퀘스트 (PR) 템플릿.githu..

Programmers 2025.12.23

[71일차]오픈소스 기여 방법

1. 서론: 오픈소스의 이해1.1 오픈소스의 정의오픈소스란 오픈소스 소프트웨어(OSS)를 통칭하는 말로, 소스 코드가 특정 라이선스 규정에 맞게 공개되어 있어 누구나 정해진 규칙 내에서 자유롭게 확인하고, 수정하고, 배포할 수 있는 소프트웨어를 의미한다.1.2 기여의 이점오픈소스 프로젝트에 기여(Contribution)하는 활동은 개발자에게 다음과 같은 이점을 제공한다.코드 학습: 우수한 개발자들이 작성한 코드를 분석하며 좋은 코딩 스타일을 익힐 수 있다.협업 경험: 전 세계의 개발자들과 소통하며 비동기적 협업 방식을 체득할 수 있다.포트폴리오: 실제 프로젝트에 기여한 이력은 개발자로서의 역량을 증명하는 중요한 포트폴리오가 된다.언어 능력 향상: 대부분의 글로벌 프로젝트가 영어를 기반으로 진행되므로 기술..

Programmers 2025.12.22

[70일차]IaC 기반의 인프라 자동화 및 CI/CD 파이프라인 고도화

1. 서론: IaC와 테라폼(Terraform)의 이해1.1 IaC (Infrastructure as Code)IaC는 '코드형 인프라'를 의미하며, 수동으로 서버나 네트워크를 설정하는 대신 코드를 통해 인프라를 생성, 변경, 관리하는 기술이다. 이를 도입함으로써 얻을 수 있는 이점은 다음과 같다.안정성 및 일관성: 사람의 실수(Human Error)를 배제하고 항상 동일한 환경을 구성할 수 있다.재현 가능성: 코드가 존재한다면 언제 어디서든 동일한 인프라를 다시 만들어낼 수 있다.버전 관리 및 협업: 인프라 설정 자체가 코드이므로 Git과 같은 형상 관리 도구를 통해 변경 이력을 추적하고 공유할 수 있다.1.2 구성 관리 (Configuration Management)소프트웨어 시스템에서 '구성(Con..

Programmers 2025.12.19

[69일차]인수 테스트(UAT)의 중요성과 자동화의 난관

인수 테스트(User Acceptance Testing, UAT)란 소프트웨어가 요구사항 명세대로 구현되었는지 최종적으로 확인하는 과정이다. 이는 개발의 마지막 단계에서 비즈니스 요구사항을 충족하는지 검증하는 절차로, 제품의 출시 여부를 결정하는 핵심 단계이다.그러나 UAT의 자동화는 다음과 같은 이유로 난이도가 높다.사용자 참여: 실제 사용자의 행위를 모방해야 하므로 시나리오가 복잡하다.환경의 일치성: 개발, 스테이징, 프로덕션 환경이 미세하게 다를 경우 테스트 신뢰도가 하락한다.릴리스 준비: 애플리케이션의 버전 관리와 배포 준비 과정이 선행되어야 한다.이러한 문제를 해결하기 위해서는 동일한 바이너리(아티팩트)가 파이프라인의 모든 단계에서 사용됨을 보장해야 하며, 이를 위해 아티팩트 리포지토리와 컨테이..

Programmers 2025.12.18

[68일차]CI/CD 환경 구축을 위한 Jenkins(젠킨스)의 이해와 활용

서론배경오늘날 소프트웨어 개발 환경은 급변하는 비즈니스 요구사항에 맞춰 빠른 개발 주기와 안정적인 배포가 필수적인 요소로 자리 잡았다. 과거의 '빅뱅 통합(Big Bang Integration)' 방식은 개발 후반에 코드를 일괄 통합함으로써 피드백이 지연되고 오류 수정에 많은 비용이 소모되는 단점이 있었다. 이러한 문제를 해결하기 위해 등장한 것이 DevOps와 CI/CD(지속적 통합/지속적 배포) 개념이다.목적본 리포트에서는 CI/CD 도구 중 가장 널리 사용되는 오픈 소스 자동화 서버인 Jenkins(젠킨스)의 개념과 특징, 아키텍처를 분석하고, 최신 트렌드인 쿠버네티스(Kubernetes) 환경 및 DevSecOps에서의 활용 방안을 고찰해보고자 한다.CI/CD와 Jenkins의 개요CI/CD의 정..

Programmers 2025.12.17

[67일차]쿠버네티스(Kubernetes)를 활용한 웹 개발 배포 시스템 이해

1. 쿠버네티스(k8s) 개요쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 시스템이다. 도커(Docker)와 같은 컨테이너 기술로 만들어진 애플리케이션들을 대규모 환경에서 효율적으로 운영할 수 있도록 돕는 클러스터 관리 시스템이다.k8s는 사용자가 추구하는 상태(Desired State)를 선언하면, 현재 상태를 지속적으로 모니터링하여 목표 상태를 유지하려고 노력하는 선언적(Declarative) 구조를 가지고 있다.2. 쿠버네티스 클러스터 구성 요소k8s 클러스터는 크게 마스터 노드(Master Node)와 워커 노드(Worker Node)로 구성된다.2.1. 마스터 노드 (컨트롤 플레인)클러스터 전체를 관리하고 제어하는 중심부이다.API 서버: 클러스터의 프론트엔드..

Programmers 2025.12.16

[66일차]웹 개발 파이프라인 구축과 도커(Docker)의 활용

1. 서론: 풀 사이클(Full Cycle) 개발과 파이프라인의 이해현대의 소프트웨어 개발은 단순히 코드를 작성하는 것을 넘어, 개발된 코드가 실제 사용자에게 전달되고 운영되는 전체 과정을 포괄한다. 이를 풀 사이클 개발이라고 하며, 이 과정의 핵심은 개발부터 배포까지의 흐름을 효율적으로 연결하는 파이프라인의 구축이다. 본 보고서에서는 전통적인 인도 프로세스의 한계를 극복하기 위한 CI/CD 방법론과 이를 실현하는 핵심 도구인 도커(Docker)를 중심으로 웹 개발 파이프라인 구축에 대해 논한다.2. 소프트웨어 인도 프로세스의 변화2.1 전통적인 인도 프로세스와 한계과거의 소프트웨어 인도는 '개발(Development) → 품질 보증(QA) → 운영(Operation)'이라는 순차적이고 분절된 단계를 거..

Programmers 2025.12.15

[65일차]오픈 소스, 스펙을 넘어 리더가 되는 법

오늘은 오픈소스를 활용하여 실질적인 '채용(Career)'과 연결하고, 나아가 직접 프로젝트를 이끄는 '저작자(Author)'가 되는 과정을 다룬다.1. 오픈 소스를 활용한 커리어 전략개발자가 오픈 소스 활동을 하는 본질적인 이유는 '필요에 의해서'이지만, 이 과정에서 축적된 경험은 채용 시장에서 강력한 무기가 된다. 입사 지원 시 단순한 스펙 나열을 넘어 구체적인 역량을 증명하는 방법을 알아본다.글로벌 협업 능력 (Collaboration)교내 팀 프로젝트나 소규모 스터디와 달리, 오픈 소스는 전 세계 개발자와 비동기적으로 소통한다.어필 포인트: 얼굴을 보지 않고 텍스트(영어)만으로 논리적인 토론을 거쳐 코드를 반영시킨 경험은 커뮤니케이션 능력을 증명한다.사례: "PR 과정에서 메인테이너가 성능 이슈를..

Programmers 2025.12.12

[64일차]오픈 소스 라이선스의 이해와 전략

오픈 소스의 법적 토대가 되는 '라이선스(License)'를 깊이 있게 다룬다.1. 오픈 소스 판별의 핵심: 라이선스 유무오픈 소스 소프트웨어(OSS)를 학습할 때 가장 먼저 명심해야 할 점은 "소스 코드가 공개되어 있다고 해서 모두 오픈 소스는 아니다"라는 사실이다. 깃허브(GitHub)의 퍼블릭(Public) 레포지토리는 누구나 코드를 볼 수 있지만, 라이선스가 명시되지 않았다면 타인이 이를 자유롭게 사용, 수정, 배포할 권한이 없다.즉, 라이선스 파일(LICENSE)이 존재해야 비로소 오픈 소스로서의 법적 효력을 갖는다.라이선스가 없는 프로젝트를 발견했을 때코드가 유용하거나 학습 가치가 높음에도 라이선스가 없는 경우가 있다. 이 경우 저작권법에 의해 '모든 권리는 저작자에게 있음(All Rights..

Programmers 2025.12.11