DevOps(7)
-
소프트웨어 개발의 기능 토글(Feature toggle)이란?
기능 플래그(Feature flag)라고도 하는 기능 토글은 팀이 전체 배포 없이 소프트웨어의 기능을 선택적으로 활성화 또는 비활성화할 수 있는 소프트웨어 개발 기술이다. 기능 토글은 다음과 같은 다양한 이유로 유용할 수 있다. 새로운 기능 테스트 (Testing new features) 기능 토글을 사용하면 팀이 모든 사용자에게 표시하지 않고 프로덕션 환경에서 새로운 기능을 테스트할 수 있다. 이는 기능을 완전히 릴리스하기 전에 피드백을 수집하고 문제를 식별하는 데 유용할 수 있다. 롤백 (Rollback) 새 기능으로 인해 프로덕션에서 문제가 발생하는 경우 팀은 기능 토글을 사용하여 전체 배포 없이 기능을 빠르게 비활성화할 수 있다. 롤아웃 (Rollout) 팀은 기능 토글을 사용하여 새로운 기능을 ..
2022.12.21 -
트렁크 기반 개발(Trunk-based development) 개념 정리
트렁크 기반 개발은 코드 변경 사항을 "트렁크"(혹은 main)라고도 하는 프로젝트 코드베이스의 주요 분기에 직접 커밋하는 것과 관련된 소프트웨어 개발 방법이다. 이 접근 방식은 개발자가 작업 중인 각 기능 또는 버그 수정에 대해 별도의 분기를 만드는 기능 분기와 같은 다른 분기 모델(Git Flow 등)과 대조된다. 트렁크 기반 개발의 주요 이점 중 하나는 그것이 제공하는 단순성이다. 여러 브랜치를 관리할 필요 없이 개발자는 트렁크만 걱정하면 된다. 이렇게 하면 프로젝트의 코드베이스를 더 쉽게 이해할 수 있고 개발자가 코드 변경에 대해 더 쉽게 협업할 수 있다. 트렁크 기반 개발의 또 다른 이점은 코드 변경을 더 자주 배포할 수 있다는 것이다. 개발자는 코드 변경 사항을 트렁크에 직접 커밋하므로 이러한..
2022.12.14 -
애자일 소프트웨어 개발(Agile software development) 개념 정리
애자일 소프트웨어 개발은 신속한 제공, 협업 및 변화하는 요구 사항에 적응하는 능력을 강조하는 인기 있는 소프트웨어 개발 방법이다. 이 접근 방식에는 많은 이점이 있지만 조직에서 채택하기 전에 고려해야 할 몇 가지 잠재적인 단점도 있다. 애자일 소프트웨어 개발의 장점 더 빠른 제공 애자일 팀은 "스프린트"라고 하는 짧은 개발 주기로 작업하므로 작동하는 소프트웨어를 빠르고 자주 제공할 수 있다. 이는 제품을 시장에 빨리 출시해야 하거나 소프트웨어를 자주 업데이트해야 하는 조직에 특히 유용할 수 있다. 협업 및 커뮤니케이션 애자일 팀은 일반적으로 소프트웨어를 제공하기 위해 긴밀하게 협력하는 교차 기능 팀 구성원으로 구성된다. 이를 통해 공동 작업과 열린 의사소통을 장려하여 더 나은 결과를 얻을 수 있다. 유..
2022.12.12 -
단일 저장소(Monorepo)에 대한 개념 정리
단일 저장소(Monorepo)는 프로젝트의 모든 소스 코드를 단일 저장소에 저장하는 버전 제어 시스템이다. 이는 프로젝트의 여러 부분이 별도의 저장소에 저장되는 다중 저장소 접근 방식과 대조될 수 있다. 단일 저장소는 코드 관리 및 구성 측면에서 제공하는 이점으로 인해 최근 몇 년 동안 인기를 얻었다. 단일 저장소 사용의 주요 이점 중 하나는 개발자가 프로젝트의 여러 부분 간의 종속성을 쉽게 관리할 수 있다는 것이다. 다중 저장소 설정에서 개발자는 종속성을 수동으로 처리하고 각 종속성의 올바른 버전이 사용되고 있는지 확인해야 한다. 단일 저장소를 사용하면 모든 코드가 같은 위치에 저장되므로 이러한 종속성을 보다 쉽게 관리할 수 있다. 또한 필요한 모든 코드가 단일 위치에 저장되므로 코드를 더 쉽게 테스트..
2022.12.11 -
Firebase란? - Firestore, Cloud Functions, Hosting
Firebase는 웹 및 모바일 애플리케이션을 개발하고 관리하기 위한 다양한 도구와 서비스를 제공하는 Google 지원 플랫폼이다. Firebase의 핵심 구성 요소 중 하나는 확장 가능한 클라우드 기반 NoSQL 데이터베이스인 Firestore다. 이번 글에서는 Firestore와 다른 두 가지 중요한 Firebase 기능인 Cloud Functions 및 Hosting에 대해 자세히 살펴볼 것이다. Firestore Firestore는 개발자가 데이터를 실시간으로 저장, 검색, 쿼리할 수 있는 문서 기반 데이터베이스다. 유연하고 확장 가능하도록 설계되어 광범위한 응용 프로그램 및 사용 사례에 적합하다. Firestore의 주요 이점 중 하나는 연결된 모든 장치에서 데이터를 자동으로 즉시 업데이트할 수..
2022.11.27 -
CI/CD란? - 테스트, 배포 자동화
CI/CD CI/CD는 Continuous Integration(CI)와 Continuous Delivery/Deployment(CD)를 통합해서 부르는 용어다. CI/CD는 개발 과정에서 필요한 빌드, 테스트, 배포 등의 과정을 자동화한다. CI/CD 자동화를 통해서 개발자들은 코드를 자동으로 테스트하고 배포할 수 있고 이를 통해 효율적인 작업과, 더 빠르고 더 자주 배포를 진행할 수 있게 된다. CI Continous Integration은 코드를 지속적으로 통합해나가는 것을 의미한다. 일반적으로 코드의 통합은 GItHub의 PR을 통해서 진행할 수 있기에 CI 과정에서 도대체 무엇을 하는 건자 의아할 수 있다. 여기서 말하는 코드의 통합은 단순히 코드와 코드를 합치는 것뿐만이 아니라 코드를 테스트하..
2022.10.25 -
서버(Server)와 클라우드 컴퓨팅(Cloud Computing)
Server “서버에 배포한다”, “서버에 올린다”, “서버가 터졌다” 이런 말들을 많이 들어봤을 것이다. 그러면 여기서 말하는 “서버”는 무엇일까? 사전적 의미의 Server는 무언가를 제공해주는 사람이나 물건을 의미한다. 좀 더 나아가서 우리가 일상생활, 그리고 IT 업계에서 말하는 서버는 “무언가를 제공해주는 컴퓨터”이다. 우리는 인터넷으로 특정한 웹사이트나, 리소스에 접근한다. 하지만 정확히 말하자면 우리가 접근하는 대상은 웹사이트, 리소스 자체가 아니라 해당 웹사이트와 리소스를 응답해주는 컴퓨터에 접속하는 것이다. 추상적으로 서비스가 운영되고 제공되는 과정을 알아보자면, 먼저 서비스를 운영하기 위해 특정 컴퓨터를 가동하고, 해당 컴퓨터에서 특정 프로그램을 실행시켜서 컴퓨터에 네트워크를 통해 접근..
2022.09.26