SW/DevOps

DevOps : 개발환경구축 : 일반적인 방법

얇은생각 2019. 11. 16. 07:30
반응형

로컬 개발환경 이해를 돕기 위한 간단한 형태의 로컬 개발환경을 소개해드리겠습니다. 그리고 로컬 개발환경 구축을 간단하게 따라해보도록 하겠습니다.

 

실제 소프트웨어 개발 프로젝트에서의 개발환경은 매우 다양한 요건과 관련이 있습니다. 비즈니스에 따라서, 프로젝트 목적에 따라서, 기술에 따라서, 개발조직에 따라서 다양한 형태로 개발환경을 구성할 수 있습니다.

이 개발환경은 자바 기반의 애플리케이션 개발을 위한 것으로 자바 기술이 제일 근간이 됩니다. 개발도구 역시 자바로 개발된 Spring Tool Suite 4를 사용합니다. Spring Tool Suite 4는 이클립스를 기반으로 한 통합 개발환경 도구로서 이클립스의 기본 기능을 그대로 유지하면서 Spring 애플리케이션 개발을 위한 부가적인 기능들이 추가된 것입니다.

그 중 대표적인 기능이 소스코드 버전 관리를 위해 사용하는 Git 플러그인입니다. Git 플러그인은 이클립스에서 기본적으로 제공되지 않는데, 이클립스 마켓 플레이스를 통해 추가 설치할 수 있는 기능입니다.

 

Spring Tool Suite

Spring Tool Suite는 별도의 설치 없이 사용할 수 있도록 기본적으로 제공하고 있습니다. 따라서 별도의 Git을 로컬 개발 PC에 설치할 필요는 없습니다. 또한 기본적으로 Git은 명령어 기반 인터페이스를 사용하는데, Git 플러그인은 이클립스와 통합되어 GUI 기반으로 사용할 수 있습니다.

 

Maven

또 하나, 애플리케이션 개발의 중요한 요소는 프로젝트 빌드 관리를 위해 사용하는 메이븐입니다. 

 

로컬 개발 환경 관점

로컬 개발환경의 관점은 개발자 개인이 애플리케이션을 개발하는 데 중심이 맞춰져 있습니다. 따라서 개발 PC에 저장되는 로컬 저장소가 중심이 됩니다. 개발팀은 전체가 공유하는 소스코드와 라이브러리는 원격 저장소를 사용해야 하고, 그것은 서버 개발환경에서 다루는 내용으로 추후에 다룰 예정입니다.

 

JDK (Java Development Kit)

가장 기본이 되는 자바 개발도구부터 설명 드리겠습니다. 자바는 대표적인 객체지향 프로그래밍 언어입니다. JDK는 자바로 개발하기 위해서 필요한 필수적인 도구로서 자바 가상머신, 자바 컴파일러, 자바 API를 포함합니다. 비교해서 설명할 수 있는 JRE는 자바 런타임 환경으로서 자바로 개발된 애플리케이션을 실행할 수 있는 환경을 지칭합니다.

자바는 한 번 작성하면 어디서든지 실행할 수 있다는 것을 내세웁니다. 이를 위해서 필요한 것이 자바 가상머신으로서 자바로 만들어진 애플리케이션은 가상머신에서 동작하며, 자바 가상머신이 설치된 환경이면 어디서든지 실행이 가능합니다.

이것이 가능한 이유는 자바는 특정 머신 전용의 네이티브 코드가 아닌 가상머신을 위한 바이트 코드라는 중간언어로 컴파일되기 때문입니다. 자바를 널리 사용하게 되는 또 하나의 이유는 수많은 API 패키지가 제공된다는 것입니다. API란 Application Programming Interface로 애플리케이션을 개발할 수 있는 명령어 혹은 라이브러리라고 생각하면 됩니다.

과거에는 GUI, IO, 네트워킹 처리에 있어서 특정 밴더나 기술, 제품에 의존적인 경우가 있었습니다. 하지만 자바의 API는 특정 환경과 관계없이 표준적인 방법으로 사용할 수 있다는 것이 장점입니다. 굉장히 방대한 양의 전체 API 패키지가 제공됩니다. 

API를 사용하기 위해서는 이처럼 API 문서를 참조하여 원하는 기능과 사용 방법을 확인할 수 있습니다. 오픈 JDK는 자바 스탠다드 에디션 플랫폼의 오픈소스 구현체입니다. 자바는 JCP, 자바 커뮤니티 프로세스를 통해서 표준을 관리합니다. JCP에서 JAVA Specification Request, JSR에 자바 스펙의 요구사항을 정의하고, 이것의 공식 레퍼런스 구현체가 오픈 JDK입니다.

오라클 JDK는 오픈 JDK 소스를 기반으로 추가적인 플러그인 등이 추가된 것입니다. 오픈 JDK는 링크 예외가 있는 JPL 버전2 라이선스이며, 오라클 JDK는 오라클 바이너리 라이선스에서 구독형 라이선스로 개편되었습니다. 비상업적인 용도에 한해서는 무료 사용이 가능하다고는 하지만, 실습에서는 오픈 JDK를 사용하겠습니다. 오라클 JDK와 오픈 JDK 간에 기술적인 차이는 크게 없습니다. 다만 사용자 지원 측면에서 오픈 JDK의 편의성은 매우 떨어지는 편이기 때문에 설치부터 쉽지는 않습니다.

