개발일지

[스파르타코딩클럽/무료강의] 1시간만에 끝내는 직장인 코딩 용어 해설 정리

요고 2022. 2. 19. 18:40

코딩의 본질은 삽질이다.
집념하고 구글만 있으면 모두가 장인이 될 수 있다.

컴퓨터는 기본적으로 기계를 모아둔 것. 기계의 집합.
하드디스크: 적어두기. 하드디스크가 크면 여러가지 용량을 저장할 수 있음.
RAM: 기억하기. RAM이 좋으면 기억을 많이 할 수 있음.
CPU: IQ같은 것. 계산하기. CPU가 좋으면 계산을 빨리 할 수 있음.
메인보드: 하드디스크, RAM, CPU 등을 꽂아서 한번에 관리하는 곳.

운영체제(OS): 인간이 기계와 소통 할 수 있게 만드는 기반 프로그램(안드로이드, iOS, 윈도우, 리눅스 등)
리눅스는 오픈소스라서 무료.

OS에 명령을 내리는게 코딩.

프로그래밍 언어: 명령을 내리는 언어. 언어마다 특성이 다름. 인간과 가장 가까운 언어. (ex. 자바, php, 파이썬 등) 

프로그램 = 코딩을 미리 해둬서(=이미 짜여진 코드로) 반복적으로 똑같이 돌아가는 것. (ex. 워드, 엑셀 등)

코딩 = 코드를 친다.
프로그래밍 = 프로그램을 만든다.
코딩은 프로그램을 만드는 것. 그래서 똑같음.

인터넷: 컴퓨터끼리 대화를 하고 싶을 때 사용하는 것.

웹통신: 인터넷 세상에서 웹 http라는 규칙대로 통신을 하는 것.

http: 주로 웹통신을 하겠다는 의미. 통신 규칙 중 하나. 
https: 보안을 더 강화 한 것. 암구호 표를 서로 가져서 가운데서 못 듣게 하는 것.

인터넷 위에 여러가지 다른 통신 방식들도 존재.

웹서버를 만들었다 = 인터넷에서 잘 듣고 있다가 웹통신이 오면 대답을 해줘라

서버: 그냥 컴퓨터의 역할. 가운데서 데이터를 저장하고 줌. 

서버가 데이터를 전달해야 하는데, 사람이 많이 지면(=요청이 많으면) 힘들어짐.

브라우저: 서버에 요청을 보내고, 서버에서 받은 것(HTML-뼈대, CSS-꾸미기, JS-움직이기)을 그대로 그려주는 역할.

JSON 방식: 데이터를 내려줄 때 규칙. {키:밸류}. 앱에서 많이 씀.

앱은 껍데기만 가지고 있다가 데이터만 받아서 그 껍데기에 다시 붙여주는 것.
예를 들어 카톡 업데이트를 안하면 눈 올 때 대화창에 눈이 안옴. 그런데 쿠팡 이벤트는 업데이트를 안해도 보임. 
즉 웹은 HTML, CSS, 자바스크립트 싹 다 받아오고, 앱은 데이터만 받아옴.

은행을 서버라고 할 때, 고객은 클라이언트.
웹서버에도 여러 창구가 존재함. 

API(Application Programming Interface):서버에서 미리 만들어둔 기능이자 클라이언트 개발자와 서버 개발자가 미리 한 약속.
http://서버위치/API주소?가져가기로 한 데이터 ->평소에 보는 URL처럼 생김

API명세서: 헷갈리니까 문서로 써둔것. API 설명서.

API 하나만 따주세요 = 새로운 기능 창구를 하나 만들어달라. 그 쪽으로 요청하겠다.
API 개발은 끝났고, 클라이언트는 아직이에요 = 창구는 다 만들었는데, 요청하는 쪽이 아직 작업 중

오픈API: 누구나 요청 할 수 있게 열어 둔  API.

요청하면 클라이언트(브라우저, 휴대폰, IOT 가전),

서버는 요청을 받고 데이터를 주는 쪽.

요청을 받을 때 출입문 API 창구.
잘 받기 위해 대기하고 있는게 웹서버의 역할

프레임워크 = 미리 만들어 놓은 블록세트. (자바-Spring, Node.js-Express, Python-Django, Flask, JS-Angular,Vue.js,React.js 등)
유명한 것을 써야 에러가 났을 때 검색 시 자료가 많이 나옴

프로그래밍 언어는
1. 컴파일 언어 : C, C++, Java, C#, Go (컴퓨터와 가까운 언어로 좀 더 정교하게 명령을 내릴 수 있음)
2. 인터프리터 언어 : Python, Ruby, Perl, PHP, Javascript

안드로이드앱을 만들 때는 Kotlin, 아이폰앱을 만들 때는 Swift, 

둘 다 한 번에 개발 할 때는 Flutter 또는 React Native

프로그래밍 언어로 할 수 있는 건 다 똑같고 각 언어별로 특성만 다름. 

좋고 나쁨이 없음. 본인의 상황을 고려해 선택.

프론트엔드개발자와 백엔드개발자(=서버개발자)의 비율은 1:9 아니면 2:8 정도로 백엔드개발자가 월등히 많음.

라우터: 교통순경 같이 요청을 받으면 비어있는 웹서버에 빨리 요청을 줌.

서버가 죽었다 = 서버가 터졌다 = 서버로 돌리고 있던 컴퓨터가 멎었다
그 후 개발자가 와서 그 컴퓨터를 껐다가 다시 킴.

아키텍쳐는 매우 복잡해서 다 알 수 없고, 요새는 클라우드에서 컴퓨터를 빌려서 아키텍쳐를 구성함.

클라우드 서비스: 인터넷 환경에서(클라우드 환경) 컴퓨터를 빌려주는 것. 

시간 단위 또는 트래픽 단위로 돈을 냄 (ex. AWS)

데이터베이스: 데이터를 잘 찾게 해주는 프로그램
1. SQL: 정형화됨. 오라클, MySQL 등
2. NoSQL: 비정형화됨(Not-only SQL). mongoDB

인덱스: 정리된 항목. 인덱스를 타야 빠르게 가져온다. <-> 풀스캐닝: 처음부터 끝까지 다 찾는 것.

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

협업 할 때 거의 git을 쓰고, GitHub에 코드를 보관해서 합침.
GitHub: 코드를 공통적으로 관리할 수 있는 git이 깔려진 컴퓨터를 빌려주는 곳.

git에는 커밋, 푸시, 풀이 있음.
commit: 내가 작업을 하다 업로드를 하고 싶은 세이브 포인트를 만드는 것.
push: 세이브 포인트를 업로드 하는 것.
pull: 남이 업로드해놓은 걸 받아오는 것.