Seoyoung Report

Unix 계열 vs 비-Unix계열

Unix 계열 운영체제

대표적인 예시 : Linux, macOs, Solaris 등

특징

  1. 다양한 개발도구와 IDE(통합 개발 환경)을 제공
  2. 쉘을 기본적으로 제공하며 터미널 환경에서 빠르게 작업할 수 있도록 지원
  3. 보안성과 안정성이 높은 운영 체제
  4. 개발자들이 커뮤니티에서 서로 지원하고 협력하여 개발하는 문화가 활성화되어 있음

비-Unix 계열 운영체제

대표적인 예시 : Windows

특징

  1. GUI(Graphical User Interface)를 중심으로 개발되어 사용이 보다 직관적
  2. 명령어 기반 작업이 Unix 계열 운영체제에 비해 제한적. PowerShell을 사용하면 일부 명령어 기반 작업을 수행할 수 있지만, 전반적으로 GUI 기반으로 작업하는 편
  3. Windows 운영체제는 일부 개발 툴을 제공하지만, Unix 계열 운영체제에 비해 제한적. Windows 운영체제에서 제공하는 개발 툴은 보통 GUI 기반으로 작동

macOs vs Windows

1. 터미널 환경

  • 맥 OS는 Unix 계열 운영체제로, 터미널 환경에서 작업하기 용이
  • Windows OS는 명령 프롬프트와 PowerShell을 통해 명령어 기반 작업이 가능하지만, Unix 계열 운영체제에 비해 명령어 기반 작업이 제한적
  • 참고) 윈도우 환경에서 git bash를 사용하면 단점을 보완할 수 있다.

2. 개발 툴

  • 맥 OS는 기본적으로 Xcode를 제공하며, Swift, Objective-C 등의 언어를 사용해 iOS와 macOS 앱 개발 가능
  • Windows OS는 Visual Studio를 제공하며, 다양한 프로그래밍 언어를 사용해 Windows 앱 및 안드로이드 앱 개발 가능

3. 오픈 소스

  • 맥 OS는 초기엔 대부분 오픈소스 기반으로 개발되어 있지만, 개발자들이 접근 및 수정할 수는 없다.
  • Windows OS는 전반적으로 오픈소스 지향성이 낮다. 일부 오픈소스 프로젝트는 존재하지만, 대개 비오픈소스로 개발되었다.

4. 개발 환경

  • 맥 OS는 애플 제품에서만 작업을 수행하기 때문에, macOS 운영체제가 설치된 Mac 컴퓨터로만 개발 가능
  • Windows OS는 다양한 하드웨어와 소프트웨어와 호환되기 때문에, Windows 운영체제가 설치된 컴퓨터라면 개발 가능

5. 커뮤니티

  • 맥 OS는 개발자들 사이에서 많은 커뮤니티가 존재하는데, 특히 iOS 및 macOS 앱 개발 커뮤니티 활발하게 운영중
  • Windows OS는 많은 개발자들이 사용하지만, 맥 OS에 비해 커뮤니티가 다소 약했다. 그러나 Microsoft는 최근 GitHub를 인수하여 오픈소스 커뮤니티와의 상호작용을 늘리는 등 점점 성장하고 있다.

ios vs android

1. 개발 환경

  • iOS는 Objective-C(C언어)와 Swift 등의 언어로 개발할 수 있으며, Xcode라는 IDE를 사용한다. Xcode는 애플에서 개발된 공식 IDE로, iOS 앱 개발을 위한 도구들을 제공한다.(macOS에서만 개발 가능)
  • 안드로이드는 자바와 코틀린 등의 언어로 개발할 수 있으며, 안드로이드 스튜디오라는 통합 개발 환경(IDE)을 사용한다. 안드로이드 스튜디오는 구글에서 개발된 안드로이드 앱 개발을 위한 공식 IDE로, 안드로이드 SDK, 디버깅 도구, 에뮬레이터 등을 제공한다.
  • 참고) Objective-C는 C언어 기반의 언어이다. Swift는 C언어로 개발하는 불편함을 해결하고자 등장했지만 여전히 Objective-C 또한 많이 사용하고 있다. -> C언어로 개발하는 것이 더 섬세하며 좋은 어플리케이션을 만들 수 있기 때문이다.

2. API와 프레임워크

  • iOS는 Cocoa Touch 프레임워크를 통해 다양한 API와 프레임워크를 제공한다. Cocoa Touch는 iOS 앱 개발에 필요한 모든 API와 프레임워크를 제공하며, Xcode와 함께 제공되는 도구를 이용하여 개발 할 수 있다.
  • 안드로이드는 Android SDK를 통해 다양한 API와 프레임워크를 제공한다. 안드로이드 SDK에는 안드로이드 앱을 만들 때 필요한 모든 도구와 라이브러리가 포함되어 있다. 안드로이드는 특히 Google Play Services API를 이용하여 Google Maps, Google Cloud Messaging, Google Drive 등과 같은 기능들을 쉽게 사용할 수 있도록 해준다.

3. 앱 스토어

  • 안드로이드 앱은 구글 플레이 스토어에서 다운로드할 수 있다. 구글 플레이 스토어는 개방적인 마켓으로, 개발자가 앱을 등록하고 판매하기 쉽다.
  • iOS 앱은 애플 앱 스토어에서 다운로드할 수 있다. 애플 앱 스토어는 규제적이며, 앱을 등록하고 승인받는 과정이 필요하다.

4. 개발 생산성

  • 안드로이드와 iOS 모두 각각의 장점이 있다. 안드로이드는 Java나 Kotlin과 같은 언어를 사용하기 때문에, 생산성이 높고 개발에 필요한 도구와 자료가 많다. iOS는 Objective-C와 Swift와 같은 언어를 사용하고, Xcode와 같은 IDE를 사용하기 때문에, 앱 개발의 품질과 안정성이 높다. 따라서, 개발자는 개발하고자 하는 앱의 특성과 목적에 따라서 적절한 플랫폼을 선택해야 한다.
서브목차