서버에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영해야 한다.


빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드(Build)라고 한다.

서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(Deploy)라고 한다.



Build를 자동화 해야하는 이유

빌드는 하루에 한번을 할 수도 있고 안할수도 있지만 1주일, 1달로 따지면 꽤 많이 한다. 그리고 이게 1년이면 꽤 많은 시간이라고 할 수 있다.


예를들면 옛날에는 자바를 빌드 할 때 javac라는 커맨드를 직접 사용 했지만 지금은 IDEA를 쓰면 main()메소드를 실행하면 javac를 하고 java가 실행이 된다.

이렇게 반복되는 과정은 버튼 하나 또는 단축키로 자동화 시킬 필요가 있다.


왜냐하면 이 작업을 하는데도 집중력, 긴장감 등이 소모 되기 때문이다. 그리고 빌드는 시간이 꽤 걸리는 작업인데(30초 이상 걸림) 빌드를 실행 시키고 나서 빌드가 될 때까지 기다리는 시간도 모아보면 엄청 길 것이다.


개발자의 시간은 소중하기 때문에 최대한 반복작업은 자동화 할 필요가 있다.


암튼 나도 손꾸락으로 빌드를 5개월쯤 하니 자동화를 안시킬 수가 없었다. 수정하고 빌드하고 dev에 올리고 하는데 너무 시간을 많이 잡아먹기 때문이다.



Jenkins란?

위에서 이야기한 빌드를 자동화 해주는 툴이다.


Jenkins는 빌드를 자동화 시키기 위해 사용한다.



Jenkins를 안쓰게 되는 이유

이유1 세팅하기 어렵다
이유2 세팅이 잘 안된다
이유3 세팅이 힘들다

젠킨스를 쓰려면 젠킨스 서버를 띄워야 한다. 그런데 요즘은 그나마 많이 비교적 쉬워져서(비교적 쉬운거지 절대 쉽다는게 아님) 띄울만 해졌는데 전에는 너무 어려웠다.

AWS에 EC2띄우고 젠킨스 받아서 띄우면 되는데 이게 선행 지식이 많이 필요하다.

AWS에 띄울려면 VPC, Security Group, IAM등에 대해 알아야 서버가 띄워도 접근을 못ᅥᆻ하는 안타까운 일이 벌어지지 않는다.

나도 이걸 해볼려고 매년 시도는 했었는데 6년차가 된 지금에야 겨우 git pull받고 build하기까지가 너무 어려웠다.

이런 어려움에도 불구하고 젠킨스를 도입하려고 문서 찾아보고 시간쓰고 하는 이유는 손빌드가 너무 심적으로 힘들기 때문이다.

그러니 부디 자동화를 미리 해놓는게 가장 시간을 아끼는 길이다.



https://namu.live/b/live?p=5


'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

데몬(Daemon)서비스  (0) 2018.11.30
Jenkins [제킨스]  (0) 2018.11.28
ZooKeeper  (0) 2018.11.21
Redis cluster  (2) 2018.11.20
DB 분류 및 종류  (0) 2018.11.20

+ Recent posts