Server Development/Cloud (5) 썸네일형 리스트형 Git Branch 전략 1. 개요 - 한 프로젝트를 개발하는데는 많은 개발자가 동원되어 코드를 수정하는 작업을 하는 것이 일반적이다. 혼자서 진행하는 개인프로젝트인 경우에는 master 브랜치에 수정 후 commit을 하거나 하나의 브랜치만 제작해 수정 후 삭제하더라도 크게 문제되는 부분은 없다. 하지만 개발자가 늘어날수록 브랜치간 충돌, 브랜치가 너무 많아지거나 의미를 파악하기 어려운 상황을 겪게 될 것이다. 따라서 프로젝트나 기업마다 브랜치 전략을 사용해 이를 해결한다. 2. Branch 전략 종류 Github flow Git flow GitLab flow 3. Github Flow - 깃허브에서 만든 단순하고 간결한 브랜치 구조를 의미한다. - Master 브랜치를 중심으로 운영 - 기능 추가, 버그 수정 등 간단한 브랜.. Git Basic 이번 포스트에서는 Git 사용에 대한 전체적인 기본 개념들에 대해서 정리해보고자 한다. 1. GIt 저장소 생성 깃허브를 사용하기 위해서는 기본적으로 회원가입을하고 저장소를 생성한다. 기초 용어 - Repository Name : 저장소 이름 - Description : 저장소 설명 - Public/Private : 오픈소스로 설정할 것인지, 공개하지 않을 것인지 설정 - README : 저장소 상세 설명 - .gitignore : 올리지 않을 파일 설정 - license : 해당 저장소의 라이센스 -> 해당 오픈소스 사용시 자신의 저작물 또한 공개할지 안할지 등을 결정한다. 이 후, 깃을 내 컴퓨터에 설치해 git 명령어를 사용하게 설정을하면 기본적인 세팅이 끝난다. 추가용어 정리 컨트리뷰터 : 해당 .. Docker Basic 도커 (Docker) - 리눅스가 아닌 운영체제에서 리눅스 환경을 가상으로 구축하고 여러 애플리케이션을 설치하여 실행시키는 방법 - 운영체제의 의존도가 줄어든다. - VM과 달리 운영체제 전체를 설치하는 것이 아닌 운영체제의 기능 일부분만을 가져와 사용한다. " 예를 들자면, Docker의 컨테이너 서버에서 데이터를 저장시 명령을 호스트 운영체제의 리눅스 커널을 공유하며 명령을 하고 호스트 운영체제는 HDD 또는 SSD에 데이터를 저장한다. " SSD : 플래시 메모리로 하드디스크와 같이 비화발성이지만 좀 더 빠른 고성능을 제공한다. 특징 - 컨테이너 기반의 오픈소스 가상화 플랫폼 - 프로그램을 외부 환경과 격리시켜 구동 가능하게 해주는 플랫폼 - 서버 운영시 예를 들어, 서버를 구동하는 컴퓨터 위에 도.. CI/CD CI / CD (Continuous Integration/Continuous Deployment) - 정의 : 지속 적으로 코드를 합치고 지속적으로 코드를 배포한다. - 필요한 이유 : 만약 CI/CD 프로그램이 없이 개발자들이 수동으로 코드를 합치고 배포한다면 개발자들의 작은 커뮤니케이션 오류 또는 테스트 코드의 부재가 나중에 큰 문제를 일으킬 수 있다. -> 예를 들어, Dev 서버를 로컬로 불러왔을 때, 동작이 안되는 경우 등을 방지 따라서, 여러명의 개발자가 동시에 개발을 하는 환경 속에서 CI/CD 시스템으로 코드를 합치고 배포하는 과정에 안정성을 부여할 수 있다. CI - 원리 : 코드를 Git등에 Commit하는 과정으로 Jenkins등의 CI 툴은 빌드와 테스트를 진행해 문제 발생시 Com.. Cloud - IaaS vs PaaS vs SaaS 우선, 위의 세가지 개념에 대해 알아보기 전에 Cloud가 뭔지부터 알아봐야한다. 클라우드 나의 컴퓨터 장비를 사용하지 않고 컴퓨터 장비를 대신 구축해주며 해야할 작업이 온라인에 분산되어 존재하는 데이터 센터를 의미한다. 서버 구축시 전력, 위치 서버 세팅, 확정성 등을 고려할 필요가 없어지고 서비스 운영에만 신경쓰면 된다. 1. Without Cloud (On-Premise 방식) 특징 (모든것을 자체 제작) - 어플리케이션 제작해야 한다. - 서버 구성을 위한 하드웨어 장치(CPU 등) 고려 - 컴퓨터 냉각 장치 등 고려 - 냉각을 위한 위치 고려 - 네트워크 연결 장치 고려 - 방화벽 고려 고려할 것 정리 "Application, Data, Runtime, Middleware, O/S, Virtua.. 이전 1 다음