사용자 요구사항
사용자 요구사항 (User Requirements) 개요 사용자 요구사항(User Requirements)은 소프트웨어 공학 및 시스템 개발 과정에서 최종 사용자나 이해관계자가 시스템이 수행해야 할 기능, 성능, 제약 조건 등을 자연어(Natural Language)로…
사용자 요구사항 (User Requirements) 개요 사용자 요구사항(User Requirements)은 소프트웨어 공학 및 시스템 개발 과정에서 최종 사용자나 이해관계자가 시스템이 수행해야 할 기능, 성능, 제약 조건 등을 자연어(Natural Language)로…
코딩 컨벤션 (Coding Convention) 1. 개요 코딩 컨벤션(Coding Convention)이란 소프트웨어 개발 시 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해 개발자 간에 약속한 일관된 코드 작성 규칙의 집합을 의미한다. 현대의 소프트웨어 개발은…
멱등성 (Idempotence) 1. 개요 멱등성(Idempotence)이란 동일한 연산을 여러 번 수행하더라도 결과가 처음 한 번 수행했을 때와 동일하게 유지되는 성질을 의미한다. 수학적으로는 함수 에 대하여 다음과 같은 식이 성립할 때 이 함수를 멱등하다고 정의한다…
SRE (Site Reliability Engineering) 1. 개요 SRE(Site Reliability Engineering, 사이트 신뢰성 공학)는 소프트웨어 엔지니어링 방법론을 시스템 운영에 적용하여, 서비스의 가용성, 성능, 신뢰성을 체계적으로 관리하고 확…
배포 전략 (Deployment Strategies) 1. 개요 배포 전략(Deployment Strategy)이란 개발 완료된 소프트웨어 버전을 실제 운영 환경(Production Environment)에 적용하는 체계적인 방법론을 의미합니다. 현대의 소프트웨어 개발…
SOP (Standard Operating Procedure) 개요 SOP(Standard Operating Procedure, 표준 운영 절차)는 조직 내에서 특정 업무나 작업을 수행할 때 따라야 할 표준화된 단계와 지침을 의미합니다. 소프트웨어 개발 분야에서는 코드…
SDK (Software Development Kit) SDK(Software Development Kit, 소프트웨어 개발 키트)는 특정 소프트웨어 플랫폼, 라이브러리, 하드웨어 장치를 대상으로 애플리케이션을 개발하기 위해 필요한 도구, 예제 코드, 문서, API(A…
아파치 라이선스 (Apache License) 아파치 라이선스(Apache License)는 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 개발한 자유 소프트웨어 및 오픈 소스 소프트웨어 라이선스입니다. 현재 널리 사용되는 버전은…
빌드 라이프사이클 (Build Lifecycle) 개요 빌드 라이프사이클(Build Lifecycle)은 소프트웨어 개발 과정에서 소스 코드를 컴파일, 테스트, 패키징, 배포하기까지의 일련의 자동화된 단계를 의미합니다. 현대의 소프트웨어 공학에서 빌드 라이프사이클은 단…
애자일 (Agile) 애자일(Agile)은 소프트웨어 개발 방법론 중 하나로, 계획된 일정을 엄격하게 따르기보다는 빠른 피드백 루프와 지속적인 개선을 통해 변화하는 요구사항에 유연하게 대응하는 접근 방식을 의미합니다. 2001년 '애자일 소프트웨어 개발 선언(Agile…
GitHub 리포지토리 개요 GitHub 리포지토리(Repository, 줄여서 Repo)는 GitHub 플랫폼에서 소스 코드, 관련 파일, 그리고 프로젝트의 전체 기록을 저장하고 관리하는 핵심 단위입니다. 리포지토리는 단순히 코드가 모여 있는 폴더를 넘어, 버전 관리…
로컬 NuGet 서버 개요 로컬 NuGet 서버(Local NuGet Server)는 .NET 생태계에서 사용되는 패키지 관리 시스템인 NuGet을 조직 내부 네트워크 환경에 구축하여 운영하는 서버입니다. 일반적으로 NuGet.org와 같은 공용 패키지 레지스트리(Re…
DevSecOps DevSecOps(Development, Security, and Operations)는 소프트웨어 개발 생명주기(SDLC) 전반에 걸쳐 보안(Security)을 통합하는 문화, 자동화, 프로세스의 집합을 의미합니다. 전통적으로 보안은 개발 과정의 마…
Vim Vim(Vi IMproved)은 유닉스 환경에서 널리 사용되는 고기능 텍스트 편집기이다. 1991년 브람 모엘렌더프(Bram Moolenaar)에 의해 처음 공개되었으며, 원래의 Vi 편집기를 기반으로 다양한 기능이 추가되고 개선되어 'Vi의 개선된 버전'이라는…
포크(Fork) 포크(Fork)는 소프트웨어 개발, 특히 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 환경에서 사용되는 핵심 개념으로, 기존 저장소(Repository)의 복사본을 생성하여 독립적인 개발 경로를 만드…
Dependabot Dependabot은 GitHub에서 제공하는 오픈 소스 자동화 도구로, 프로젝트의 의존성(dependency)을 자동으로 감시하고 업데이트하는 기능을 수행합니다. 주로 보안 취약점 패치, 라이브러리 버전 업그레이드, 그리고 관련 설정 파일의 동기화…
개발 문화 (Development Culture) 개요 개발 문화(Development Culture)란 소프트웨어 엔지니어링 팀이나 조직 내에서 공유되는 가치관, 신념, 행동 양식, 그리고 업무 관행을 포괄하는 개념입니다. 단순히 코드를 작성하는 기술적 능력을 넘어,…
GitHub Actions GitHub Actions는 GitHub가 제공하는 클라우드 기반의 지속적 통합 및 지속적 배포(CI/CD) 플랫폼입니다. 개발자가 코드 저장소(Repository) 내에서 소프트웨어 빌드, 테스트, 패키징, 배포 및 기타 워크플로를 자동화할…
버전 관리 버전 관리(Version Control)는 소프트웨어 개발 과정에서 소스 코드나 문서 등의 변경 이력을 체계적으로 추적하고 관리하는 기술 및 절차를 의미합니다. 개발 팀이 협업하는 환경에서 코드의 수정, 병합, 복구 등을 효율적으로 수행할 수 있도록 도와주며…
bash Git 설정 (한 번만 수행) git config --global user.name "홍길동" git config --global user.email "example@email.com" 새 프로젝트 시작 git init 기존 프로젝트 가져오기 git clone…