본격적인 코딩강좌에 들어가기 전에 우선 기본적인 개발환경에 대해서 살펴보기로 한다. 본 강좌는 일단 윈도우즈 중심으로 진행이 될 예정이긴 하나 내가 사용하는 환경에 대한 개념을 알기 위해서 다른 플랫폼(OS)등에선 어떤 방식으로 운영이 되는지 아는 것도 중요하다.
Windows
윈도우즈 오에스는 마이크로소프트가 개발한 운영체제이다. 개발환경 또한 마이크로소프트에서 제공하는 개발 솔루션들을 주로 사용하게 된다. 마이크로소프트에서 제공하는 개발환경은 비주얼 스튜디오를 중심으로 여러 언어들의 컴파일러들과 편집기, 프레임워크 및 각종 툴들을 제공하고 있다. 최근에는 비주얼 스튜디오 커뮤니티 버전을 무료로 제공하고 있어 초급 개발자들이 접근하기가 매우 쉬워졌다.
macOS
맥오에스는 애플에서 개발한 운영체제이다. 윈도우즈와 마찬가지로 오에스 개발사인 애플에서 XCode라는 통합 개발 환경(IDE)을 무료로 제공하고 있다. XCode로는 C, C++, Objectiv-C, Swift 등을 이용할 수 있다. 대상 플랫폼은 Mac, iPhone, iWatch, AppleTV 등에서 돌아가는 프로그램들을 개발할 수 있다. 유닉스 커널을 기반으로 하기때문에 안정성이 매우 높고 리눅스에서 사용되는 거의 모든 툴들이 사용가능하다.
Linux
리눅스는 오픈소스 운영체제로 다양한 버전의 오에스들이 존재한다. 마찬가지로 리눅스에서 사용되어지는 프로그램들도 또한 오픈소스로 제공되어진다. 그렇기 때문에, 이를 사용하기 위해선 소스를 가져다가 각자의 리눅스 운영체제에서 직접 빌드(컴파일+링크)해야 하는 경우가 많다. 기본적으로 사용되어지는 언어는 gcc를 통한 C, C++ 등이지만 이 외에도 각종 컴파일러나 스크립트, 인터프리터 언어등은 해당 오픈소스 커뮤니티 등에서 받아와 설치할 수 있다. 좋은점은 모든것이 무료로 제공되고 있다는 것이기는 하나, 사용에 대한 모든 책임은 사용자에게 있으며 기술 지원등은 제공되지 않는다는 단점이 있다. 리눅스에서의 편집은 주로 emacs나 vi등을 사용하고 컴파일과 링크등의 빌드 과정은 주로 커맨드 라인으로 이루어진다. XWindow 기반의 GUI가 설치되어 있다면 이클립스도 사용 가능하다. 요즘은 대부분 윈도우즈나 맥에서 개발을 하고 배포만 리눅스에서 진행하는 경우가 많다.
Java VM
자바는 예전 선마이크로 시스템즈라는 회사에서 개발되었으나 현재는 오라클에서 인수하여 관리되고 있다. 자바는 크로스 플랫폼 사용자 환경이라 각각의 네이티브 플랫폼(윈도즈, 맥오에스등...) 등에서는 기본적으로 무료로 설치가 되고 있으며 필요에 따라서 사용자들이 업그레이드 할 수도 있다. 개발을 하기위한 SDK 또한 무료로 제공되고 있다. SDK만으로는 개발하는데 한계가 있기때문에 보통은 이클립스(또는 STS)라는 통합개발환경(IDE)를 많이 쓴다. 이클립스도 자바로 개발된 툴이라 Java VM 이 설치되어 있는 곳이면 어디서든지 실행이 된다. 그 외 상용 개발환경인 인텔리제이(IntelliJ)라는 툴도 있다.
Web
요즘의 웹 개발은 프론트엔드와 백엔드가 완전히 분리된 채로 개발되어지는 것이 추세다. 백엔드는 서버단에서 개발되어짐으로 위에서 나열되어 있는 오에스에 따라서 WAS 언어와 툴(플랫폼)이 결정되어질 수 있다. 프론트엔드는 웹브라우저(IE, 크롬, 사파리등)의 기능을 이용하여 사용자와의 인터페이스를 담당하는 관계로 특정 플랫폼에 종속되지 않고 개발자의 상황에 맞게 개발환경을 결정할 수 있다. 전통적인 웹 개발 방식으로는 HTML 코드 사이사이 WAS 코드들을 삽입해서 백엔드(서버)단과 프론트 엔드단이 유기적으로 동작하도록 개발하는 풀스택 개발 방식이 있다. 이 또한 어떤 플랫폼에서 개발하는지가 중요한 문제로 플랫폼에 따른 WAS 개발 언어와 프레임워크등을 선택해야 한다. WAS 언어로는 PHP, JSP(스프링), ASP(닷넷)등이 있고 프론트엔드 개발용 솔루션으로는 기본적인 웹(HTML, CSS, JS)이 있고 이를 기반으로하는 리액트, 타입스크립트, 앵귤러등이 있다. 프론트 엔드 개발 툴로서는 현재 마이그로소프트사에서 제공되고있는 비주얼 스튜디오 코드(VSCode)가 많이 쓰이는 편이다.
'개발이야기 > 정보' 카테고리의 다른 글
[개발상식] 개발과 관련된 파일 형식들… (0) | 2022.03.08 |
---|