일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 좋은 객체지향 설계 원칙
- 스프링 데이터 JPA
- 스프링 컨테이너
- JPA
- Not Acceptable
- Controller
- RunWith
- restTemplate
- 스프링
- entity
- jdbc template
- Java Reflection API
- ResponseEntity
- 키움
- testresttemplate
- jdbc
- 의존관계 자동 주입
- 406 NOT_ACCEPTABLE
- 테스트 코드
- 컴포넌트 스캔
- 기본 생성자
- 랜덤 포트
- 의존성 주입
- SpringBootTest
- 정적 컨텐츠
- 스프링 IoC 컨테이너
- 405 METHOD_NOT_ALLOWED
- 가을야구
- 통합 테스트
- 빈 스코프
- Today
- Total
코드네임 JY
[DevOps] 빌드와 배포, CI/CD 본문
🍿 빌드와 배포
빌드 (컴파일 + 링크)
✅ 컴파일 : 작성한 소스 코드를 바이너리 코드로 변환하는 과정
✅ 링크 : 컴파일 결과물에서 실행 가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 과정
→ 빌드는 소스 코드를 실행 가능한 소프트웨어 산출물(jar, war 등..)로 만드는 일련의 과정이다!
배포
✅ 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치하는 것
✅ 빌드하고 생성된 jar 또는 war 파일을 웹 어플리케이션 서버에 올리는 것
여기까지는 알겠다! 근데 하나의 프로젝트를 만들어서 지속적으로 서비스를 제공하려면..
기능을 만들고, 테스트 코드 작성하고, 검증이 완료되면 Github에 코드를 올리고.. 하는 등의 과정을 반복해야하는데,
(매일 내가 그 작업만 하고 있을 수는 없으니) 자동화의 필요성이 생긴다..! 그래서 생긴 개념이 바로..
🍩 CI / CD
CI (Continuous Integration)
✅ 코드의 새로운 변경 사항이 정기적으로 빌드(Build) 및 테스트(Test)를 거쳐 리포지토리에 병합(Merge)되는 과정
✅ 지속적으로(Continuous) 통합(Integration)을 진행하는 것 → CI
CD (Continuous Delivery or Deployment)
✅ 개발자의 변경 사항이 있는 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 배포하는 것
✅ 지속적으로(Continuous) 제공(Delivery)하거나 자동으로 배포(Deployment)하는 것 → CD
어쨌든! 개발자가 만든 코드를 나만 사용할 순 없으니! 다른 사람들이 사용할 수 있도록 서비스하는 것이 필요하다!
그래서 나의 코드를 서비스할 수 있게 해주는 도구들이 몇 가지 있는데..!
지금까지 공부하면서 들어본 CI/CD 도구는 이 정도이다! 사실 배포는 처음이라...
Jenkins나 Travis CI는 좀 복잡하다고 해서 학교 선배님이 Github Actions를 추천해주셨다!
다음 포스팅에는 Github Actions를 사용해 실제로 내가 만든 코드를 배포해보겠다!
'백엔드 공부' 카테고리의 다른 글
[오브젝트] 객체지향 설계 (0) | 2023.02.05 |
---|---|
[DevOps] Github Actions CI/CD (0) | 2023.01.27 |
[CRUD 연습] CRUD 기능 구현 (0) | 2023.01.13 |
[CRUD 연습] 405 Error in Spring (0) | 2023.01.12 |
[CRUD 연습] 406 Error in Spring (0) | 2023.01.12 |