안녕하세요 예민한 카일입니다
AI, ICT등 IT관련 내용 비즈니스를 위해서는 개발 배경 지식들이 있어야 하는데요 그 배경 지식을 위해서 간단하게 설명이 잘 되어 있는 곳에서 일부 발췌하여 작성한 내용입니다.
(운영체제)
운영체제(os)는 프로그램들을 실행하는 메인 프로그램 입니다.
프로그램들을 실행하기 위해서는 하드웨어의 자원이 필요 합니다. 그래서 운영체제는 하드웨어의 자원들을 이용해서 응용 프로그램을 관리하게 됩니다. 이 외에도 운영체제는 네트워크 통신, 입출력 장치 관리 등 우리가 컴퓨터 사용에 필요한 모든것을 관리 합니다.
* 전세계에서 가장 많이 쓰는 os는 linux입니다. 거의 모든 IT 회사에서 사용하는 서버는 linux os를 기반으로 해서 동작하고 있습니다. 우리도 많이 사용하는 android os, linux os를 기반으로 만들어 졌으며 ubuntu os, cent os 등이 있습니다.
(하드웨어)
1. cpu : 컴퓨터 시스템을 통제하고 프로그램이 돌아가는 모든 계산을 합니다. (모든 프로그램들이 실행된다는건 cpu가 일을 하고 있다고 생각하면 됩니다.)
2. 메모리 : 전기적인 신호를 내부에서 임시적으로 저장하는 역활을 합니다.
cpu의 구체적인 역할
가. cpu의 계산 결과를 저장
: cpu가 계속 계산을 하면서 나오는 결과들을 메모리에 임시적으로 저장하고 이를 다시 cpu가 사용하는 방식입니다.
나. 프로그램이 실행되는 공간을 제공
: 프로그램이 실행된다면 프로세스의 형태로 메모리 위에 올라가게 됩니다. 그리고 프로그램이 종료되면 메모리에서 사라집니다.
프로그램들을 많이 실행하면 메모리가 많이 사용됩니다. 또 프로세스가 실행되면서 나오는 모든 데이터들도 메모리에 저장될 것입니다. 메모리의 용량이 크다는건 그만큼 많은 정보들을 처리할 수 있다는 말이며 더 많은 프로그램을 사용할 수 있는것을 말합니다.
3. 디스크 : 정보를 영구적으로 저장하는 역할을 담당합니다.
메모리가 프로그램이 실행되는 과정을 책임진다면 디스크는 프로그램을 컴퓨터에 저장하는 과정을 책임집니다.
(프로그램)
1. 프로그램 : 기본적으로 개발자들이 짠 코드를 바탕으로 프로그램이 만들어 집니다. 개발자들이 짠 코드의 집합이 컴퓨터가 이해할 수 있는 코드들로 컴파일된 것을 프로그램이라고 합니다. 그리고 프로그램을 실행하게 되었을 때를 프로세스라고 합니다.
2. 프로세스 : 실행되고 있는 프로그램을 말합니다. 우리가 프로그램(카톡, 엑셀 등)을 실행하면 메모리 위에 올라가게 되고 이를 운영체제가 중재하는 역할을 합니다. 실제로는 프로그램 자체는 코드(명령어)로 구성되어 있습니다. 그리고 코드를 바탕으로 하여 프로그램을 실행시킨다는 것은 프로세스가 생성되는 것을 의미 합니다. 그 프로세스는 프로그램 실행정보, 프로그래머가 짠 코드 그리고 실행되면서 쓰이는 데이터들로 구성되어 있습니다.
3. 프로그램밍 언어
프로그램은 사람이 프로그램밍 언어를 사용해서 만들게 됩니다.
cpu는 0,1만 읽을 수 있습니다. 우리가 영어로 짠 코드를 읽을 수가 없기 때문에 이를 변환해 주는 컴파일 과정이 필요 합니다. 결국 개발자들이 짠 코드는 컴파을을 통해 컴퓨터가 실행 가능한 코드들로 변화 합니다. 그리고 컴파일을 위해서는 컴파일러가 필요 합니다. 컴파일러는 운영체제와 같이 중요한 시스템 프로그램 중 하나 입니다. 보통 우리가 사용하는 프로그램밍 언어는 전부 고급언어 입니다. 그리고 컴파일로를 통해 저금언어 (기계어)로 변환 됩니다.
- 고급언어 : 사람이 이해하기 쉽도록 사람의 언어로 되어 있는 프로그래밍 언어
- 저급언어 : 컴퓨터가 바로 이해 할 수 있도록 만들어진 프로그래밍 언어
- 빌드 : 소스코드를 실행할 수 있는 소프트웨어 산출물로 만드는 행위로 최종적으로 개발자들이 짠 코드가 빌드를 통해 실행할 수 있는 상태가 됩니다. 우리가 다운받은 프로그램들은 전부 빌드 과정을 거친 결과물입니다. 컴파일도 빌드라는 과정 중에 하나 입니다.
- ide : 코딩을 하고 디버깅, 컴파일 등의 전반적인 작업을 제공해주는 프로그램을 의미합니다. 옛날에는 코딩은 코드 편집기에서 따로 치고, 컴파일 작업은 또 별도로 공간에서 했었다면 ide(intergrated development environment)는 이를 하나의 프로그램 안에서 한 번에 할 수 있게 제공해 주는 프로그램입니다.
(네트워크)
네트워크는 컴퓨터와 컴퓨터의 연결을 의미합니다. 우리가 사용하는 거의 모든 서비스는 네트워크를 이용합니다. 카톡으로 친구들과 메세지를 주고 받고 하는것은 우리의 컴퓨터 또는 스마트폰이 카카오 회사의 컴퓨터와 연결되어 있기 때문입니다.
네트워크 연결이 되기 위해서는 "프로토콜" "ip주소" "port" 3가지가 필요 합니다.
결국 어떤방식으로(어떤 프로토콜), 어디 컴퓨터(ip주소), 어떤 프로그램(port)를 연결할 것인지가 중요합니다.
클라이언트 및 서버
- 클라이언트 : 네트워크에서 정보를 요구해서 받은 쪽
- 서버 : 정보를 제공해 주는 쪽
서버가 정보를 제공해준다는 건 보통 컴퓨터 안에 정보를 제공해주는 프로그램이 실행되고 있다는걸 말합니다. 서버의 목적에 맞는 젱보를 제공해주는 프로그램등이 항상 실행되고 있습니다.
(프로토콜)
네트워크 통신은 기본적으로 전세계적으로 가능한 이유는 규칙이 존재하기 때문입니다. 이 규격을 통신 프로토콜이라고 합니다.
(ip)
ip : (internet protocol address)는 네트워크 통신을 위한 주소 입니다. 우리가 연결하게 되는 네트워크를 기준으로 ip 조소를 부여받게 됩니다.. 보통 it회사에서는 네트워크 공유기로 미리 ip주소들을 할당받은 후 회사 컴퓨터에게 ip를 할당해 줍니다. 이렇게 하면 회사의 네트워크 보안을 유지할 수 있고 관리가 수월합니다.
(port)
포트는 컴퓨터 내에 프로세스로 다달하기 위한 주소 입니다. ip 주소가 컴퓨터끼리 연결을 위한 네트워크 주소였다면 포트는 컴퓨터 내에서 프로세스가 가지고 있는 주소 입니다.
- http의 기본 포트는 80
- https의 기본 포트는 443
(도메인)
도메인 네임(domain name)은 사람이 쉽게 인식할 수 있는 네트워크용 영문 조소를 말합니다. 보통 우리가 브라우저에서 입력하는 영문조소는 전부 (도메인) 네임서버에 등록된 주소입니다. 그래서 도메인 네임을 이용한다면 네임서버를 거쳐서 ip를 반환받는 작업이 필요 합니다.
(라이브러리 & 프레임 워크)
라이브러리 : 프로그램의 특정 기능을 수행하도록 미리 짜여진 코드의 뭉치를 말합니다.
예를 들어 개발자가 브라우저에서 영상 기능을 개발하기 위해서는 복잡한 코드 작업이 필요합니다. 이를 전부 개발할려면 난이도도 높고 시간도 오래 걸리기 때문에 라이브러리를 사용하면 훨씬 수월하게 개발이 가능합니다.
프레임워크 : 코드의 큰 뼈대를 제공해줘 그 뼈대에서 개발을 할 수 있도록 도와줍니다. 라이브러리와 마찬가지로 개발자가 미리 만들어 놓은 코드 입니다. 보통 개발을 할 때는 건축과 비슷하게 큰 틀(아키텍처)를 고려한 후 내부를 채워넣습니다. 그 때 프로임 워크는 틀을 미리 제공해 줍니다.
(api)
api : 서버에서 약속된 정보를 내려주는 것을 의미 힙니다. api는 보통 서버 개발자가 클라이언트를 위해 개발하게 됩니다.
[출처 : https://www.grabbing.me/8d9e92b19e084c5a8cb173a695aa81af#171215d0045b49e2affaf9e3c6eef635
개발 배경지식들 빠르게 격파하기
목차
www.grabbing.me
#예민한카일 #수다 #it용어 #소통
RNN, LSTM, MFCC, PCM (0) | 2020.10.21 |
---|---|
글로벌 AI 정책(전략, 권고안, 가이드 라인 등) 동향 (0) | 2020.10.19 |
컴퓨터 CPU의 용어 코어, 쓰레드, 클럭, 캐시메모리 등.... (0) | 2020.10.12 |
몬티홀 문제(Monty Hall problem) (0) | 2020.10.11 |
AIaas (0) | 2020.10.11 |