Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

랄지 IT

비전공자를 위한 이해할 수 있는 IT 지식 본문

개발관련 서적

비전공자를 위한 이해할 수 있는 IT 지식

바낭나 2021. 11. 14. 10:03

가장 먼저 알아야 할 지식은 프로그래밍 언어가 아니다. 

이 책은 커뮤니케이션을 위한 큰 그림에 중점을 맞추고 있다. 

개발자의 말을 이해하기 위해서는 IT 세상의 용어들을 정리해야 한다. 

IT 세상의 용어를 카테고리로 분류해 설명할 것이다. 

 

 

 

*프로그래밍 언어(PL) & 운영체제(OS)

 

컴퓨터는 컴퓨터만의 언어(기계여, 0과 1로 이루어짐)를 사용하고, 

인간은 인간의 언어(한국어, 영어, 아랍어 등)를 사용한다. 

그렇기 때문에 둘은 말이 통하지 않지만 인간은 컴퓨터에게 일을 시키기 위해서

컴파일러(일종의 통역사)라는 프로그램을 만든 것이다. 

 

인간은 규칙 있는 언어(프로그래밍 언어; 자바, 파이썬 등)를 만들어서 

컴파일러에게 문서로 일을 시킨다. 

컴파일러는 그 명령을 컴퓨터가 이해하는 언어(0,1)로 변환해서 

컴퓨터에게 전달하는 방식이다. 

 

프로그래밍 언어로 문서를 작성하는 행동을 프로그래밍, 코딩이라고 한다. 

개발자는 이 문서를 작성하여 컴퓨터에게 명령을 하는 사람이라고 할 수 있다. 

이 문서를 쉽게 작성하도록 도와주는 프로그램을 IDE(통합 개발 환경) 이라고 한다. 

 

프로그래밍 언어가 다양해진 이유는 사람들의 생각이 모두 달라서 그렇다. 

많은 사람이 선택하여 사용한 언어는 살아남는다. 

그렇지 않은 언어는 점차 사라진다. 

 

'저수준'은 컴퓨터 친화적인 언어다.

배우기 쉽지 않고, 어렵고 구체적으로 꼼꼼히 작성해야 하지만 

컴퓨터가 일하기 쉽기 때문에 낮은 사양의 컴퓨터에도 원활히 작동한다. 

 

'고수준'은 인간 친화적인 언어이다. 

쓰기 편하고, 유지 보수도 쉽다. 조금씩 설명해 줘도 컴퓨터가 알아서 처리한다. 

하지만 그만큼 컴퓨터가 비교적 이해하기 얼벼기 때문에, 컴퓨터의 사양에 따라서 

잘 작동할수도 있고 그렇지 않을 수도 있다. 

 

컴퓨터의 구조를 살펴보면,

CPU(컴퓨터의 머리)와 메모리(개인작업공간), 보조기억장치(컴퓨터의 창고)가 있다. 

이 부품들을 메인보드라는 판에 끼우면 컴퓨터가 된다. 

(셋은 호환되어야 한다.)

 

CPU는 보조기억장치에서 필요한 데이터를 메모리로 옮겨놓고 

메모리 안에서만 작업을 한다. 

예를 들어, 컴퓨터에서 포토샵을 실행하면 로딩화면이 뜰때 

보조기억장치에서 메모리로 올라가고 있는 것이다. 

이런식으로 프로그램이 돌아가는 것이다. 

 

우리가 프로그래밍을 실행하여 CPU에게 일을 시키는 과정은

운영체제(OS)라는 소프트웨어가 대신해준다. 

운영체제는 하드웨어를 관리(용량 얼마 남았나 등)를 해주고, 

프로그램을 설치하고, 실행하는 것 등을 담당한다. 

 

우리가 접하는 OS는 대표적으로 Window, Mac OS, IOS, Android가 있다. 

(이러한 OS에는 폴더, 휴지통 같은 그래픽UI가 붙어 있어서 손쉽게 사용할 수 있다.) 

 

