본문 바로가기
02_STUDY/기타

비전공자를 위한 이해할 수 있는 IT지식 - 최원영 / 정리

by zestlumen 2023. 4. 11.

2021-12-15 22:52:22

 

비전공자에게는 용어 하나하나가 너무 어렵게 느껴지는데

누구나 이해하기 쉽게 설명해줘서 어느 정도 틀을 이해할 수 있게 도와준 책.

 

 

IDE (통합개발환경)=Intergrated Development Environment

Android Studio : 안드로이드 APP 개발 용도

Xcode : 애플 운영체제 위 APP 개발 용도

Eclipse : C / C++개발, 자바개발, 웹 개발 용도

PyCharm : 파이썬 개발 용도 등등..

프로그래밍 언어 구분 기준

저수준 : 컴퓨터 친화적 언어 (어렵다, 작동 빠름, C언어 등등)

고수준 : 인간 친화적인 언어 (쉽다, 편리, 작동 느림, 자바,파이썬 등등)

컴퓨터 구성요소

CPU ( 컴퓨터 머리 역할 )

메모리 ( CPU의 개인 작업 공간 )

HDD 하드디스크 SDD 보조기억장치 (컴터 창고역할)

운영체제 (Operating System)

하드웨어, 보조기억장치, CPU 메모리 관리

PC - 윈도우, 맥 OS

모바일-iOS, 안드로이드

Windows - 마이크로소프트 (Microsoft) - C# , Visual Basic, C++ 등등

맥 OS, iOS - 애플(Apple) - Objective-C, 스위프트 언어

안드로이드 - 구글(Google) -자바, 코틀린 언어

자바 만든 팀은 각 운영체제 위에 JVM (Java Virtual Machine)이라는 소프트웨어 만들어서

자바로만 프로그램 만들어도 모든 운영체제에서 사용할 수 있게 됨.

파이썬도 파이썬으로 프로그램 만들면 윈도우나 맥OS 등 운영체제 위에서

프로그램 설치 및 실행가능

둘의 단점 - 속도가 느림

LAN(Local Area Network) 컴퓨터가 연결된 작은 지역

MAN(Metropolitan Area Network) 도시의 여러 LAN 연결한 것

WAN(Wide Area Network) 도시와 도시 나라와 나라 모두 연결

ADSL(Asymmetric Digital Subscriber Line)

비대칭형 디지털 가입자망, 기존의 구리 전화선을 통해 일반 음성 통화는 물론

데이터 통신을 고속으로 이용할 수 있는 기술, 디지털 가입자 회선 서비스

(xDSL) 가운데 하나

VDSL(Very high-data rate Digital ,,)

초고속 디지털가입자망, ADSL에 이어 등장한 초고속 디지털 전송기술의 하나

일반적인 가입자 전화선을 이용해 양방향으로 빠른 속도로 많은 데이터를 전송하는

초고속 인터넷 서비스

광케이블 : 데이터 전송을 위해 광섬유로 만든 케이블,

레이저를 이용해 통신, 구리선과 비교할 수 없을 만큼의 장거리 & 고속 통신 가능


G=Generation(세대) ex) 2G=2세대 이동통신, 4G=4세대 이동통신

1G : 아날로그 방식 이동통신 표준, 전화만 가능, 안테나 뺴서 쓰는,

집전화기를 휴대 가능하게 한 것

2G : 아날로그에서 디지털 바뀜, 문자가능

CDMA(Code Division Multiple Access) 코드분할 다중 접속

CDMA란 퀄컴에서 개발한 확산대역기술을 이용한 디지털 이동통신 방식

사용자가 시간과 주파수를 공유하면서 신호를 송수신하므로

기존 아날로그 방식 (AMPS)보다 수용용량 10배 이상, 통화품질 우수

3G : 2G와 차이는 유심USIM, 010번호로 통합

영상통화, 인터넷 느리지만 가능

LTE는 3.9세대 정도

4G : 위성망 연결, 무선랩 접속, 인터넷 이용가능

초당 1Gbps(기가비트) 60km이상 고속 이동시 초당 100Mbps(메가비트)

3세대보다 정지상태에서 전송속도가 10배, 이동중은 50배 빠름

LTE-advanced 정도가 4세대 이동통신 국제표준

5G : 초고속 초저지연 초연결, 최대 다운로드 속도 20Gbps

최저 다운로드 속도 100Mbps, 기존 LTE보다 20배 빠름

