Programmers 87

[79일차]웹 기반 문서 편집기 제작 프로젝트: 설계 및 개발 계획

1. 응용 구조 설계 (Application Architecture)본 프로젝트는 효율적인 문서 편집 및 관리를 위해 프론트엔드와 백엔드가 분리된 티어 구조를 채택한다.1.1. 프론트엔드 (Front-end)기술 스택: React.js역할: 사용자 인터페이스(UI) 및 클라이언트 사이드 로직을 담당한다.통신: 브라우저에서 JavaScript를 실행하여 백엔드 API를 호출한다. 이를 위해 백엔드 서버의 엔드포인트 URL을 내부적으로 관리한다.1.2. 백엔드 (Back-end)기술 스택: Node.js (Express Framework)역할: 비즈니스 로직 처리 및 데이터 모델 서비스를 제공한다.인증 및 보안:JWT (JSON Web Token): 사용자 인증을 수행하고 데이터 접근 권한을 보호한다.COR..

Programmers 2026.01.12

[78일차]웹 기반 문서 편집기 제작 프로젝트의 시작

1. 프로젝트 개요 및 학습 목표 (0-01, 0-02)이 프로젝트는 단순히 작동하는 애플리케이션을 만드는 것을 넘어, 실제 서비스 환경(Production)을 고려한 풀 사이클(Full-Cycle) 웹 개발을 경험하는 데 주안점을 둔다.프로젝트 대상'Programmers Note Editor'라는 웹 기반 문서 편집기를 제작한다.핵심 학습 목표Full Cycle 경험: 데이터베이스 설계부터 백엔드 API, 프론트엔드 UI 개발까지 전체 흐름을 관통한다.환경 중심 사고: 단순히 로컬에서만 동작하는 코드가 아니라, 배포 환경(AWS, Kubernetes)과 개발 환경의 차이를 이해하고 이를 코드로 제어하는 능력을 기른다.자동화 파이프라인: CI/CD를 위한 요소 기술(Docker, Jenkins, Terr..

Programmers 2026.01.09

[77일차]오픈소스 프로젝트의 완성: npm 배포 및 관리 가이드

개발한 라이브러리를 전 세계 개발자들과 공유하기 위한 마지막 단계는 패키지 매니저에 등록하는 것이다. JavaScript 생태계에서 가장 거대한 저장소인 npm(Node Package Manager)에 배포하는 방법과 주의사항을 정리한다.1. 사전 준비: npm 계정 생성 및 인증배포를 위해서는 npm 공식 사이트의 계정이 필요하다.회원가입: npmjs.com에서 계정을 생성한다. 이때 입력한 이메일은 반드시 인증(Verify) 과정을 거쳐야 배포 권한이 부여된다.CLI 로그인: 터미널에서 다음 명령어를 입력하여 로컬 환경과 npm 계정을 연결한다.npm login명령어를 입력하면 웹 브라우저가 실행되며 인증을 진행하게 된다.2. 프로젝트 설정 최적화2.1 package.json 구성package.jso..

Programmers 2026.01.08

[76일차]오픈소스 프로젝트 구축 및 자동화

오픈소스 프로젝트는 거창한 아이디어에서 시작되는 것이 아니라, 개발 과정에서 겪는 불편함을 해결하려는 작은 노력에서 시작된다. 본 가이드는 효율적인 오픈소스 운영을 위한 레포지토리 설정부터 GitHub Actions를 활용한 자동화 검사까지의 과정을 다룬다.1. 프로젝트 주제 선정 및 방향성오픈소스의 주제는 복잡한 로직보다는 다른 개발자들이 쉽고 유용하게 사용할 수 있는 기능에 집중하는 것이 좋다.실용성: lodash.js나 immer.js처럼 복잡한 내부 구동 과정을 몰라도 결과를 즉시 확인할 수 있는 도구가 좋은 예시이다.확장성: 사용자들의 다양한 요구사항을 반영할 수 있도록 구조적 유연성을 확보해야 한다.필요성: 개발 과정 중 반복적으로 발생하는 불편함을 해결하는 유틸리티 성격의 라이브러리는 훌륭한..

Programmers 2026.01.07

[75일차]오픈소스 탐색과 기여

유명한 오픈소스 프로젝트는 기여자와 사용자가 많아 비교적 개발이 안정된 경우가 많다. 그렇기 때문에 많은 사람들이 이미 진행한 이슈가 있을 가능성이 높고, 새롭게 기여할 작업을 찾는 데 어려움을 느낄 수 있다. 하지만, 난이도의 향상을 원하거나 더 큰 도전에 도전해보고 싶은 경우라면, 이러한 유명 프로젝트에 기여를 시도해 보는 것도 좋은 선택지가 될 수 있다. 또한 실질적인 기여를 하지 못하더라도 타인이 시도한 기여 흔적과 토론을 보면서 오픈소스 협업이 어떻게 이루어졌는지 좋은 참고가 될 수 있을 것이다.📑 추천 오픈소스 프로젝트아래는 초보자에게도 비교적 쉽게 접근할 수 있고, 많은 개발자들이 사용하는 오픈소스 라이브러리들이다:react-icons: 다양한 아이콘 셋을 React 애플리케이션에서 쉽게 ..

Programmers 2026.01.06

[74일차]first-contributions 기여

오픈소스에 기여하는 것은 개발자로 성장하는 데 있어 정말 중요한 경험이다. 하지만 처음 도전하려고 하면 막연하고 어렵게 느껴지기도 한다. 그래서 이번 학습에서는 first-contributions라는 오픈소스 프로젝트를 활용해 기초적인 기여 과정을 연습해 보려고 한다. 이 과정을 통해 Git과 GitHub의 기본적인 사용법뿐만 아니라, Pull Request(PR)를 제출하는 방법까지 실습할 수 있다.first-contributions 프로젝트란?first-contributions는 오픈소스 초보자들이 기여 과정을 안전하고 쉽게 연습해볼 수 있도록 도와주는 프로젝트이다. 처음 기여자를 위한 안내서를 제공하며, 별도의 작업 공간에서 실습을 진행할 수 있다. 누구에게나 열려있는 프로젝트이니 부담 갖지 않고 ..

Programmers 2026.01.05

[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