오픈 JDK 소스를 빌드해서 공유한 사이트 OpenJdk Build Gitup에 접속해서 다운로드 받아서 설치해보겠습니다. 아래 설명에서 윈도우 설치 파일 다운로드 링크를 확인할 수 있습니다.  다운로드 파일을 실행하고 오픈 JDK 런타임에서 자바홈 Variable를 설정하도록 옵션을 조정합니다.

설치가 완료되었으면 제대로 실행이 되는지 테스트합니다. 윈도우 명령 프롬프트를 띄우고 JAVA 버전을 입력하고 실행했을 때 오픈 JDK 1.8이라고 나오면 정상입니다. 

 

Spring (Framework)

스프링은 스프링 프레임워크라는 애플리케이션 개발 프레임워크로 시작해서 현재는 다양한 프로젝트로 확장되었습니다.자바 API만으로는 최신의 기업용 애플리케이션을 만드는 데 많은 노력이 듭니다. 실제 기업 프로젝트 개발환경에서는 보안 문제, 성능 문제, 생산성 문제, 편의성 등 신경써야 할 부분이 매우 많습니다.

스프링은 실제 프로젝트에서 유용하고 강력한 기능을 굉장히 쉽게 사용할 수 있도록 해줍니다. 스프링은 굉장히 많은 기능을 포함하고 있는데, 특히 세 가지를 강조하고 있습니다.

스프링 부트를 통한 Build Anything, 스프링 클라우드를 통한 Cordinate Anything, 스프링 클라우드 데이터플로우를 통한 Connect Everything입니다.

스프링 프레임워크 파일 버전에서는 Reactive Stack이 추가되었는데, 향상된 퍼포먼스를 위해서 비동기 및 NonBlocking 처리를 지원합니다.

스프링 부트는 로고의 전원버튼 모양이 의미하는 것처럼 버튼을 누르기만 하면 작동되는 수준처럼 매우 쉽고 빠르게 스프링 기반 애플리케이션을 만들 수 있도록 해줍니다.

스프링 클라우드는 클라우드 기반 분산환경, 특히 마이크로서비스 아키텍처 구현을 위한 서비스 디스커버리, 서킷 브레이커, 오토 컨피규레이션, API 게이트웨이, OAuth 등의 기능을 제공합니다.

스프링 클라우드 데이터플로우는 데이터 통합을 위한 오키스트레이션을 제공합니다. 그 밖에도 스프링은 애플리케이션 개발을 위한 다양한 프로젝트를 지속적으로 확장하고 있습니다.

Spring Tool Suite 4는 스프링 부트 개발을 위한 이클립스 기반의 통합 개발환경입니다. 이클립스를 기반으로 하여 스프링 부트 애플리케이션을 쉽게 개발할 수 있도록 기능을 확장한 것입니다. Spring Tool Suite는 자바 기반이기 때문에 자바가 설치된 환경에서 실행이 가능합니다. 직접 다운로드해서 설치를 진행해보겠습니다. 이클립스 외에도 비주얼 스튜디오, 아톰 아이디를 위한 버전도 있습니다.

윈도우 32비트용, 윈도우 64비트용 이클립스 Tool Suite를 다운로드하겠습니다. 다운로드가 완료되면 압축을 풀고, STS 4.01 릴리즈 디렉토리를 실습을 위해서 C드라이브 밑에 DevOps라는 디렉토리를 생성해서 이동시키겠습니다.
STS를 실행해보겠습니다. Spring Tool Suite 4을 실행하게 되면 워크스페이스 환경을 설정할 수가 있는데, DevOps 워크스페이스로 변경한 후 론칭했습니다.

 

GitHub

GitHub은 분산환경 소스코드 버전관리 도구인 Git의 글로벌 웹 호스팅 서비스입니다. 세계 최대의 오픈소스 공유 플랫폼으로서 공개/비공개 저장소를 제공하고, 코드 리뷰, 문서화, 커뮤니티 등을 제공합니다. 가입하면 무료 서비스를 사용할 수 있으며, 이때는 공개 저장소만 사용이 가능합니다. 공개 저장소는 모두에게 소스코드 내용이 오픈됩니다. 비공개 저장소를 사용하기 위해서는 유료로 서비스를 가입해야 합니다.

2018년 8월 기준 9,600만 개 이상의 프로젝트를 호스팅하고 있고, 3,100만 명 이상의 개발자가 GitHub에 참여하고 있다고 합니다. 2018년 6월 4일, 마이크로소프트 사에서는 75억 달러에 인수하기로 발표하기도 하였습니다. 단순히 GitHub의 저장소를 클론할 경우에는 회원가입이 필요 없지만, 직접 원격 저장소를 만들기 위해서는 회원가입이 필요합니다.

반응형