Web

[언그래머] 쉰세번째 아티클_CI/CD란 1탄

송코딩 songcoding 2023. 12. 22. 07:59

안녕하세요,

김송아입니다.

 

 

연말이나 연시 그리고 이벤트가 있는 날엔, 요즘 우린 카카오톡 이모티콘을 보내지만

혹시..이 이모티콘(?)을 기억하시는 분들 계신가요?

 

 

카톡이 등장하면서 자연스레 사라진 문화죠ㅋㅋㅋ (굉장히 아쉽)

2010년에 등장한 카카오톡은 유료 문자를 무료로 보낼 수 있다는 엄청난 패러다임을 선포하며 세상을 지배합니다.

 

 

기억하시나요?

등장 당시에는 정말 채팅 밖에 없었답니다..?

@LG Uplus 블로그

 

 

 

혹시 지금 카카오톡 한번 들어가보시겠어요?

메뉴가.. 기능이.. 정말 많죠? (동공지진)

 

@카카오톡

 

 

 

이렇게 커진 어플리케이션은 카카오톡 뿐만이 아닙니다.

대부분의 어플리케이션들은 시작은 미약했지만 지금은 모두 창대한 기능을 가지고 있죠.

 


 

 

이러한 서비스의 확장은,
하나의 어플리케이션을 만들때 여러 개발자들이 작업을 해야한다는 말로 바꿀 수 있습니다.

즉, 하나의 어플리케이션을 만들기 위해, 여러 개발자들이 각기 다른 기능을 동시에 작업해야한다는 것이죠.

 

 

그래서 보통 조직에서는 버전 관리 시스템(서른두번째 아티클 참고)을 사용하고,
특정 요일이나 일자를 정해서 (일명. 병합의 날) 모든 분기 소스 코드를 병합하는 등
코드를 합치기 위해 많은 노력을 기울입니다.

 

 

🤔 단순히 병합은 그냥 알아서 하면 되는 거 아니냐구요?

‼️ 안됩니다!

 

@네이버 블로그 365님

 

 

이렇게 날까지 정해가면서 코드를 합치려는 이유는,
각기 다른 기능을 개발한 코드이더라도,

혹~~~~시나 다른 개발자가 개발한 코드와 동시에 적용하는 변경 사항과 충돌할 수 있기 때문이죠.

 

 

 

그래서 등장한 개념이 바로 CI입니다.

 

지속적 통합(Continuous Integration, CI)

쉽게 말해, 개발자들이 코드 변경 사항을 다시 병합하는 작업을 더욱 수월하게 자주 수행할 수 있게 도와주는 개념입니다.

 

개발자가 애플리케이션에 적용한 변경 사항이 병합되면 다음과 같은 일을 자동으로 수행해해줌으로써

코드 통합을 빠르고, 지속적으로 할 수 있게 합니다.

 

✔️ 변경 사항이 애플리케이션을 손상시키지 않도록 자동으로 애플리케이션 구축

✔️ 각기 다른 레벨의 자동화된 테스트(일반적으로 단위 테스트 및 통합 테스트)

 

 

즉, 변경된 클래스와 기능은 물론이고
전체 애플리케이션을 구성하는 서로 다른 모듈에 이르기까지 자동화된 테스트를 수행함으로써

기존 코드와 신규 코드 간의 충돌이
어떤 버그를 일으킬 지 개발자가 매번 일일이 확인하지 않아도(=걱정하지 않아도) 되는 것이죠!

 

 

 

 

그럼 이걸 어떻게 구축하냐구요?

CI를 담당하는 서버를 구축하면 됩니다 (단순한 척)

💡 서버는 어려운 개념이 아니죠?
서빙(Serving) 역할 즉, 사용자에게 데이터를 제공하는 역할을 하는 컴퓨터를 말합니다.

 

 

CI를 담당하는 서버를 별도로 구축해두면, 

다음과 같은 구조를 가지게 되고

우리는 소스 코드를 변경해서 버전 관리 시스템에 올리기만 하면
CI 서버가 알아서 어플리케이션을 단위~통합 테스트 해보고 성공했는지 안했는지, 모든 개발자들에게 알려주는 거죠

 

@Redhat

 

 

 

결국 CI를 구축해두면.. 

개발자들은 서로 코드가 충돌할까봐 또는 전체적인 기능에 영향을 줄까 걱정 안해도 된다~ 라는 뜻입니다.

 

 

ps. 잘 아시겠지만, CI는 CD와 짝꿍이죠?ㅎ.ㅎ

다음 아티클에선 CD를 알아보고, 유명한 CI/CD 서버도 알아보자구요😉

 

 


 

 

CI든 CD든😇

일단 이번 주말은 크리스마스 연휴네요🎄🎄🎄

 

 

모두 산타 할아버지에게 내 인생에서 CI 서버 하나씩 놔달라고 소원 빌고!

행복한 크리스마스 보내시길 바랍니다.

 

메리 크리스마스💚

 

 

감사합니다.

김송아 드림

 

 

 

 

 

아니 근데 잠깐, 옆집 사는 김송아가 유데미 강의를 냈다고?
 
옆집 개발자 지금 구경가기 👇🏻