Loading...

Spring/Tistory / / 2022. 6. 2. 12:12

CI / CD 환경

반응형

왜 리눅스에 배포할까?
윈도우는 라이센스가 있기 때문에 비싸다.


윈도우도 서버있다! IIS
대신 배포 환경으로 사용하면 비용이 발생한다.

나는 윈도우에서 개발하고 리눅스에 던져서 배포할건데 테스트 코드를 안짰어.
포스트맨으로 테스트해보겠지. 

그럼 오래 걸릴거야, 하나하나 body 데이터 넣고 눈으로 보고.

그리고 이걸 .jar파일로 만들어서 리눅스에 던져.


이때 리눅스에 jdk가 설치되어 있어야 하고, 받은 .jar 파일을 실행하면 되는데
폴더 경로도 다르고 환경도 다르기 때문에 리눅스에 던질 때 오류날 수 있어.


근데 로그를 안남기면 뭐가 잘못된지 모르니까 뇌절온다?


실제 서버에서는 출력으로만 남고 허공으로 사라지니까 내가 확인할 방법이 없지.

프로젝트가 실행되고 발생하는 에러를 OS는 에러로 보지않고 표준 출력으로 인식해ㅜ



애초에 이런일이 발생하지 않게 만들어야 한다.
환경을 똑같이하고 개발해.


윈도우에 도커 컨테이너로 리눅스 가상환경을 만든후 테스트를 진행한다.
환경을 똑같이 맞추면 위와 같은 문제가 발생하지 않는다.

근데 지금 얘기할 이 방법이 제일 좋아.

 

내가 윈도우에서 개발하고 리눅스(실서버)에 던져.


윈도우에서 개발한 코드를 CI(Continuous Integration) 서버에 던져. 

여기서 테스트하고 성공하면 .jar파일 리눅스로 던져

CI 서버는 뭐지? 실제서버랑 똑같이 생긴 가짜 서버. 

단순히 리눅스 서버 하나 더 만든건데 실서버랑 똑같은 환경임이 핵심!

내가 윈도우에서 테스트 자체를 안해. 

코드만 작성하고 CI 서버에서 테스트해. 실서버랑 같은 환경에서!
실패하면 build 안하고, 성공하면 .jar파일로 구워서 던지면됨.

계속적인 통합 서버.

CI 서버에서 성공해서 실서버로 던지는 행위를 CD(Continuous Delivery) 라고 한다.

이걸 자동화한 프로그램을 CI/CD라고 한다. 

대표적인 프로그램이 travis, jenkins
CI 서버를 제공해주는 것이다. 얘들이 만들어준다.

얘들을 사용하면 테스트 성공했을 때 알아서 빌드하고 .jar 파일로 구워서 실서버로 던져주기까지 한다.(CD)


보통 윈도우에서 리눅스로 던지기 전에 깃헙에 던지는데
push를 master로 안하고 브랜치로 한다.


master로 푸시하는건 프로젝트가 하나 완성됐다는 것이라서.

master로 푸시했을때 트리거를 하나 만들어서 master로 푸시되면
CI 서버로 던지고 프로젝트 pull, ubuntu, jdk 설치, 테스트하고 빌드!!



CI 를 하기 위해서 junit 사용해서 테스트를 해야합니당~

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 
반응형