동시연결 기기수도 늘어남, 5G는 자동차, 가상현실(VR) 증강현실(AR)

자율주행, 사물인터넷(IoT) 등 모든 전자 통신장비 연결해주는 연결기술


IP주소 : 해당 컴퓨터가 위치한 주소, 인터넷에 접속하는 순간 위치에 맞는 IP주소 가짐.

ex)214.123.142.12

컴퓨터가 늘어날수록 많은 IP주소 필요로 최근 숫자 구분을 4개 >> 6개로 늘림

IPv6을 함께 사용

ICANN(국제인터넷주소관리기구) :전세계 IP주소 총괄

APNIC (아시아-태평양지역 네트워크정보센터) 그 지역 IP주소 총괄

KRNIC(한국 인터넷 정보센터) 대한민국 IP주소 총괄

파일을 달라고 보채는 컴퓨터 (일을 맡기는 사람)= 클라이언트=클라=프론트=프론트엔드

파일을 주는 컴퓨터 = 서버 =백엔드 =백

리눅스 : 리누스토발스 개발 (리눅스와 깃을 만든 사람)

무료 배포, 서버 프로그램도 돌릴 수 있는 운영체제

리눅스 유명한 버전 중 하나가 우분투 (Ubuntu)

리눅스는 하드웨어 관리해 사용자가 프로그램 쉽게 도와주는 윈도우 맥OS 같은 운영체제

우분투는 리눅스의 발전된 버전 중 하나

레드햇 리눅스도 유명(유료판매)-운영체제 품질보장

안드로이드도 리눅스의 유명한 개량버전임

(C가 발전해 C++, Objective-C, 파이썬 언어가 된 것 처럼)

MS-DOS (윈도우 이전 컴퓨터 사용을 위한 OS) 명령어 쓸수 있는 사람만 사용함

리눅스 대다수는 그래픽 UI없이 명령어로만 동작

서버 프로그램은 24시간 365일 안정적으로 돌아가는게 중요

리눅스가 맥OS 윈도우보다 저렴할 수 있는 이유

호스팅 업체 : 개인이 서버 운영시 리스크 발생, 모든 일을 대신해주는 서비스

국내(cafe24, 가비아 등) 해외(아마존AWS 등)

API (Application Programming Interface)

응용프로그램 프로그래밍 인터페이스 = 애플리케이션 프로그래밍 인터페이스

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

API는 서버 개발자가 개발하고, 클아이언트 개발자는 그 API 사용

API를 만들 때는 데이터 주고 받는 기능도 함께 넣음

API를 통해 요청과 응답을 주고 받을 때는 데이터도 같이 담긴다

클라이언트 서버관점 API = CRUD

C(Create)요청 -올려줘

R(Read)불러오는 -불러와줘

U(Update)바꾸는 -바꿔줘

D(Delete)지우는 -지워줘

초보기획자들은 데이터 볼 수 있는데 만드는 기획이 없거나 보거나 만드는 기획은 있는데

수정하거나 삭제하는 기획이 없는 실수 많이 함

CRUD 중 특정 기획이 없다면 기획의도가 명확하거나 이유 설명이 가능해야함

CRUD요청은 각각의 주소를 가짐

주소가 너무 많아지고 관리가 어려워지면 API 문제 발생- 버그 생김

-좀 더 체계적인 API라는 사회운동 만들어짐

그런 API를 REST(Representational State Transfer)한 API

즉 RESTful API라고 부름, 이전보다 주소개수 줄어듬.

요청을 보낼 때 어떤 요청을 보냈는지 파악할 수 있는 스티커(메소드) 붙여 전송

Create - POST

Read - GET

Updata - PUT/PATCH(전체/일부)

Delete-  DELETE

일종의 사회운동으로 상황마다 다양한 방식으로 변형사용함

메소드(Method)=방법, 개발자 세상에서는 '함수'같은 의미

요청을 보내면 결과가 나오는 API 모습이 함수와 같아서 메소드

X=변수, 파라미터

서버관점 API : 컴퓨터가 생각한다는 것=개발자가 코딩했다

컴퓨터 응답은 '잘됐어/잘안됐어' 2가지 -2개다 체계필요

잘안됐어는 클라이언트 요청 떄문 / 서버 내부적이유 - 원인찾기, 코드표현

응답에도 데이터 필요 (요청과 마찬가지로 응답에도 데이터 담을 수 있음)

요청과 응답에 데이터 담아주고 받음으로 API요청완성