이들을 소유하고 있는 회사(MS, Apple, Google)에서 지정한 PL를 사용해야 

해당 OS에서 돌아가는 프로그램을 만들 수 있는 것이다. 

 

자바라는 프로그래밍 언어는 각각의 운영체제 위에서

JVM이라는 소프트웨어를 만들어서 모든 운영체제에서 사용할 수 있게 되었다. 

하지만, 속도가 느리다는 단점이 있다. 

자바 이외에도 다양한 언어가 이런 방식을 취하고 있는데,

가장 대표적으로 파이썬이라는 프로그램이 있다. 

 

 

 

 

* 네트워크, 클라이언트, 서버

 

파일을 달라고 계속 보채는 컴퓨터를 '클라이언트'(손님)라고 한다.  

그리고 파일을 주는 컴퓨터를 '서버'(종업원)라고 한다. 

 

고객이 볼 수 있다는 점에서 클라이언트를 프론트엔드라고 한다. 

반면, 고객이 볼 수 없다는 점에서 서버를 백엔드 라고 한다. 

 

서버는 대부분 리눅스라는 OS위에서 돌아간다. 

리눅스를 사용하는 이유는 무료이기 때문이다. 

리눅스는 다양한 버전이 있는데 대표적으로 우분투와 레드햇이 있다.

(리눅스에는 그래픽 UI없이 명령어로만 동작한다.)

 

그리고 리눅스를 개량해서 발전시킨 OS가 안드로이드이다. 

(C언어가 발전해서 C++, Objective-C, 파이썬이 됐던 것처럼.)

 

우리 컴퓨터를 집에서 24시간 돌려서 '서버'로 만들수 있지만, 

물리적인 여러 위험(고장, 고양이 공격; 등등)이 있다. 

 

그렇기 때문에 서버 운영을 위한 컴퓨터를 대여해주는

호스팅(Cafe24, 가비아 등등)이라는 서비스가 탄생했다. 

 

아마존의 AWS는 서버 컴퓨터 대여뿐만 아니라 다양한 솔루션을 제공한다. 

 

 

 

 

 

* API와 JSON

 

서버는 클라이언트의 요청에 따라 적합한 처리를 해서 응답은 준다. 

이것이 어떤 요청인지 구분할 수 있도록 하는 체계API이다. 

API는 클라이언트, 서버처럼 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계이다. 

즉, 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계이다. 

API를 통해 요청과 응답을 주고 받을 때에는 데이터도 같이 담긴다. 

API 문서를 통해서 API 사용법을 보고, 해당 소프트웨어에서 사용하는 기능을 간단히 사용할 수 있게 된다. 

 

Restful API는 한마디로 좀 더 체계적으로 사용하는 API라는 것이다.

CRUD(생성,조회,수정,삭제)를 하나의 주소로 관리한다. 

- Create: POST (생성)

- Read: GET (조회)

- Update: PUT(전체수정), PATCH(일부)

- Delete: DELETE (삭제) 

 

 

API를 제공해주는 다른 소프트웨어는 SDK(소프트웨어를 개발하기 위한 도구)이다. 

예를 들어 구글 지도라는 소프트웨어를 사용하기 위해서는 지도 SDK설치가 필요하고,  

이 SDK에서 제공해주는 API들을 통해 구글 지도에 요청을 보낼 수 있다. 

 

API로 정보를 요청해서 받은 데이터는 보통 JSON이라는 형식으로 넘어오게 된다. 

JSON은 중괄호로 시작해서 키와 값으로 이루어져서 콜론(:)으로 구분한다. 

여러개의 정보를 요청할 경우는 배열 형태로 넘어오게 된다. 

[{

   "키": "값"

}, 

{

   "키": "값"

},

{...}]

 

 

 

 

 

* 애플리케이션 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'개발관련 서적' 카테고리의 다른 글

알고리즘 라이프  (0) 2021.09.19
IT 좀 아는 사람  (0) 2021.09.11