티스토리 뷰
[비전공자를 위한 이해할 수 있는 IT지식] / (컴파일러, 하드웨어, API, RESTful API, 컴파일러 , SDK, 리눅스, 컴파일, JSON )
foodev 2021. 3. 6. 17:19컴파일러
친구와 일본에 놀러가서
일본인과 대화를 하고 싶은데
일어를 못한다!!
(일상생활에서의)번역은
↓
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형식으로 주고받는다.
'✍🏻 > 독서록' 카테고리의 다른 글
[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 |
- Total
- Today
- Yesterday