gitlab 과 github
회사에서 gitlab 을 도입하여 사용하기로 했다.
github는 써봤는데 gitlab 이라니 같은 회사인줄 알았는데 아니더라!
- 깃랩은 깃랩사가 만들었다.
- 깃허브는 마이크로소프트가 인수했다.
공통점으로 둘다 git 이라는 분산 버전 관리 시스템를 이용하여 소스코드를 관리하는 것이다.
첫번째 난관
예시 파일을 주셨다. 가이드도 주셨다. 기존에 svn 을 사용해서 svn을 끊고 gitlab 연동하는 거는 어렵지 않았다. 형상관리 툴을 연동하는 거니까~ git 을 써봐서 나름 능숙하다.
(아직도 svn 을 쓰는 회사가 있다고? 그럴수도 있더라)
근데 대망의 CICD 이게 문제다. 몇개월간 나를 괴롭혔다. 예시 가이드에서는 분명 원격 저장소에 파일을 올리고 빌드하고, war 파일을 만들어서 서버에 올리던데 나는 가이드와 맞는게 없었다.
- 가이드는 maven 을 사용한다.
- 나는 maven 프로젝트가 아니었다.
- 나는 빌드 파일도 없었다.
- 가이드는 war 로 압축해서 war 파일을 올린다.
- 나는 폴더 구조였다.
빌드 파일이 없다는 것부터 난관의 시작이었다.
공부 시작
그래서 일단 공부를 하기 시작했다. cicd 의 개념부터 시작해서 빌드, 배포 등 대충아는 것들을 완전히 이해하고 넘어가야겠다 싶었다.
cicd
https://finduz.tistory.com/entry/gitlab-cicd-개념-및-생각-정리
gitlab ci/cd 개념 및 생각 정리
gitlab ci/cd 로 변경하고자 알아본 바를 글로 남겨보고자 합니다. CI/CD 란? 어플리케이션 개발 단계부터 배포까지 자동화를 통해서 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있도록 하는
finduz.tistory.com
빌드
빌드를 해본적은 무수히 많다. 생각해보니까 cicd 를 하면서 왜 빌드를 해야하나 생각을 했다. 빌드는 단순히 java → class 바꿔주는 것이 아니다. 배포 하기전 준비 단계의 과정이다. 무슨뜻이냐함은 컴퓨터가 이해할 수 있는 언어로 변환해주는 건 컴파일이라하는데 이런 것들을 빌드 파일에 작성하여 프로젝트 구조에 대한 배포물 형태로 만들어내는 작업이다.
- ant: 자유도가 가장 높아 사용자가 쉽게 만들 수 있지만, 높은 자유도로 인해 사용자가 구조를 잘 파악하여 작성해야한다.
- maven: pom.xml 을 자동으로 생성하여 프로젝트 구조를 파악할 수 있다.
- gradle: ant 의 장점과 maven 의 장점을 합친거. 안드로이드 프로젝트할 때 많이 봤는데, 잘 몰라봤다.. 과거를 반성한다.
배포
배포는 사용자가 사용할 있게끔 운영시스템에 변경된 파일을 적용하는 것이다. 배포에도 몇가지 방법이 존재한다.
1. .war 또는 .jar 파일 배포
- 이 파일 하나를 그대로 서버에 올려 따로 압축 해제 하지 않고 내부 경로를 접근할 수 있다.
- war 파일을 올리고, 서버에서 압축 해제할 수 있다.
프로젝트를 압축물 형태로 만드는 작업이다. .war, .jar 는 압축된 프로젝트물이다.
2. /target 폴더 또는 /dist 폴더로 파일 복사
배포될 파일들(예를들어, 컴파일된 class 파일) 을 target 폴더에 저장하여 이 target 폴더를 서버에 배포한다. 보통 target 폴더 혹은 dist 폴더로 명칭을 사용하더라.
정리해보면
이거다. 자 여기까지 공부와 서칭을 통해 알게된 정보다. 배포는 학생 때 해볼일이 없어서 잘 몰랐다 치고, 현재 회사에서도 그냥 배포할 파일만 내부 시스템에 올리면 되었기 때문에 구조를 딱히 몰라도 살아갈 수 있었다. 근데, 알아보니까 회사마다 배포하는 방식도 전부 다르고, 회사 내에서도 조금은 다를 것 같다. 좁은 우물에만 있으니 그게 세상의 전부인 줄 알았던거다. 🐸
다음에는 내가 선택한 방식들과 시행착오들에 대해 기록을 남길 예정!
'IT' 카테고리의 다른 글
스타트업 혁신가 육성, TEU (0) | 2023.09.08 |
---|---|
GitLab CICD 도입기 ② (0) | 2023.04.16 |
'2023 서울모빌리티쇼' 지극히 주관적인 일반인 후기 (1) | 2023.04.09 |
AWS Certified Cloud Practitioner (CLF-C01) 시험 안내 (0) | 2023.02.19 |
[IT 박람회] World IT Show 2023 소개 (1) | 2023.02.14 |
댓글