본문 바로가기

archive_

코딩용어정리 with 스파르타코딩 「1시간만에 끝내는 직장인 코딩 용어 해설」


코딩용어정리
 with 스파르타코딩 「1시간만에 끝내는 직장인 코딩 용어 해설」



1. 컴퓨터와 인터넷 "https 보안 설정 됐어요?"
2. 웹서비스 동장 방식 "서버가 죽었네요"
3. 서버-클라이언트 통신 "저희가 API 열어드릴게요"
4. 개발 언어, 프레임워크 "요새는 리액트로 개발해요"
5. 아키텍쳐/DB "DB는 뭐 쓰세요?"
6. 협업 "git에 커밋했습니다"


1. 
컴퓨터와 인터넷

🔸 운영체제 (OS) : 인간이 기계와 소통할 수 있게 만드는 기반 프로그램.
즉, 인간의 언어를 기계언어로 바꿔준다. 기계가 있으면 운영체제가 탑재되어 있다.
OS에 직접적으로 명령을 내리는 것이 "코딩" (예 : 한시간 후에 컴퓨터 꺼라)
=> 안드로이드, ios, 윈도우, 리눅스(오픈소스임=무료. 그래서 회사 서버는 주로 리눅스를 사용한다) ..등등..
🔸 인터넷 : 컴퓨터끼리 소통하는 것. 규칙이 존재하는데 그 중 하나가 웹통신 = http 와 https의 차이점은  https는 컴퓨터와 컴퓨터 사이에 암구호 표를 서로 가져서 가운데서 못 듣게 하는 것(=보안이 철저)

🔸 프로그래밍 언어: 코딩을 어떤 말로 하냐..어떤 말로든 명령만 내리기만 하면 됨.
🔸 프로그램 : 코딩을 미리 짜놓고 맨날 똑같이 움직이는 것. => 파워포인트, 엑셀, 게임...
즉, 코딩은 늘 프로그램을 만드는 것이어서 "프로그래밍"이라고도 한다.

