티스토리 뷰

728x90

컴파일러

친구와 일본에 놀러가서

일본인과 대화를 하고 싶은데

일어를 못한다!!

 

(일상생활에서의)번역은

             ↓

ex) 일어 못하는 한국인 -> 일어 할 줄 아는 한국인 -> 일본인 

이런 식으로 번역을 할 것이다.

 

사람이 컴퓨터한테

말을하고 싶은데

컴퓨터가 사람말을

못알아 먹는다!!

 

자 그러면 (컴퓨터에서의) 번역은?

                         ↓

사람(프로그래밍 언어) -> 컴파일러(변환) -> 컴퓨터(2진수 언어)

 

이런 식으로 전달한다.

 

자바, 파이썬, 루비 등 영어로 되어 있는 프로그래밍 언어를 사용해 컴파일러에게 명령을 전달

-> 명령을 기계어인 0과 1로 변환해 컴퓨터에 전달한다.

 

컴퓨터 부품들 

CPU가(머리) HDD, SSD(저장 창고)에게 처리할 데이터를 요구 ->

CPU보다 HDD, SSD는 속도가 매우 느려 CPU가 기다려야 했음 ->

속도 저하 -> 이를 분리 하기 위 '메모리' 개념이 나옴 

 

CPU에서 처리할 데이터 요구 HDD, SSD에서 데이터를 메모리로 보냄->

메모리라는 개인 작업 공간에서 CPU가 데이터 처리

 

 

CPU: 데이터 처리

메모리: CPU의 개인 작업 공간

 

어플을 다운로드하는 과정

나의 스마트폰 -> 1. 카카오톡 설치 파일을 보내줘! ->  컴퓨터가 연결되어 있는 네트워크에 요청

네트워크 -> 2. 스마트폰 IP주소로 설치 파일을 보내줘   ->  애플, 구글이 켜놓은 컴퓨터에 요청

애플, 구글이 켜놓은 컴퓨터 응답 -> 3. 파일 받아 -> 네트워크 

네트워크 응답 -> 4. 파일 받아 -> 나의 스마트폰 

다운

 

리눅스

 

웹 개발 과정을 배우며 리눅스에서 서버 배포를 했는데 왜 리눅스를 이용했는지 알려주지 않아 궁금했다. 

 

간단정리: 

리눅스 코발트가 만듦

-리눅스 운영체제와 형상관리를 위해 요즘 가장 많이 쓰는 git을 만든 사람.

그리고 이것을 IT를 공부하는 사람들을 위해 무료로 배포한 사람.

 

서버 프로그램을 돌리기 적합한 OS

-그래픽 UI가 필요 없음 -> 저렴 or 무료

리눅스에는 다양한 버전이 존재(ex: windowxp, window7, window10처럼)

-우분투 (가장 많이 씀 무료)

-레드헷 등등

-안드로이드(구글이 리눅스를 개량해서 발전)

 

장점: 

윈도우, 맥 OS도 있는데 왜 리눅스를 사용할까

-무료이기 때문 

무료 운영체제이다 보니 다양한 사람들이 운영체제를 발전 시킴

-버그에 대해 피드백이 빠르다.

 

호스팅

대표적 회사

-가비아

-Cafe 24

-AWS(Amarzon Web Services)

 

호스팅을 하는 이유

- 서버 컴을 구입해 24시간 365일 돌리면 전기세가 많이 듬

- 서버 컴이 고장 나거나 다운될 시 복구하는데 큰 문제가 생김(잠정적 중단 시 서비스 불가)

- 그래서 생겨 난 것이 호스팅 업체

 

API

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

API의 진행

- 요청을 보내는 쪽과 응답을 주는 쪽이 나뉘어 있다.

- ex) 스마트폰이(새로운 페이지에 로그인 요청) -> 서버 컴은 요청을 받아서 ID, PW를 조회하여 응답

 

RESTful API(Representational State Transfer)

Restful API란

- CRUD 중 Create를 하려고 한다고 가정해보자.

- CRUD는 각각의 주소를 가지게 된다.

- f페이지에서 Create 생성 시 컴퓨터 주소/Create/f 이렇게 이름 지었다고 가정해보자

하지만 Create 부분이 f페이지뿐만 아니라 a페이지, b페이지, c페이지에서 생성하게 된다면?

CRUD 4개 x a, b, c, f페이지 이렇게  16개를 만들어야 한다.

 

문제점

- 너무 많은 주소로 인해 관리가 어렵다.

 

그래서 

- 사람들은 좀 더 체계적으로 API를 관리하고 싶어 했고, 조금 더 체계적인 API가 만들어진다.

- 그런 API를 RESTful API라고 한다.

 

어떻게 이용하나?

- CRUD를 하나의 주소로 관리가 가능해졌다.( 한 파일 안에 POST, GET, PUT, PATCH, DELETE)

 

-Create(생성): POST

-Read(불러오기, 읽기): GET

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

-Delete(삭제): DELETE

 

 

SDK

-API를 제공해주는 '다른 소프트웨어'를 칭한다.

-Softwate Development Kit의 약자로 소프트웨어를 개발하기 위한 도구이다.

 

ex) 구글 지도를 내가 만든 어플에 이용하고 싶다 ->

내 어플에 구글 지도 SDK를 설치 ->

내 어플에 구글지도 기능 넣기 성공

JSON

사용 이유

- API에서 클라이언트와 서버가 요청과 응답을 할 때 데이터를 담아 넘겨주는데

데이터를 넣는 기능에는 여러 가지 형식이 존재함

- 여러 가지 형식을 쓰다 보니 무질서함 -> 이를 정의한 게 JSON 형식

- 과거에는 XML을 많이 쓰였지만 요즘에는 JSON형식을 많이 사용

 

JSON형식

- 중괄호로 시작 키(KEY)와 값(VALUE)으로 이루어져 있으면 콜론(:)으로 구분 

- 배열 사용 시에는 대괄호 사용 

                   ex)

{

  "category": {"스타벅스"}

  "items": ["카페모카", "아메리카노", "돌체라떼"]

}

 

정의

-클라와 서버는 요청과 응답을 주고받고, 그때 필요한 데이터들을 JSON형식으로 주고받는다.

 

 

 

 

 

 

 

728x90

'✍🏻 > 독서록' 카테고리의 다른 글

[Clean Code] 4장 형식 맞추기  (0) 2022.12.04
[Clean Code] 3장 주석  (2) 2022.11.28
[Clean Code] 2장 함수  (0) 2022.11.28
[Clean Code] 1장 의미 있는 이름  (0) 2022.11.28
REST API, API, RESTful 쉽게 이해하기  (0) 2021.10.18
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday