형이 바빠서 다이나믹 대 스태틱을 못 싸주고 잇다.
지금 일터 개발 프로세스가 이제까진 중구난방 카오스 라도 문제 안되는 수준이었는데, 조금씩.틀을 갖추면서 때가 되어서 형이 과감히 메쓰를 들었다.
오늘은 그런 형의 노하우를 공개해주니, 니들은 잘 숙지했다가 필요할 때 잘 써먹도록.
보통 서비스를 개발하면 세네개 정도 유사 환경을 끌고 나가야 된다.
1. 로컬 개발 환경
2. 네트워크에 설치된 개발/테스트 환경
3. 프로덕션 가기 전 스테이징 환경
4. 프로덕션
니가 위 각각의 환경을 개발 단계 및 버전 컨트롤에 잘 맵핑하면 그게 소프트웨어 개발 프로세스가 됨.
형은 단순한걸 조아라 해서 위 환경에서 크게 두 단계로 구분
1. 개발 단계
2. 릴리즈 단계
개발 단계는 로컬 및 네트워크 개발 환경에서 일하는 것이고 릴리즈 단계는 스테이징 및 프로덕션에서 버그를 해결해주는 단계.
이러면 버전 컨트롤 전략은 비교적 명확해 진다. 눈에 명확히 보이게 하기 위하여 브랜치로 구분하면
1. develop
2. staging
3. production
세개의 브랜치가 항상 존재한다.
develop 브랜치에선 항상 일회용 feature 브랜치를 만들어 특정 기능을 구현하고 다시 develop 브랜치로 머지 함
이렇게 일주일간 개발을 하고 나면 개발을 잠시 멈추고 그때까지의 develop 브랜치를 staging 브랜치로 머지하고 그걸 스테이징 환경에 설치해서 일주일간 집중 테스트. 릴리즈 단계의 시작.
만일 문제가 발생하면 일회용 bug 브랜치를 만들어 거기서 고치고 완성후 staging 브랜치에 머지.
일주간의 숙성이 끝나면 staging을 production과 develop 브랜치로 머지. 프로덕션 태그를 붙이고 그걸 정식 릴리즈.
그다음 다시 개발 단계로 돌아옴. 이때부터 production 브랜치에 bug 브랜치가 생겻다 머지하며 추가적 일이 발생할 수 있음. production에서의 머지는 어느 단계에 있냐에 따라 develop 혹은 staging 브랜치로 바로 머지
형의 오래된 경험을 단순화한 가장 최신판 버전 컨트롤 전략이다.
지금 일터 개발 프로세스가 이제까진 중구난방 카오스 라도 문제 안되는 수준이었는데, 조금씩.틀을 갖추면서 때가 되어서 형이 과감히 메쓰를 들었다.
오늘은 그런 형의 노하우를 공개해주니, 니들은 잘 숙지했다가 필요할 때 잘 써먹도록.
보통 서비스를 개발하면 세네개 정도 유사 환경을 끌고 나가야 된다.
1. 로컬 개발 환경
2. 네트워크에 설치된 개발/테스트 환경
3. 프로덕션 가기 전 스테이징 환경
4. 프로덕션
니가 위 각각의 환경을 개발 단계 및 버전 컨트롤에 잘 맵핑하면 그게 소프트웨어 개발 프로세스가 됨.
형은 단순한걸 조아라 해서 위 환경에서 크게 두 단계로 구분
1. 개발 단계
2. 릴리즈 단계
개발 단계는 로컬 및 네트워크 개발 환경에서 일하는 것이고 릴리즈 단계는 스테이징 및 프로덕션에서 버그를 해결해주는 단계.
이러면 버전 컨트롤 전략은 비교적 명확해 진다. 눈에 명확히 보이게 하기 위하여 브랜치로 구분하면
1. develop
2. staging
3. production
세개의 브랜치가 항상 존재한다.
develop 브랜치에선 항상 일회용 feature 브랜치를 만들어 특정 기능을 구현하고 다시 develop 브랜치로 머지 함
이렇게 일주일간 개발을 하고 나면 개발을 잠시 멈추고 그때까지의 develop 브랜치를 staging 브랜치로 머지하고 그걸 스테이징 환경에 설치해서 일주일간 집중 테스트. 릴리즈 단계의 시작.
만일 문제가 발생하면 일회용 bug 브랜치를 만들어 거기서 고치고 완성후 staging 브랜치에 머지.
일주간의 숙성이 끝나면 staging을 production과 develop 브랜치로 머지. 프로덕션 태그를 붙이고 그걸 정식 릴리즈.
그다음 다시 개발 단계로 돌아옴. 이때부터 production 브랜치에 bug 브랜치가 생겻다 머지하며 추가적 일이 발생할 수 있음. production에서의 머지는 어느 단계에 있냐에 따라 develop 혹은 staging 브랜치로 바로 머지
형의 오래된 경험을 단순화한 가장 최신판 버전 컨트롤 전략이다.
뭣들하느냐 개추를 누르지 않고
야이생키들아 쓸데없는 댓글과 무개념 개추는 관두고 관련된 질문 있으면 싸라. 개념찬 질문 선착순 세개만 다해줌
다해줌 -> 답해줌
Ci툴쓰면 스테이징 브랜치는 필요없지 않나 마스터 브랜치 개발브랜치 핫픽스브랜치 피쳐브랜치로 관리하면서 스테이징환경은 ci가 알아서 관리하고
Front/너는 어디서 줃어들은건 잇는데 개념은 없구나. CI툴은 CI 툴일 뿐. 마스터 브랜치와 핫픽스 브랜치는 어디에, 언제, 왜 존재하는지 곰곰히 음미해 봐라
그냥 인터넷에 돌아다니는 성공적인 브랜치 관리전략이랑 다를게 없는데
ㄴ 이 생키가 ㅋㅋㅋ 좌표나 대고 옥수수를 털던지
http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html
ㄴ 얌마 그건 형이 전에 해본건데, 두세가지 문제점이 있다. 첫째 환경과 맵핑이 없다. 둘째 프로세스 단계가 없다. 세째 브랜치의 이름이라는 것이 특별히 의미하는 바가 없다. 쉽게 말해서 니가 그걸 프로세스에 맵핑하는게 애매함. 그리고 비교해보면 영구 브랜치 갯수 부터가 다르고 이름 자체로 니가 언제 어디에 뭘해야 하는가 하는 추상화 레벨 부터가 다른데
브랜친랑딜리버리스테이지개념이섞이는거는 별로테스트랑코드리뷰를마친코드만릴리즈랑머지하고파이프라인은릴리즈만타게하는게간단하다능물론파이프라인을탈코드는자동으로프로덕연까지가도문제없게테스트들은자동화되어있어야겠지이건요새안그런곳은ㅇ벗다고생각하고 - dc App
ㅜㅜ 감사합니다 센세
개추드림