HTTP상태코드

1xx(정보) 요청을 받았으며 프로세스 계속

2xx(성공) 요청 성공적으로 받았으며 인식 수용

3xx(리다이렉션완료) 요청 완료를 위해 추가 작업조치 필요

4xx(요청오류)요청문법 잘못되었거나 요청 처리할 수 없음

5xx(서버오류)서버가 명백히 유효한 요청에 대해 충족실패

API는 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계,

기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의 체계

SDK (Software Development Kit)

소프트웨어를 개발하기 위한 도구. API를 제공해주는 '다른소프트웨어'

소프트웨어를 개발할 때 도움을 주는 '다른 소프트웨어'

JSON : 중괄호, 키와 값으로 이루어짐 콜론;으로 구분

데이터를 주고받는 주머니와 같음

JSON일는 파일이 있고 파일안에 JSON형식 데이터들이 들어감

-클라와 서버는 요청과 응답을 주고받고

그때 필요한 데이터들을 JSON 형식으로 주고받는다

(데이터를 넣을 수 있는 기능에 여러가지 형식이 있는데

유명한 형식을 다같이 쓰자해서 요즘 가장 유명한 형식이 JSON)

깃북(GitBook) 깔끔한 API 문서작성을 도와주는 서비스

Get Cakes (데이터를 달라)

도메인네임 : 숫자로 된 IP주소를 문자로 쉽게 외울 수 있도록

ex) 176.168.223.244 >> www.naver.com~~~~

Request 요청

파라미터(Parameter) : 메소드를 보낼 때 요청 변수

해당요청을 보내기 위해 어떤 파라미터가 필요한지 확일할 수 있어야 함

Response 응답

잘되면200 안되면400 500 코드 (JSON 형식으로 보내주고 있음)

404-서버에 없는 정보를 클라이언트에서 요청했을 때 보내주는 코드

Open API : 네이버나 카카오 홈페이지에서 우리가 당장 볼 수 있는

일반 사람들이 쓸 수 있게 오픈해서 API문서보며 그 기능 사용 가능

-서버의 기능을 개발자들이 쓸 수 있게 열어 놓은 이유 > 영향력 높아짐 =힘 and 돈

API 사용시 특정 횟수 이상은 돈을 받기도 함, 비즈니스 모델이 될 수 있음

프리미엄 기능에 대한 API를 따로 정해놓은 방식으로도 돈 벌 수 있음

이런 다양한 이유로 회사 서버 API오픈

애플리케이션 응용프로그램 (Application Software)=앱,어플,애플리케이션

운영체제 위에 올라가는 프로그램, 설치해야 하는 프로그램

개발 프로그램 번호 __.__.__

맨앞(하위버전과 호환x 큰변화)

가운데(하위버전과 호환가능하지만 큰변화)

맨뒤(작은변화)

애플은 버그가 있으면 앱스토어에 올리는 거 거절 = 리젝(Reject)

리젝사유 명확제시 해주고 문제 고쳐지면 통과시켜줌

구글에 'APPSTORE 심사지침'검색

WEB

HTML+CSS : 퍼블리싱 작업 /마크업 작업 / 퍼블리셔 /마크업 개발자

브라우저 버전의 파편화 - 문제해결코딩 '파편화를 잡는다'

www.caniuse.com

css사용가능여부 찾아볼 수 있는 서비스

반응형웹페이지 ex)bootstrap

구글=크롬,안드로이드 운영체제

마이크로소프트=윈도우 운영체제

애플 = 맥OS, iOS 운영체제

iOS개발 프로그래밍언어 -스위프트, Objective-C

안드로이드 개발 프로그래밍언어 -자바, 코틀린

네이티브(원주민) 애플리케이션

웹+애플리케이션 > 하이브리드 애플리케이션

Git 깃

개발 단계별 '깃발' 꽂기 - 커밋 (Commit)

커밋에 메모 ( 무슨개발했는지) - 커밋로그 (commit log)

깃의 주된기능 : 소스코드의 버전관리

브랜치(분기,가지) 새로운방향 개발추가

왜 브랜치를 사용하는가?

머지 : 코드를 합치는 기능 - 테스트하기

깃허브,버트버킷 : 원격저장소

자신의 컴퓨터(로컬)에서 작업한 뒤 commit하면

원격 저장소에 보낼 수 있고 작업된 결과물 가져올 수 있음

가이드

애플 HIG(Human Interface Guideline)

구글Material Design