Book

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

본명은이점례 2020. 11. 13. 17:54
728x90

# '누군가'를 이해시키기 위해 쓰는 리뷰가 아닌,  단순히 '내가' 기억하기 위한 키워드 중심으로 쓴 글.

 

 

1. 컴퓨터에 대한 이해

 

#COM  -------------------------- HUMAN

언어는 컴퓨터에 친숙한 언어일수록 우리가 쓰기 어렵고, 인간친화적일수록 우리가 쓰기 쉬운 반면 기계가 이해하기 어려우므로 동작이 느리다.

 

COM에 가까운 언어 c,c++ 따라서 스피커나 라이도 등 하드웨어 쪽으로 많이 쓰이는 편

HUMAN에 가까운 언어는 python,java 주로 스마트폰에 쓰임

 

# 메인보드

메인보드에서 기억할 것 1. CPU 2. 보조기억장치(HDD, SSD) 3. RAM

old : CPU -> HDD or SSD

new : CPU -> RAM ( <---HDD or SSD) 보조기억장치의 데이터를 다 가져오지 않고 필요한 것만 RAM에 저장 후 실행

 

 

 

2. 운영체제 ( OS )

 

# 운영체제 : 하드웨어 (CPU,HDD,SSD,RAM....)관리

 

Window Mac OS / IOS Android
Microsoft Apple Google
C#, C++, JS Objective-C, Swift Java,Kotlin

자바 프로그램을 만든 후, 맥에서 돌아가도록 하고 싶다면? ->

JVM
Java Program

 

하지만 이 방법은 모바일 분야에선 적용되지 않는다. 모바일은 PC보다 부품과 크기가 작기 때문에 성능이 뒤떨어지므로 프로그램 위에 프로그램을 실행시켰을 때 속도가 느리기 때문이다.

 

ps) 우리가 보통 안드로이드 개발자라고 하면 안드로이드(운영체제에서 돌아가는 소프트웨어) 개발자라고 이해하면 된다.

 

3. LAN

 

# LAN : Local Area Network

컴퓨터가 연결된 작은 지역 // 컴퓨터 실습시간에 하던 스타크래프트 LAN을 생각하면 된다.

  

LAN 연결하는 선 -> LAN 선

지역 : LAN + LAN + ···· + LAN ==

도시 : MAN + MAN +MAN ==

나라 : WAN ( WIFI) 

 

# 서버에는 네트워크와 클라이언트 서버가 있다.

 

# SP ---> WAN ----> APPLE

SP -> HDD or SSD (저장)  --> 실행 --> RAM --> CPU가 처리

 

# IP 주소 : 

ICANN (국제)  -->  APNIC ( 아시아 태평양)  --> KRNIC (한국)

계속해서 길고 긴 IP주소를 사용할 수 없으므로 도메인 처리

 

# 클라이언트와 서버

 

Client (서비스 유저의) 컴퓨터    ----(파일 요청)----->     Server ( apple, kakaotalk 같은 회사의 ) 컴퓨터 

                                          <----(요청 데이터)-----

 

// 서버는 24시간 안전하게 돌아가는 게 목표 

// 서버가 데이터를 주려면 프로그램이 필요하다. 

// 프로그램 필요 -> 운영체제 필요 -> 그중 리눅스 운영체제가 좋다.

 

서버 프로그램
Linux OS

 

# 집, 서버 운영 ---> 호스팅 업체, 즉 서버를 제공하는 기업 ex) Cafe 24, AWS 

 

 

 

4. API & JSON

 

# API란?

- 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계이다. 서버 개발자가 개발하고 클라이언트가 사용한다.

 

#CRUD  ( Create Read Update Delete) ex) Instagram

 

사진 올리기, 읽기(불러오기), 바꾸기, 지우기 // 각각 주소를 가진다.

 

old : Com -> CRUD 요청 -> 주소가 많아서 관리가 힘들고 체계가 필요

new : REST, RESTful API ( CRUD를 하나의 주소로 관리, 절대적이지 않고 회사마다 다르다)

RESTful API 요청 + 메소드 // C - POST, R - GET, U - PUT/PATCH, D - DELETE

 

 

# 서버의 응답

 

잘 됐어 : 200 ···· 

잘 안됐어 :

1) 클라이언트 요청 문제 : 400 ····

2) 서버 문제 : 500  ····

 

 

# SDK ( Softare Development Kit)

내 소프트웨어(API) <-------- 다른 소프트 웨어 ( 기능1, 기능2, 기능3)

 

ex) 내가 만든 웹페이지에서 구글 지도 활용하는 방법

Homepage  --(요청)--> 구글 지도 SDK

             <----(응답)----

 

# JSON ( 요청과 응답을 주고받는 형식)

 

- XML -> JSON

- 보내줘, 보내, 전송해줘, 전송, 요청해줘 ····  => 다양한 요청 형식을 관리하기 힘드므로 탄생

ex) { 'id' : 'song'            {'category : '음료' 'sort' : 'desc' 

       'pw' : '12345'}         'items' : '[카페모카, 아이스 아메리카노 ···· ]' }

 

# API 문제 살펴보기

*IP주소 (176.168.222.....) -> 도메인 네임 (naver.com)

 

 

5. 애플리케이션

 

# 웹 ( 네이버 자동완성)

 

a 입력 --> (서버에 자동완성 API 요청) GET ---> 서버 

           <----(JS -> HTML ) <---- JSON응답<---

 

 

6.  데이터 베이스

관계형 데이터베이스 - 수많은 데이터들을 효율적으로 관리하는 방법

송재현 -> User 1

UserTable - > ProductTable

 

# 개발자가 파일을 만들고 수정하고 삭제하는 법 : 관계형 데이터 베이스 시스템 (RDBMS)

-> MS SQL, Oracle DB, ···· 

 

클라이언트  서버 
DataBase DataBase

 

- 정확한 요청을 위해 Data가 어떤 DB에 있는지 알아야 한다.

- 클라 DB : 알람 같은 어플, 인터넷 연결 X

- 서버 DB :

---네트워크 // 이미지 공유(주소)-> 클라이언트 // 이미지 불러오기 (파일 다운)

if 이미지가 클라이언트에 있다면 다운 x , 빠르지만 고객이 업데이트해야 한다.

 

 

7. 프레임워크와 라이브러리

 

# 프레임워크 : 자동차 //  라이브러리 : 망치, 가위, 

도넛가게 열기 --> 던킨도너츠 ( 도넛 기계, 포스기, 제품 만드는 법 ···· )

 

  언어 프레임워크
애플 Swift, Objective - C Cocoa
구글 Java, Kotlin Android Framework
JavaScript React, Vue, Angular
서버 Java, Python, JavaScript Spring, Express.js, Django 

 

 

8. GIT

 

(ver.)

1.0.0   ----> 1.1.0  // Branch ----------> 1.2.0         ---- Merge(1.2.0 + 2.0.1 )------> New version 

커밋                                ----> 2.0.0 ----> 2.0.1

728x90