[독서] 비전공자를 위한 이해할 수 있는 IT 지식 요약

baekdata·2021년 8월 24일
0
post-thumbnail

비전공자를 위한 이해할 수 있는 IT 지식을 읽고 요약한 글입니다.

Chapter 1. 프로그래밍 언어 & 운영체제 (OS)

1) 프로그래밍 언어가 언어라고?

컴파일러 → 컴퓨터와 사람의 언어를 중간에서 해석하고 전달하는 것

2) 개발자는 앉아서 뭐하는거지?

통합 개발 환경 → IDE (Integrated Development Environment)

ex) Android Studio, Xcode, Eclipsse, Pycharm

3) 개발 언어가 많은이유?

고수준 언어: 인간 친화적

저수준 언어: 컴퓨터 친화적

4) 컴퓨터에 대하여..

CPU: 컴퓨터의 머리 + 메모리 + 보조기억장치: HDD, SDD 등 + 메인보드

5) 운영체제

IOS, 안드로이드 같은 운영체제는 우리의 하드 웨어를 대신 컨트롤하고 관리해준다.

6) 자바를 최신으로 유지해야하는 이유?

자바는 여러개의 운영체제 위에 Java Virtual Machine이라는 소프트웨어를 만듦

→ JVM 위에서 자바 언어로 만든 프로그램이 돌아갈 수 있도록 만들었음

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

Chapter 2. 네트워크, 클라이언트, 서버

1) 네트워크

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

MAN (Metropolitan Area Network)

WAN (Wide Area Network)

IP: 컴퓨터의 주소, 0~255까지 사용가능, 최근에는 숫자 구분을 6개로 늘린 IPv6 사용

2) 클라이언트

일반적으로, 컴퓨터를 의미. 그 중에서도 서비스를 사용하는 사용자가 소유한 컴퓨터

3) 서버

백엔드, 운영하는 컴퓨터

4) 우분투?

리눅스 → 운영체제 중 하나, 주로 서버를 돌리는데 사용함, 무료

리눅스의 유명한 버전 중 하나가 우분투

레드햇 리눅스라는 유료 버전도 있음

안드로이드는 구글이 리눅스를 모바일 형태로 개량해서 발전시킨 운영체제

Chapter 3. API와 JSON

1) API?

서로 다른 프로그램에서의 약속. 요청과 응답을 주고 받을 수 있게 만든 체계.

2) CRUD?

Create / Read / Update / Delete

CRUD 별로 주소를 관리하고 생성되게 되는데, 너무 많아지는 문제 발생

→ REST API 탄생

3) REST API?

Representational State Transfer - 체계적인 API

CRUD를 하나의 주소로 관리하고, 해당 요청을 보낼 때 파악할 수 있는 스티커 = 메소드를 붙임

1) Create : POST

2) Read : GET

3) Update : PUT, PATCH

4) Delete : DELETE

4) 200, 400, 500?

200번대: 성공

400번대: 문제가 클라이언트에 있는 경우

500번대: 문제가 서버에 있는 경우

5) SDK?

Software Development Kit로 소프트웨어를 개발하기 위한 도구

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

ex. 구글 지도 SDK 사용 시, 내 소프트웨어에 구글 지도 기능 넣을 수 있도록 도와줌

6) JSON?

요청 (Request)를 보냈을 때, 응답 (Response)의 형태가 각각 너무 다름

→ 유명한 형식을 정해서, 다 같이 쓰자!

이전에는, XML이 유명했고, 현재는 JSON이 유명

## json 형태
{

  키1 (KEY): 값1(Value)

  키2 (KEY): 값2(Value)

}

Chapter 4. 애플리케이션

변동이 가능한 회사 정책 등에 대한 정보는 어플리케이션에 넣지 않고 API로 서버에서 불러옴

Chapter 5. 웹

1) HTML (Hyper Text Markup Language)

운영체제나 프로그램에 상관없이 일정한 형식이 언제나 동일하게 보이도록 하는 개념의 문서

2) CSS (Cascading Style Sheets)

HTML에 디자인 요소 추가

HYML + CSS → 퍼블리싱 작업 / 퍼블리셔라고 부름 혹은, 마크업이라고 부름

3) Javascript

웹브라우저 위에서 동작하는 프로그래밍 언어

최근에는 node.js라는 서버측 자바스크립트가 각광받고 있습니다.

또한 MongoDB와 같은 친 JavaScript 데이터베이스를 사용하면 클라이언트부터 서버 그리고 데이터베이스까지 모든 부분을 JavaScript 기반으로 구현할 수 있습니다.

또한 구글 Apps 스크립트등의 사례에서도 볼 수 있듯이 자바스크립트는 다양한 플랫폼을 프로그래밍적으로 제어하기 위한 도구로 폭넓게 채택되고 있습니다.

JavaScript의 시대라고 할만합니다. (생활코딩)

4) 브라우저의 파편화

웹 프론트엔드 개발자는 소비자의 브라우저의 종류와 버전에 받게 동작하도록 코드를 작성해야 함

5) 반응형 웹?

브라우저의 가로 넓이에 반응하여 구성 요소가 변하는 기술

6) 네이티브 어플리케이션?

원래 정해놓은 언어들을 사용해, 운영체제 자체의 기능을 사용하는 것

ex) IOS - 스위프트, 오브젝트 C / 안드로이드 - 자바, 코틀린

7) 하이브리드 어플리케이션

앱내의 특정 부분에 브라우저를 올려두고, HTML 을 불러올 URL을 설정해두는 것

Chapter 6. 데이터베이스와 이미지 처리

관계형 데이터 베이스 (RDBMS)

MS SQL, Oracle DB, MySQL 등

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

1) 프레임워크?

어플리케이션을 만들 때, 미리 제공해주는 사전? 혹은 가이드 같은 것

AppKIT : 맥

UIKIT : IOS, tvOS

Chapter 8. 협업, 소스관리, 디자인

1) 깃

개발자가 개발 단계별로 커밋 (기발 꽂기)을 하고 커밋 로그 (메모)를 작성하도록 할 수 있음

브랜치 - 가지 뻗기 / 새로운 개발 방향 추가

머지 - 합치기

ex. 깃허브 등

2) 스케치, 제플린, XD?

개발자와 디자이너간의 소통을 돕기 위한 툴

profile
글쓰는 데이터 분석가

0개의 댓글