[도서] 비전공자를 위한 이해할 수 있는 IT지식 (요약정리)
' 비전공자를 위한 이해할 수 있는 IT지식'을 읽고 정리한 내용입니다.
비전공자에게는 정말 강추! 정말 이해하기 쉬운 용어들로 풀어놓았고 전체적인 IT 용어에 대해 정리할 수 있는 책!
근데 전공자나 이미 배운 지식이 있는 사람에게는 너무 쉬운 내용...그리고 정말 얕게 다룬다.
대학교 전공 교재보다가 중학교 교과서 보는기분임. 진짜 설명 쉽게 잘해주셨음!
너무 재밌게 풀어놔서 앉은 자리에서 다 읽어버림.....별 네개! ⭐⭐⭐⭐
컴퓨터가 연결된 작은 지역을 LAN
여러 LAN을 연결해 MAN을 구성
여러 MAN을 연결해 WAN을 구성
ip는 0~255의 숫자만 사용할 수 있다.
이런 한계때문에 최근에는 숫자 구분을 4개에서 6개로 늘린 IPv6를 함께 사용
파일을 계속 달라고 보채는 컴퓨터를 '클라이언트'
주는 컴퓨터 '서버'
우분투
리눅스는 운영체제(OS) - 기본적으로 무료!
리눅수에도 다양한 버전이 있는데 유명한 버전 중 하나가 '우분투'!
또 다른 유명한 버전으로는 '레드햇 리눅스'
레드햇은 리눅스를 개량해서 유료로 판매하는 회사!
-> 아니 리눅스는 무료인데 레드햇은 왜 유료...?
일종의 운영체제 품질 보장이다! 책임을 물 수 있음
리눅스의 유명한 개량 버전 '안드로이드'
정리!
서버는 데이터를 주는 컴퓨터. 데이터를 주기 위해서는 프로그램이 필요.
프로그램을 돌리기 위해서는 운영체제가 필요(하드웨어를 그냥 쓸 수 없으니)
주로! 리눅스를 많이 쓴다!
그렇다면 윈도우와 맥은 왜 리눅스에 비싼가?
휴지통, 폴더 같은 '그래픽UI'가 붙어있음!
사실 서버 프로그램이 안정적으로 돌아가는게 중요함
그래서 대다수 리눅스 버전들은 '그래픽 UI'없이 명령어로만 동작시킨다.
개인서버를 운영하면 24시간 내내 켜놓아야 하므로 매우 부담스러움
그래서 이를 대신해주는 '호스팅 업체' - Cafe24 ,가비아
AWS- 서버 컴퓨터 대여뿐 아니라 다양한 분야 기업들에게 솔루션 제공
API
요청을 구분할 수 있는 체계
API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계.
API 개발자는 서버 개발자가 개발하고, 클라이언트 개발자는 그 API를 사용한다.
API를 만들 때는 데이터를 주고 받는 기능도 함께 넣는다. - 데이터도 같이 담김
CRUD를 만들면 이제 각각의 주소가 생기는데 그러면 너무 많아지고 관리하기가 힘들어짐.
CRUD가 체계적으로 나뉘지 않을 수도 있고, 몇 몇 API가 버그를 일으킬 수도 있다.
이게 바로 RESTful API
성공 - 200번대
실패 - 400,500번대
예) 404- 서버는 문제없이 잘 돌아가는데 요청이 이상해!
API는 소프트웨어가 다른 소프트퉤어의 기능을 쓰기 위해 중간에 필요한 체계
즉 기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의 체계
SDK
API를 제공해주는 다른 소프웨어. 즉 소프트웨어를 객발하기 위한 도구.
예) 구글 지도. 다른 회사들도 구글 지도 기능 쓰려면 구글에서 제공하는 구글 SDK 설치하면 됨.
JSON
유명한 형식을 다 같이 쓰자!
JSON은 중괄호로 시작 그리고 키와 값으로 이루어져 있다. 그 키와 값은 콜론으로 구분
{
키1(key):값1(Value),
키2(key):값2(Value),
}
로그인 요청 예시
{
"id":"wychoi",
"pw":"a12345"
}
JSON에서의 배열은 대괄호!
['싱픔1', '상품2']
클라이언트와 서버는 요청과 응답을 주고받고, 그때 필요한 데이터들을 JSON형식으로 주고받음.
API 문서
깃 북은 깔끔한 API문서 작성을 도와주는 서비스
그 데이터는 로컬에 있어요
내부DB에 저장하고 있어요
네이티브에서 가져온거다
이건 모두 클라이언트에 데이터가 있다는 표현!
클라이언트에서 서버에 있는 이미지를 불러온다는 것은 네트워클르 통해 이미지 파일을 다운받는 것을 의미
클라이언트에 이미지를 놓으면 네트워크보다 훨씬 빠름!
그런데 왜 서버에 있는 이미지를 불러올까?
그냥 클라이언트에 이미지 두고 쓰면 아뇔까?
성격마다 다 다르다
무결성 유지가 필요한 이미지 -> DB에 이미지 주소관리
서비스에서 제공하는 이미지-> 클라이언트 혹은 서버에 있는 이미지
프레임워크와 라이브러리
iOS, MacOS, WatchOS등의 애플의 애플리케이션 개발하려면 Swift 혹은 Objective-C 언어를 사용해야함
그런데 애플에서 제공해주는 프레임워크인 코코아를 사용하면 애플리케이션을 더 쉽고 빠르게 만들 수 있음
안드로이드는 자바 혹은 코틀린 사용
자바- 스프링
파이썬- 장고
루비-레일스
자스-익스프레스
🚗 프레임워크
원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다.
애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 애플리케이션을 개발합니다. 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 됩니다.
🔎 예시
- Java 서버 개발에 사용되는 Spring
- Python 서버 개발에 사용되는 Django, Flask
- 안드로이드 앱 개발에 사용되는 Android
- 아이폰 앱 개발에 사용되는 Cocoa Touch
- 웹 개발에 사용되는 Angular, Vue.js 등
- 자바 기반의 JSP를 위한 프레임 워크 Struts
- 루비로 작성된 MVC패턴을 이용하는 Ruby on Rails
📚 라이브러리
소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임. 즉 특정 기능을 모와둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다.
🔎 예시
- Python pip로 설치한 패키지/모듈 (tensorflow, pandas, beautifulsoup 등등)
- C++의 표준 템플릿 라이브러리 (STL)
- Node.js에서 npm으로 설치한 모듈
- HTML의 클라이언트 사이드 조작을 단순화하는 JQuery
- 웹에서 사용자 인터페이스 개발에 사용되는 React.js