IT/코딩 용어 정리

yejubi1531·2022년 3월 21일
0

컴퓨터와 인터넷
웹 서비스 동작 방식
서버-클라이언트 통신
개발 언어, 프레임워크
아키텍쳐/DB
협업(git)

컴퓨터와 인터넷

컴퓨터란? 기계를 모아둔 것

  • 하드디스크: 적어두기
  • RAM: 기억하기
  • CPU: 계산하기

운영체제(OS): 인간이 기계와 소통할 수 있게 만드는 기반 프로그램

  • 리눅스: 오픈소스

OS에 명령을 내리는 게 "코딩"
이걸 어떤 말로 하느냐가 "프로그래밍 언어"
그리고 이걸 미리 짜둬서 매번 똑같이 움직이는게 "프로그램"
코딩은 늘 프로그램을 만드는 것 => 프로그래밍

컴퓨터끼리 대화를 주고 받고 싶다면? "인터넷"
대화를 주고 받으려니 규칙이 필요
그 중 하나가 웹 = http
http://~~~~ => 웹 통신을 하겠다는 의미
암구호 표를 서로 가져서 가운데서 못 듣게 하는 게 => https

"잘 듣고 있다가 누가 http 요청하면 이 파일을 톨려줘"
=> "웹 서버"를 만들었다고 하는 것

웹 서비스 동작 방식

서버: 가운데서 데이터를 저장하고, 주는 것

  • 서버가 터지면 카톡이 안되는 이유: 카톡 서버가 편지 전달을 못 하니까!
    그럼 서버란 무엇일까? 사실은 그냥 컴퓨터 껍데기 떼고 가로로 눕힌 것
    즉, "컴퓨터"라는 사람의 직업과 같은 것(DB, 웹 서핑 등)

브라우저: 요청을 보내고 받아와서 보여주는 것

  • HTML: 뼈대
  • CSS/JS: 예쁘게 꾸미기, 뭔가 움직일 수 있음

매번 페이지를 로딩 할 수도 없고, 데이터만 갈아 끼우고 싶을 수도 있잖아요!
-> 그럴 대는 데이터만! (규칙 필요)
-> JSON= key:value // 앱에서 많이 쓰임
그렇게 때문에 앱 업데이트가 필요

웹은 업데이트 필요가 없음(서버에서 껍데기까지 다 받아오기 때문)

서버 = 가운데서 역할
브라우저: 요청 + 그려주기
웹은 다 받고, 앱은 데이터만!! (JSON 형식 { key:value })

대체 무슨 규칙으로, 어떻게 통신하는 걸까?

서버-클라이언트 통신

API(Application programming interface)
: 클라이언트 개발자하고 미리 한 약속
헷갈리니까 문서로 써둘까요? "API 명세서"
http:// 서버 위치/API 주소 ? 가져가기로 한 데이터

(ex)
"김 책임님 이거 신규 피쳐라 API하 하나만 따주세요"
=> 새로운 기능 창구를 하나 만들어라. 그 쪽으로 요청하겠음

"API 개발은 끝났고, 클라이언트는 아직이에요"
= 창구는 다 만들었는데, 요청하는 쪽이 아직 작업 중

Open API: 누구나 요청할 수 있게 열어 둔 API
(통상적으로는 누구나 부르지 못하게 함! = 누구나 부르면 배민카피, 쿠팡카피 등)

API란 창구이자 약속
평소에 보는 URL처럼 생김
웹, 앱... 서버는 상관없다

개발 언어/프레임워크

프로그래밍 언어로 서버를 처음부터 다 만든다는 것은 매우 어려운 일

프레임워크: 미리 만들어둔 블록 세트

  • Java: spring
  • Node.js: Express
  • Python: Django/flask

엄청 많고, 대체적으로 유명한 것을 사용

언어 별로 용처와 특징을 알아보자

일단 웹 프론트엔드

HTML, CSS, Javascript를 더 잘 쓸 수 있게 하는 프레임워크
체감상 리액트가 대세. 그런데 셋 중 하나 할 줄 알면 금방 배운다?!

그 다음 서버

대부분의 언어로 서버를 만들 수 있다.

(대표적)
JAVA: 어렵다. 형식이 많음. 큰 회사에서 많이 씀
python: 쉽게 입문, 자유로움. 데이터 분석에도 씀
node.js: javascript와 거의 같음, 스타트업에서 많이 사용
C: 임베디드 칩, IoT에서. C로 서버만드는 곳은 거의 없음
Go: 최근 인기 시작, 쉬운데 적당히 형식 있음
TS: Typescript

앱을 만들 때는
Kotlin: 안드로이드 앱
Swift: 아이폰 앱
한 번에 개발: Flutter, React Native

아키텍쳐/DB

사실 서버 안에는 엄청나게 많은 역할들이 존재
1. 서버와 클라이언트로 구성
2. 웹 서버+DB 와 클라이언트 구성
3. 웹 서버, DB, 클라이언트 구성
4.
5.
6.

그래서 요즘은 클라우드 서비르를 이용
(이미 제공해주는 기능을 잘 구성하는 것도 매우 중요해짐)

DB: 데이터를 잘 찾게 해주는 프로그램
정리된 항목을 "인덱스"

SQL vs noSQL (정형화된 SQL과 비정형화 된 Not-Only SQL)

데이터분석하기 위해 SQL을 배운다 = SQL DB에서 데이터를 빼내는 방법을 배운다.

아키텍쳐. 매우 복잡하다
클라우드를 잘 써야한다.
DB는 두 종류. 인덱스가 중요

git

부분을 나눠서 작업하고, 합치는 방법이 필요


profile
노력하는 중

0개의 댓글