ALM 139

Azure Devops - 스크럼 테스크 관리, 빌드, 소스코드 리파지토리, 테스트툴

Azure Devops 조대협 (http://bcho.tistory.com) 페이스북 타임라인을 보다가. “Azure Devop가 나왔는데. JIRA 따위는 꺼져버려.." 라는 말이 있어서 몬가 궁금해서 살펴봤는데 이거 정말 물건이다. MS가 요즘 많이 변하하고 있다고 들었는데, 정말 잘 만든 제품인듯 Devops라고 해서 Monitoring,Logging쪽 제품으로 생각했는데, Task management, 부하 테스트, git repo & 빌드, 빌드 파이프라인, 웹테스트 툴 등이 들어있는데, 전반적으로 정말 좋은듯. 예전 IBM의 Jazz 플랫폼과 컨셉은 비슷한데, UI나 기능이나 반응 속도나 압권이고 거기다가 일부 플랜은 무료다!! 나 같은 개인 개발자(집에서는)에게는 딱이 아닐까 싶다. 대충 후..

ALM 2019.05.15

Apt.ly를 이용한 데비안 리포지토리 생성

Apt.ly를 이용한 데비안 리포지토리 생성 조대협 (http://bcho.tistory.com) 앞의 글에서 Jenkins + Maven 조합을 통해서 애플리케이션 설치 파일을 데비안 패키지로 패키징하는 방법에 대해서 알아보았다. 이제 이 패키지를 서버에 설치하는 방법을 살펴본다.패키지를 설치하는 방법은 간단하게 데비안 패키지 파일을 설치하고자 하는 서버에 복사해놓은 다음에, sudo apt-get install을 이용해서 설치하는 방법도 있지만, 설치하고자 하는 서버마다 복사하기가 번거롭기 때문에 조금 더 쉬운 접근을 위해서 데비안 패키지 서버를 올리는 방법이 있다. 우리가 JDK나 node.js 등 다양한 유닉스 패키지를 apt-get 을 이용하여 설치가 가능한것은 미리 데비안 패키지 리파지토리 서..

Maven을 이용한 데비안(*.deb) 패키지 빌드

Maven으로 데비안 패키지를 만들어보자 (http://bcho.tistory.com)조대협애플리케이션 배포CI/CD 빌드 배포 프로세스에서, 컴파일된 애플리케이션을 배포하는 방법은 여러가지가 있다. 빌드된 바이너리를 Ansible과 같은 Configuration management 도구를 이용해서 배포하는 방법이 일반적이지만, 작업이 복잡한 경우에는 많은 스크립트 작업이 필요한 경우가 있다. 보통 애플리케이션 배포는 단순하게 바이너리만을 복사하는 것이 아니라, 이에 필요한 의존성이 있는 패키지 (예를 들어 JDK나 기타 의존되는 라이브러리)를 배포해야 하는 경우도 있고, 경우에 따라서는 의존되는 파일이나 복잡한 디렉토리 구조를 생성해야 하는 경우가 있다. 이를 Ansible과 같은 Configurati..

gitHub와 Jenkins 연결하기

Jenkins와 gitHub 연동 조대협 (http://bcho.tistory.com) 가장 널리 사용하는 Jenkins와, 소스 코드 리포지토리 서비스인 GitHub를 연동하는 방법에 대해서 알아본다. 시나리오는 gitHub에 코드를 푸쉬하면 Jenkins가 이를 인지해서 자동으로 코드를 내려 받아서 빌드 스크립트를 실행하는 순서로 한다. GitHub에서 Credential 생성 gitHub 자신의 계정으로 로그인 한 후 우측 상단의 자신의 사진이 있는 아이콘을 누르면 메뉴가 나오는데, 여기서 Setting > Developer settings 메뉴로 들어간 후에 아래와 같이 Personal access tokens 메뉴로 들어간다. 다음 우측 상단의 Generate new token 메뉴를 선택한다...

Bazel 빌드 툴에 대해서.

Bazel 빌드툴 Tensorflow Serving을 살펴보다보니, Serving Server는 C++기반에 gRPC 인터페이스 기반이라는 것을 알았는데,빌드 환경이 bazel이라는 것을 사용한다. 그래서 Bazel이 무엇인가 찾아봤는데. 쉽게 말하면 빌드 툴이다 위키에 설명이 가장 잘나와 있는데, 구글에서 만든 빌드 시스템으로, 구글의 경우 큰 소스코드를 빌드하기 때문에, 이를 위해서 만들어진 빌드 시스템을 오픈소스화 한것으로, 분산 빌드등을 제공하고 빠른 성능을 제공한다. 쉽게 말해서 make,ant,gradle,maven과 같은 빌드 시스템으로 보면 된다.Java,C,C++,Python,Object C등의 언어를 지원한다. https://en.wikipedia.org/wiki/Bazel_(softw..

Feature team에서 길드 모델을 이용한, 기술 거버넌스의 확보방안

Feature team에서 길드 모델을 이용한, 기술 거버넌스의 확보방안 조대협 (http://bcho.tistory.com) 지난번에 고민했던, Feature team model에 대해서 조금더 리서치를 해보니, 음원 서비스를 제공중인 Spotify가 이 모델을 조금 더 발전 시켜서 Squad & Tribe 라는 모델을 사용하고 있다. Feature team 모델의 문제점 중의 하나가, Feature 단위로 팀을 나누다 보니 발생하는 문제가, 같은 기술을 쓰는 엔지니어가 다른 팀에 속하기 때문에, 기술에 대한 통제(거버넌스)나 기술 교류가 약해질 수 있는 문제가 있다. 이러한 문제를 해결하는 방법으로는 길드의 개념을 사용한다.길드는 같은 기술을 사용하는 사람들의 모임으로, 기술적인 리더쉽을 위해서 각 ..

ALM/애자일 2015.09.14

애자일 팀 모델에 대하여

애자일 팀 발전 모델에 대하여Functional team, Product Team, Feature Team조대협 (http://bcho.tistory.com) 개요 관리자(CTO)역할을 맏으면서 가장 고민중에 있는 것 중 하나는 팀을 어떻게 모델하여 최적화된 개발팀 구조를 가지느냐 이다.근래의 개발팀의 모델은 애자일 사상에 영향을 받아서 작고, 독립적인 팀의 모델로 진화하고 있으며 대략적인 특징은 다음과 같다.· Self organized· Cross functional· 2 pizza team Cross functional 모델은, 하나의 팀 내에서 기획부터 디자인,개발 및 테스트를 모두 진행할 수 있는 팀 모델로 팀 안에 앱,프론트,백앤드 개발, 기획,테스터와 같은 모든 역할을 하나의 팀내에 모두 가..

ALM/애자일 2015.09.08 (1)

플래닝 포커를 이용한 프로젝트 일정 산정

플래닝 포커를 이용한 프로젝트 일정 산정조대협 (http://bcho.tistory.com) 프로젝트 진행을 하거나, 애자일 방법론 기반으로 스프린트 기반의 프로젝트를 진행할때도 항상 문제가 되는 것이, 일정 산정이다. 먼저 정확한 일정 산정이 어려울 뿐더러, 프로젝트를 진행하는 외부의 인원이 보기에 일정 산정의 근거가 약해서 “왜 저일이 왜 그렇게 오래 걸려요?” 라는 등의 비난을 받을 수 가 있다. 그래서 정확한 일정 산정 프로젝트 일정 관리와 함께, 팀의 일정 산정에 대한 정당성을 확보하는 것 두 가지의 목적을 가지고 있다. 그러나 이러한 일정 산정은 불확실한 미래를 예측하는 작업이기 때문에 매우 어려운데, 이러한 일정 산정의 좋은 기법의 하나로 “플래닝포커(Planning Poker)”라는 기법을..

ALM/애자일 2015.07.22 (2)

스크럼 방법에 대한 회의와, FDD 방법론에 대한 고민

스크럼 모델에 대한 고민 요즘 애자일 스크럼 방법론에 대한 회의를 느끼고 있습니다.가장 널리 사용된다는 스크럼 방법론이고, 예전 몇몇 회사에서도 톡톡히 재미를 봤던 방법론이기 때문에 새로운 팀에 스크럼 방법론을 적용하기 위한 시도를 하고 있습니다. 그런데, 이 스크럼 방법론이 동작하지를 않습니다.스크럼의 전제 조건인 즉슨, 스크럼팀이 Product(상품/서비스) 단위로 움직인다는 개념을 가지고 있습니다.즉 특정 기능이나 모듈에 대해서 특정 팀이 계속해서 오너쉽을 가지고 개발을 진행하는 모델로, 이렇게 하면, 상품에 대한 경험이 지속적으로 쌓인다는 장점이 있습니다. 그리고 기획자 (Product Owner : PO)가 팀 내에 있기 때문에 궁극적으로는 각 서비스가 독립적으로 스스로 기획 부터 개발, 테스트..

ALM/애자일 2015.07.13 (1)