메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

아리송한 IT 용어/은어 사전 : 오크, 데브옵스, 통합지옥, 슈도코드

한빛미디어

|

2019-11-19

|

by 한빛

819

 

card01.png

아리송한 IT 용어/은어 사전은 개발자 지망생, 신입 개발자 등이 뜻을 잘못 알거나 모르는 개발 용어를 설명하고 관련 도서나 글을 추천하는 콘텐츠입니다. IT 관련 재미있는 용어/은어를 알고 계시다면 댓글이나 webmaster@hanbit.co.kr 메일로 알려주세요.   

 

 

 

 

오크(Oak)

 

오크(Oak)는 떡갈나무나 참나무란 뜻입니다. 가구나 장판 등을 구입할 때 듣는 오크 컬러란 말 들어보셨죠? 

그 오크가 여러분이 잘 아는 프로그래밍 언어 ‘자바(JAVA)’의 이름으로 오크(Oak)였습니다.

 

제임스 고슬링과 아서 밴 호프는 1991년 오라클에 인수되며 역사의 뒤안길로 사라진 썬 마이크로시스템즈에서 오크란 프로그래밍 언어를 개발했습니다. 창밖의 참나무를 보고 이름을 ‘오크’라고 지었다 합니다.

 

오크는 가상머신을 통해 다양한 가전제품에 인식하기 쉬운 언어로 개발됐습니다. 그러나 당시 기기들은 이러한 프로그램을 수행할 만한 성능을 갖추지 못했습니다. 결국, 오크는 팀 버너스 리가 제안한 월드 와이드 웹의 흐름에 올라타며 1995년 자바로 이름이 바뀝니다.

이름을 바꾼 이유는 ‘오크’란 이름이 이미 상표등록이 되어 있었기 때문이라고 합니다.

 

 

데브옵스(DevOps)

 

“데브옵스는 소프트웨어 개발, 운영의 합성어로, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업, 통합을 강조하는 개발환경이나 문화를 말한다.”

 

데브옵스란 개념은 클라우드와 함께 부상했습니다.

전통적인 인프라는 서비스 변화를 따라가기 어려웠습니다. 클라우드로 인프라 구축과 관리가 쉬워지고 코드로도 관리가 가능해지면서 데브옵스가 대두되기 시작한 것입니다.

 

‘타임 투 마켓(Time to Market)’이 비즈니스의 성패를 좌우하는 비즈니스의 핵심 가치가 되면서 린스타트업이 떠오릅니다. 린스타트업은 프로토타입을 시장에 빠르게 내놓고 고객 피드백을 받아 지속 개선하며 비즈니스 방향을 수정해나가는 방법론입니다.

 

린스타트업을 실천하기 위해서는 지속적 통합(CI), 지속적 배포(CD)이 가능해야 했고, 이는 개발과 운영을 하나로 통합하는 데브옵스로 이어집니다. 

 

 

통합지옥(Integration Hell)

 

통합지옥은 전통적인 개발한 코드를 하나로 모아 빌드할 때의 어려움을 지옥에 빗대 표현한 말입니다. 전통적인 개발 과정에서는 개발이 끝난 후 한꺼번에 통합을 하기 때문에, 통합 과정이 몇 시간 또는 며칠이 걸리기도 합니다.

 

통합지옥에 벗어나고자 하는 노력에서 나온 개념이 CI입니다.

여기서 말하는 CI는 기업의 아이덴티티가 아닙니다. Continuous Integration, CI. 지속적 통합입니다.

한꺼번에 모아 통합하기는 어려우니 작은 단위로 코드를 수시로 테스트하고, 통합하자는 것이죠. 자동으로요! 참고로 CI의 대표 도구로는 여러분도 잘 아는 젠킨스(Jenkins)가 있습니다.

 

지속적 통합과 한 세트처럼 쓰이는 말로 CD(continuous delivery), 지속적 배포가 있습니다. 지속적 통합한 것을 바로바로 서비스에 자동으로 반영(배포)하자는 개념입니다.

배포 시 있을 수 있는 휴먼 에러로 인한 서비스 중단을 최소화할 수 있는 방안이죠.

 

CI/CD 장점은 명확합니다. 

애플리케이션 개발 단계를 자동화하고, 짧은 주기로 코드통합, 테스트, 릴리즈, 배포할 수 있게 되죠.

CI/CD를 도입하는 건 그리 쉽지만은 않습니다. 도구 몇 개 도입한다고 정착되는 게 아니고, 구성원 모두가 CI/CD의 필요성을 인지하고 받아들이는 노력이 더 중요하기 때문입니다.

 

 

슈도코드(Pseudocode)

 

영문으로는 Pseudocode. 한국어로는 ‘의사코드’로 위키백과를 펼쳐보면

 

“프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어다. 특정 프로그래밍 언어의 문법에 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드를 말한다. 이 코드는 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없으며, 특정 언어로 프로그램을 작성하기 전에 알고리즘의 모델을 대략적으로 모델링하는 데 쓰인다.”

 

 

댓글 입력
자료실