#1. 운영체제의 이해

1. 운영체제(Operating System)?

  • 컴퓨터의 성능을 높이고, 사용자에게 편의성 제공을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로그램
  • 하드웨어를 제어할 수 있게 하는 소프트웨어
  • 컴퓨터 사용시 실행되는 모든 프로그램들은 운영체제에서 관리하고 제어

 

2. 운영체제의 종류

  • MacOs, Windows, Linux, iOS, Android 등등
  • 단일 사용자용 운영체제 : 하나의 컴퓨터를 한명의 사용자가 사용하는 것
    • 클라이언트용 운영체제

 

  • 다중 사용자용 운영체제 : 하나의 컴퓨터를 여러명의 사용자가 동시에 사용하는 것
    • 서버용 운영체제
    • 동시에 여러 사용자의 서비스를 요청 받아 처리함
    • Window Server, Solaris, Redhat, Fedora 등등

MacOS
Windows
Linux

 

#2. 운영체제의 목적

1. 컴퓨터 하드웨어 관리

  • 컴퓨터에는 CPU, RAM, DISK, 키보드, 마우스, 모니터, 네트워크 장치 등 많은 하드웨어로 이루어져 있다.
  • 컴퓨터를 효율적으로 사용하기 위해선 하드웨어를 잘 관리 해야한다
  • 운영체제의 성능이 좋을수록 컴퓨터의 성능도 좋아진다. (32bit 운영체제에서는 RAM을 3.2G 까지 인식)

 

2. 응용 프로그램과 하드웨어의 중간다리 역할

  • 대부분의 응용 프로그램들은 하드웨어를 통해 정해진 동작을 수행 (게임의 경우 키보드로 입력 받은 명령어를 CPU를 통해 연산하여 그 결과를 그래픽카드를 거쳐 모니터에 표시)
  • 운영체제는 하드웨어와 소프트웨어간에 정보를 주고 받을 수 있는 중간 다리 역할
  • 운영체제가 없다면 하드웨어에 관한 모든 관리를 사용자가 해야한다

 

3. 네트워크 상에서 운영체제의 역할

  • 클라이언트(Client)
    • 네트워크를 통해 서비스를 요청하는 역할을 하는 컴퓨터 또는 프로그램 (클라이언트 컴퓨터)
  • 서버 (Server)
    • 네트워크를 통해서 요청되는 서비스를 제공하는 역할을 하는 컴퓨터 또는 프로그램 (서버 컴퓨터)

 

#3. 운영체제의 종류

UNIX

1. UNIX

  • 최초의 운영체제
  • 초창기 운영체제는 컴퓨터의 부피가 매우 컸기 때문에 한대의 컴퓨터에 여러 사람이 콘솔을 연결하여 사용하는 형태 (다중 사용자용 기업 환경에 적합, 서버환경에서 주로 사용됨)
  • 바탕화면이라는 개념이 생기기 전 환경이므로 콘솔상에서 명령어를 입력하는 형태

 

2. 터미널과 쉘

  • 터미널(Terminal) : 콘솔상에서 실행하여 명령어를 입력하기 위한 환경
  • (Shell) : 터미널에 탑제된 명령어 해석기
    • UNIX 계열 : C쉘, Bash쉘, zsh쉘 등
    • Windows 계열 : 명령프롬프트(cmd), 파워쉘(PowerShell)

 

SunOS, Solaris 그리고 MacOS

  • Unix에서 파생된 수 많은 운영체제들의 하나
  • Unix를 좀 더 쉽게 사용할 수 있도록 고안된 운영체제
  • Linux의 점유율이 높아짐에 따라 SunOS 와 Solaris는 거의 사용하지 않음
  • MacOS는 APPLE 사의 맥 전용 하드웨어에서만 구동됨 (Unix에서 파생된 운영체제 중 Linux와 함께 가장 많이 사용됨)

 

Linux

  • 리누스 토발즈가 개발한 다중 사용자용 운영체제
  • Fedora 라는 프로토타입 버전이 배포되면 누구나 다운 받아 수정,보완,재배포가 가능한 오픈소스 (리눅스 배포판)
  • 지금까지 가장 활발하게 진행되고 있는 대표적인 오픈소스
  • 가장 대표적인 배포판으로는 RedHat(CentOS) 과 Ubuntu가 있음
  • 무료로 배포되기 때문에 많은 기업들이 상용 시스템을 운영하는데 활용

 

