일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Google Analytics
- 캐글
- 맞춤 자바스크립트
- 후기
- tablueau
- 통계
- SQL
- segmentation
- 그로스해킹
- DISTINCT
- SQLD
- API
- tableau
- Funnel
- Ga
- Ecommerce
- oracle
- 데이터 분석
- 용어 정리
- git
- Python
- 크로스셀링
- 맞춤 이벤트
- bigquery
- Kaggle
- sql 개발자
- 이벤트 매개변수
- It
- pandas
- 상관계수
- Today
- Total
녕녀기의 실험일지
[ IT ] IT 용어 정리 2탄(3,4장) 본문
안녕하세요. 녀기 입니다.
지난 번 용어 정리 1탄에 이어 2탄 준비했습니다.
3장과 4장을 정리해 보려 하는데
쉽지 않겠죠😱
그럼에도 불구하고 가보겠습니다.
(1탄이 궁금하신 분들은 보고 오셔도 좋습니다🫡)
https://nyeoki-log.tistory.com/7
[ IT ] IT 용어 정리 1탄(2장)
안녕하세요. 녀기입니다! 정말 저같은 비전공자에게 있어 IT 용어는 마치 마법 주문과 같아요ㅠㅠ😱 일평생을 컴맹처럼 살아가던 사람이 용어를 받아들이자니 쉽지 않고.... (과학이나 공학 용
nyeoki-log.tistory.com
(사전적 의미의 출처는 위키백과입니다.)
목차
- 컴퓨터 네트워크(Computer Network)
- LAN(Local Area Network, 근거리 통신망 / 구내 정보 통신망)
- MAN(Metropolitan Area Network, 도시권 통신망)
- WAN(Wide Area Network, 광역 통신망)
- 인터넷 프로토콜(IP, Internet Protocol)
- IPv4
- IPv6
- 서버(Server)
- 클라이언트(Client)
- 프론트엔드, 백엔드(Front-end, Back-end)
- 리눅스(Linux)
- 우분투(Ubuntu)
- 인터넷 호스팅 서비스(Internet Hosting Service)
- API(Application Programming Interface)
- JSON(JavaScript Object Notation)
- HTTP 상태 코드
1. 컴퓨터 네트워크(Computer Network) : 노드들이 자원을 공유할 수 있게 하는 디지털 전기 통신망의 하나, 분산돼 있는
컴퓨터를 통신망으로 연결한 것
2. LAN(Local Area Network, 근거리 통신망 / 구내 정보 통신망) : 네트워크 매체를 이용해 집, 사무실, 학교 등의 건물과 같은
가까운 지역을 한데 묶는 컴퓨터 네트워크
3. MAN(Metropolitan Area Network, 도시권 통신망) : 큰 도시 또는 캠퍼스에 퍼져 있는 컴퓨터 네트워크, LAN과 WAN의
중간 크기를 가짐
4. WAN(Wide Area Network, 광역 통신망) : 드넓은 지리적 거리/장소를 넘나드는 통신 네트워크 또는 컴퓨터 네트워크,
광역 통신망은 종종 전용선과 함께 구성
책에서는
컴퓨터가 연결된 작은 지역을 LAN이라고 소개합니다.
학교 컴퓨터실이나 아파트 하나, 커피숍 등 하나하나 모두 LAN입니다.
이 때 LAN을 연결하는 것이 LAN선이죠.
도시의 여러 LAN을 합쳐 만든 것이 MAN입니다.
그리고 도시와 도시, 나라와 나라를 모두 연결해 WAN을 만들었습니다.
이제는 나라 단위로 파일을 주고 받을 수 있게 됐습니다.
5. 인터넷 프로토콜(IP, Internet Protocol) : 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고 받는데
사용하는 정보 위주의 규약이며, OSI 네트워크 계층에서 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당
6. IPv4 : 인터넷 프로토콜의 4번째 판, 주소 체계는 총 12자리 4부분으로 나뉘며 각 부분은 0~255까지 3자리 수로 표현
7. IPv6 : 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜, IPv4의 기존 32 비트
주소공간에서 벗어나, IPv6는 128 비트 주소공간을 제공
구글 플레이 스토어에서 카카오톡을 다운받는다고 가정해 봅시다.
스마트폰에서 '카카오톡 설치 파일을 보내줘!'라는 신호가 가까운 기지국으로 갑니다.
→ WAN을 따라 신호는 '구글'이 가진 컴퓨터로 신호가 갑니다.
→ 구글은 설치 파일을 다시 기지국으로 WAN을 통해 보냅니다.
→ 그리고 그 파일이 다시 제 폰으로 오게 되죠.
이 때 해당 컴퓨터의 위치를 IP 주소라고 합니다.
인터넷에 접속하는 순간 지금 위치에 맞는 IP 주소를 할당 받습니다.
보통 IP 주소는 IPv4를 사용하지만, 개수에 한계가 있어 IPv6까지 사용하게 됐습니다.
8. 서버(Server) : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램 또는 장치를 의미함, 특히 서버에서 동작하는 소프트웨어를 서버 소프트웨어라고
9. 클라이언트(Client) : 네트워크를 통해 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나
서비스를 말함
10. 프론트엔드, 백엔드(Front-end, Back-end) : 소프트웨어 공학에서 소프트웨어의 presentation layer(프론트엔드)과 data access layer(백엔드) 또는 물리 구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미,
클라이언트 - 서버 모델에서 클라이언트는 일반적으로 프론트엔드로 간주되며 서버에서 실제로 presentation 작업이 수행되는 경우에도 일반적으로 서버가 백엔드로 간주됨
제가 카페를 운영한다고 합시다.
가게의 손님이 왔네요. 이 분은 이제 클라이언트 입니다.
저희는 홀 서빙을 담당하고 있는 분이 있습니다. 서버죠.
클라이언트는 서버에게 아이스 아메리카노 한 잔을 주문합니다.
그리고 바리스타가 커피를 만들어서 서버가 클라이언트에게 가져다 줍니다.
여기서 말을 좀 바꿔 본다면
카카오톡으로 파일을 주고 받습니다.
카카오톡 측에 파일을 요청하는 우리는 클라이언트입니다.
그리고 카카오톡 측에서 운영하는 컴퓨터는 서버입니다.
클라이언트의 요청을 받고 파일을 클라이언트에게 전송합니다.
서버용 컴퓨터를 따로 구축해 놓는 이유는
수 많은 사람들이 동시에, 아무 때나 요청한 신호를 처리하기 위해서죠.
서버용 컴퓨터는 컴퓨터의 연합군입니다.
고객의 바로 앞에 있는 클라이언트 컴퓨터를 다른 말로 프론트 엔드(클라이언트, 클라, 프론트),
고객이 볼 수 없는, 즉 고객 뒤에 있는 서버를 백 엔드(서버, 백)라 칭합니다.
11. 리눅스(Linux) : 1991년 9월 17일 '리누스 토르발스'가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스
유닉스 계열 운영체제
12. 우분투(Ubuntu) : 영국 기업 캐노니컬이 개발 / 배포하는 컴퓨터 운영체제, 데비안 리눅스를 포크해 개발됐으며 데비안에
비해 사용 편의성에 초점을 맞춘 리눅스 배포판
리눅스는 운영체제(OS)입니다. 서버 프로그램을 돌리기 적합한 OS입니다.
가장 큰 이유는 무료라는 점이죠.
무료로 배포되는 리눅스를 발전시켜, 다양한 버전의 리눅스가 생기게 됩니다.
그 중 하나가 우분투입니다.
다른 버전에는 레드햇(Red Hat)이 있는데, 레드햇은 유료입니다.
유료 운영체제는 회사에서 품질 보장을 해 주기 때문에 안정적입니다.
우리가 알고 있는 안드로이드도 리눅스를 모바일로 발전시킨 형태입니다.
리눅스는 그래픽 UI가 없어서 기본적인 명령어를 아는 것이 중요합니다.
13. 인터넷 호스팅 서비스(Internet Hosting Service) : 인터넷 서버를 운영하는 서비스로, 단체와 개인이 콘텐츠를 인터넷에
제공하는 것을 도와줌, 여러 수준의 다양한 서비스가 제공됨
개인이 스스로 서버를 운영하는 것은 어렵습니다.
일단 24시간 내내 켜 놓으면 전기세가 어마어마하게 나갈 것이구요.
갑자기 서버 컴퓨터가 꺼지거나 고장나 복구하지 못 한다면 데이터를 날릴 위험도 생깁니다.
그래서 이 리스크를 없애기 위해
이 모든 일을 대신 해 주는 호스팅 서비스가 생기게 됩니다.
유명한 AWS가 있구요.
서버 컴퓨터 뿐만 아니라 다양한 서비스를 제공해 줍니다.
14. API(Application Programming Interface) : 컴퓨터나 컴퓨터 프로그램 사이의 연결, 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공, 이러한 연결이나 인터페이스를 빌드하거나 사용하는 방법을 기술하는 문서나 표준은 API 사양으로 부름
15. JSON(JavaScript Object Notation) : 속성-값 쌍, 배열 자료형, 기타 모든 시리얼화 가능한 값 또는 키-값 쌍으로
이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
16. HTTP 상태 코드 : HTTP 응답 상태 코드의 목록으로, 5개의 클래스로 구분되며 코드의 첫번째 숫자가 응답 클래스를
정의
- 1xx (정보) : 요청을 받았으며 프로세스를 계속함
- 2xx (성공) : 요청을 성공적으로 받았으며 인식했고 수용했음
- 3xx (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요함
- 4xx (클라이언트 오류) : 요청의 문법이 잘못됐거나 요청을 처리할 수 없음
- 5xx (서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패
클라이언트가 서버에게 보내는 요청을 구분하고 응답할 수 있도록 만든 체계가 API 입니다.
요청을 정확한 곳에 보낼 수 있도록 서버 주소를 정의하고
요청 종류에 따라 서버 주소/A, 서버 주소/B, 서버 주소/C 나눠서 신호를 보내게 됩니다.
주소 뒤에 어떤 문자를 쓰느냐에 따라 다른 기능을 수행하도록 정의됩니다.
그리고 API를 통해 요청과 응답을 주고 받을 때 데이터가 오고 간다는 것을 알아야 합니다.
서버 개발자는 이러한 기능을 수행할 수 있도록 API를 개발합니다.
그리고 이 API가 조금 더 체계적으로 발전한 것이 REST(Representational State Transfer)ful API 입니다.
Create(생성)에는 POST를, Read(불러오기)는 GET, Update(갱신)는 PUT(전체) / PATCH, Delete(삭제)는 DELETE라는
메소드를 사용해 전송하게 됩니다.
이렇게 하면 CRUD 별로 많아지는 주소를 줄일 수가 있게 됩니다.
API를 사용하는 경우를 더 살펴 보자면,
제가 개발하고 있는 프로그램에 'ABCD'라는 익명의 기능이 필요하다고 가정해 봅시다.
제가 이것을 개발하는데 어느 정도에 시간이 걸릴지는 저는 모르고 코딩의 신만이 알 것 입니다.
그런데 어떤 소프트웨어가 ABCD 기능을 사용하고 있다면?
저희는 API를 이용해 그 어떤 소프트웨어에게 요청을 보내고 (이 때 어떤 소프트웨어에서 API를 만들어놔야 쓸 수 있습니다.)
SDK(Software Development Kit)라는 소프트웨어 개발 도구를 응답해 줍니다.
여기서는 ABCD SDK 겠죠.
저희는 이제 개발하지 않고도 ABCD 기능을 사용할 수 있습니다.
JSON은 뭘까요?
요청과 응답을 하는데 있어서 데이터가 오고 가고, 그 형식이 있을 것 입니다.
근데 만약 그 형식이 다 다르면 형식에 따라 코드를 다시 짜야 할 수 있습니다.
그래서 모두가 공통적으로 사용하는 형식인 JSON을 만들었습니다.
JSON은 중괄호 안에 키가 있고, 그 키에 맞는 값이 있죠.
{ 키1 : 값1,키2 : 값2}
와 같은 형태로 주고 받을 것 입니다.
후...점점 내용이 길어지는 것 같은데
어쩔 수 없죠ㅠㅠㅠㅠ
도서관에서 빌린 책이라 느긋하게 읽을 수 없고 빨리 반납을 해야 하니까
호다닥 쓰도록 하겠습니다.
이 글을 봐 주신 분들이 있다면 정말 감사드리고
담에 더 발전된 글로 찾아뵐게요~
그럼 뿅

'-- Data --' 카테고리의 다른 글
[ IT ] IT 용어 정리 5탄(9장) (0) | 2023.04.11 |
---|---|
[ IT ] IT 용어 정리 4탄(7,8장) (0) | 2023.04.11 |
[ IT ] IT 용어 정리 3탄(5,6장) (0) | 2023.04.09 |
[ IT ] IT 용어 정리 1탄(2장) (0) | 2023.04.05 |