2. 웹서비스 동장 방식
🔸 서버 : 가운데서 테이터를 저장하고 주는 것. 사람이 많아지면 힘들다. 그냥 컴퓨터 껍데기를 떽,
서버가 죽었다/터졌다는 컴퓨터가 갑자기 파란 화면으로 변한다던가, 무거운 엑셀 또는 게임을 돌리다가 컴퓨터가 멈추는 것. 누가 http 요청 하면 이 파일을 돌려줘 = 웹서버를 만들었다. 
즉, 서버란 컴퓨터라는 사람의 직업과 같은 것이다. DB, 웹서핑...투잡 쓰리잡이고 가능
🔸 웹서비스 동작 원리 : 브라우저에서 이미 받아온 거라서 내가 고칠 수 있다. 
🔸 브라우저의 역할: 브라우저가 컴퓨터에 가서 받아와서 그대로 그려주는 것. 즉, 요청 + 그려주기
1. html 뼈대, css 이쁘게, 자바스크립트의 동작
🔸 데이터는 아무렇게나 줄 수는 없으니, 줄때 규칙이 필요 = JSON방식(키 : 밸류) 
웹은 다 받고, 어플은 데이터만 받는다.
데이터 갈아끼우는 방식은 콘서트 예약, 어플에서(카카오톡 눈 오는 것(눈이 안 온다? 껍데기가 없는 것). 

3. 서버 - 클라이언트 통신
🔸 API : 서버에서 미리 만들어둔 기능이자, 클라이언트 개발하자고 미리 한 약속. 서버에는 창구가 존재하고 창구는 약속으로 존재. 약속을 기억할 수 없기 때문에 API명세서에 작성해둔다. // 창구이자 약속
🔸http://movie.naver.com / movie/bi/mi/basic.naver ? code=10016 (10016은 나홀로집에 영화번호. 아무숫자 넣으면 오류뜬다)
    http://서버의 위치 / API주소 ? 가져가기로 한 데이터
🔸 API하나만 따주세요 = 새로운 기능 창구를 하나 만들어달라. 그 쪽으로 요청하겠다.
    API 개발은 끝났고, 클라이언트는 아직이다 = 창구는 다 만들었는데, 요청하는 쪽은 아직 작업중이다.
🔸 Open API : 누구나 요청할 수 있게 열어 둔 API //  통상적으로는 아무나 요청할 수 없다(배민, 쿠팡, 카카오톡..)
🔸 서버가 창구를 만들고, 창구로 요청이 된다. 서버는 요청이 웹에서 오는지, 앱에서 오는지 상관없다.

4. 개발언어와 프레임워크
🔸 프로그래밍언어 : 미리 만들놓은 블록세트. 속성이 다를 뿐, 상황을 고려해 선택해서 사용
JAVA 로 만든 프레임워크 : Spring
Node.js로 만든 프레임워크 : Express
Python으로 만든 프레임워크 : Django, Flask 
엄청 많고 대체적으로 유명한 것을 사용
🔸 눈에 보이는 부분 // 서버에서 요청하면 HTML, CSS, Javascript를 가져다준다. 가지고 오는 부분을 만들어두는 것.
= 웹 프론트엔드
HTML, CSS, Javascript를 더 잘 쓸 수 있게 하는 프레임워크 👉 앵귤러, 뷰, 리액트 (체감상 리액트가 대세. 그런데 셋 중 하나 할 줄 알면 금방 배운다는 이야기)
🔸 서버언어 👉 Java, python, Node.js를 주로 사용
Java :  어렵다. 지켜야하는 형식이 많음. 큰 회사에서 많이 사용 = 실수를 미연에 방지하기 위해서
python : 쉽게 입문(입문자 多). 문법이 직관적. 자유롭고 데이터분석에도 사용 
Node.js : Javascript와 문법이 거의 비슷. 스타트업에서 사용. 백엔+프엔 언어가 같으면 좋으니까
🔸 그 외 앱을 만들 때는 👉 Kotlin(안드로이드 앱을 만들 때), Swift(아이폰 앱 만들 때), Flutter or React Native(한번에 개발)
🔸 C언어는 현업보다는 임베디드, 칩같은 거 다루는 곳에서 사용(스타트업은 잘 없음)
🔸 데이터 분석 👉 SQL, python

5. 아키텍쳐와 DB
🔸 서버 : 서버와 클라이언트 구성. 유저가 많아지면 데이터 저장소를 따로 뺀다. 데이터는 한곳에서 관리되는 게 좋아서 웹서버를 늘린다. 웹서버가 늘어나면 트래픽을 관리하는 라우터가 필요하고, 더 커지면 DB를 더 상세하게 나눈다. 그러면 클라우드 서비스를 이용한다.
🔸 데이터베이스(DB) :  잘 찾기 위해서 정리해두는 것.
원하는 대로 미리미리 정렬해서 정리해두는 게 데이터베이스를 잘 사용하는 방법!
🔸 인덱스(Index) : 정리된 항목. 
인덱스가 잘못하면 쭉 보는 걸 "풀 스캔 떴다"라고 한다. = 큰일 남
🔸 DB종류는 2가지 SQL  vs NoSQL
SQL : 정형화된 것. 대기업에서 사용 (실수하면 안됨)
NoSQL(Not only SQL)  : 비정형화된 것. 데이터를 그냥 적재한 상태. 스타트업에서 사용하는 방법 (비즈니스가 어떻게 바뀔지 몰라, 대응하기 위해서)
데이터분석 하기 위해서 SQL을 배운다 = SQL DB에서 데이터를 빼내는 방법을 배운다.
SQL은 굉장히 쉽고, 문법이 몇 개 없어서 배워두면 좋음.


6. 협업(git)
🔸
개발자 각자의 git에 작업을 하고, github에 코드를 올려두고 모으는 것
🔸 commit : 세이브포인트 // push : 업로드 // pull : 다운로드(+자동 / 수동 충돌 해결)
🔸 또는 branch : 따기 // merge : 합치기