Windows

1. MS-DOS

  • Microsoft에서 출시한 IBM 컴퓨터용 운영체제
  • IBM 컴퓨터에 무상으로 탑재되면서 시장을 장악함
  • 하드 디스크에 파일을 기록하는 방식으로 FAT32 방식을 채택 (하나의 프로그램에 문제가 발생하면 실행중인 모든 프로그램이 다운되는 치명적인 결함이 있음 → 유명한 블루스크린)
  • 치명적 결함으로 인해 Window 3.1 → 95 → 98 → ME 를 끝으로 단종됨

 

2. NT

  • Microsoft에서 리눅스가 장학하고 있는 기업용 운영체제 시장에 도전하기 위해 개발한 다중 사용자용 운영체제
  • 블루스크린의 단점을 개선하기 위해 NTFS 방식이라는 새로운 파일 시스템을 개발 (하나의 프로그램에 문제가 발생해도 그 프로그램만 종료시킨다)
  • Window NT(4) → 2000(NT5) → XP(NT5.1) → 7(NT7) → 8(NT8) → 10(NT10) 순서로 출시. (현재는 11까지 나왔음)

 



 

#1. 에디터의 종류

1. 에디터(Ediror)란?

  • 원시 프로그램을 수정하여 새로운 원시 프로그램을 만들거나, 문장을 편집하는 기능을 갖는 프로그램
  • 통합개발환경(Intergrated Development Environment,IDE) 과 경량 에디터(Lightweight Editor)로 나누어진다
  • IDE는 구동시 수많은 데이터를 불러 올 수 있고, 필요시 프로젝트 구조를 분석하는 일도 한다 (프로젝트 수준의 작업 가능)
  • 경량 에디터는 속도가 빠르고 단순하다는 장점이 있다.
  • 다양한 플러그인을 지원하며, 이러한 플러그인을 사용하면 IDE 못지 않게 다양한 기능을 사용할 수 있다. (IDE 와 에디터의 차이가 점점 좁아짐)

 

2. 대표적인 IDE 종류

InteliJ
WebStorm

그 외 PyCharm, PhpStorm 등등

JetBrains 사에 만든 IDE로 유료이다.

 

Eclipse

Java 언어 사용에 특화 되어있고, 무료지만 성능이 좋아 실무 및 많은 자바 개발자가 사용하고 있다. 

 

Xcode

MacOS에서만 사용 가능하며, Swift 언어 사용에 특화 돼있다.

 

3. 대표적인 에디터 종류

Visual Studio Code

마이크로소프트에서 만든 에디터로 많은 개발자가 사용중인 에디터이다.

다양한 익스텐션으로 IDE 못지 않은 성능을 가지고 있다.

(어떤 익스텐션을 설치하느냐에 따라 성격이 달라진다.)

참고로 Visual Studio도 있는데 이건 IDE이고 유료 이다.

 

Atom

깃허브(Git hub)에서 만든 에디터이다.

과거에는 많이 쓰였으나 2018년 마이크로소프트가 깃허브를 인수 하면서 

Visual Studio Code 사용이 압도적으로 많아졌다.

(그냥 유행탄거 같기도 하고..)

그리고 Atom은 에디터 치고는 무겁고 느린 단점이 있다.

 

Sublime Text

가볍고 빠르기 때문에 가볍게 쓰기 좋다.

 

Bracket

PhotoShop과 연동이 가능해서 웹퍼블리셔 분야에서 주로 쓰인다.

 

그 외 Edit Plus, NotePad, UltraEdit 등등

'국비수업 > 개발자 환경 구축' 카테고리의 다른 글

Git 준비하기  (0) 2022.01.22
[MacOS] 명령어 라인 도구 설치 / zsh 쉘 설정  (0) 2022.01.20
기본 명령어 / 확장자  (0) 2022.01.20
Markdown 작성법  (0) 2022.01.20

+ Recent posts