유튜브 중간광고에서 보고 알게 된 과정.
요즘 코딩, 프로그램 관련 검색을 많이 하다보니 이쪽분야에서 쓰이는 용어가 헤깔리는 경우가 굉장히 많았다. 한글인데 이해할 수 없는 상황.. 아무튼 그런 알쏭달쏭한 용어를 한번 정리해봐야겠다는 생각이 들었지만 실천으로 옮기기에는 너무 부담스럽고 또 귀찮기도 했는데 마침 이런 강의를 만나게 되었다. 사실 스파르타 코딩클럽이라는 웹사이트에서 바로 어제 기초강의를 수강신청하였는데, 그런 내용들이 알고리즘에 잡혔나 보다.
비전공자 출신으로서 코딩에 대해 아무것도 모르지만 코팅을 배우고 싶은 입장에서 이 '한시간 만에 끝내는 직장인 코딩 용어해설'은 꽤나 매력적인 상품이었다. 거기다 공짜라니 더 눈이 감. 원래는 5만원이라는데, 사실 그 가격에는 안들을것 같긴 하지만 뭐 이벤트 기간이라니 아주 가벼운 마음으로 들을 수 있을 것 같다. 사실 이 회사 입장에도 잠재고객의 엔트리 배리어를 낮춰주는 것이 중요하지 않을까? 아마 5만원 받고 팔 목적으로 만든 강의는 아닌것 같긴 하다. 이걸 듣고 5주짜리, 6개월짜리 코스를 들으면 그게 훨씬 큰 이익이겠지 뭐.
아래 링크는 아마 이번 용어해설을 듣고 나서 수강하면 좋을만한 또 다른 기초강의라고 한다. 5주만에 코딩의 기본기를 다질 수 있다고 한다. 사실 다음주 부터 수강하려고 신청하고 기다리고 있는 상황. 기대된다.
https://spartacodingclub.kr/?f_name=%EA%B5%AC%EC%88%98%ED%95%9C&f_uid=633509ea40c082ce2a9adaca
스파르타코딩클럽
5주 완성! 코딩을 전혀 모르는 비개발자 대상의 웹개발 강의
spartacodingclub.kr
수업을 듣고 나서
역시나 기대했던 대로 내가 평소에 잘 이해가 안되는 개념과 용어를 알기쉽게 설명해줬다. 겨우 한시간동안 이 분야의 모든 용어를 다룰수는 없었기 때문에 아쉬움은 있지만, 굵직한 뼈대는 이 수업으로 잡았으니, 이제 각론으로 들어가서 좀 더 구체적으로 학습할 기회를 갖아야 겠다.
아래는 대략적인 수업 내용을 정리한 노트
1강은 단순히 이 회사와 수업의 커리큘럼에 대해 아주 간단히 다루었다.
2강: 컴퓨터와 인터넷
- 컴퓨터: 기본적으로 기계를 모아둔 것.
- 운영체제(OS): 사람의 언어를 기계의 언어로 바꾸는 것 (Android, iOS, Window, Linux)
- 마우스와 키보드로 적당히 명령 ->기계언어로 바꿈->동작
- 코딩: 코드로 명령을 내리는 도구
- 프로그래밍 언어: 코드의 언어. 프로그래밍 언어마다 속성이 다름
e.g., 파이썬은 직관적, 라이브러리가 유명 but 깊이 들어가면 어려움
- 프로그램: 자주쓰는 명령을 모아놓은 것. 코딩은 프로그램을 만드는 것
- 웹 통신 (http): 컴퓨터 간 소통방식. 그 규칙
- https: 비밀코드/보안의 개념. 암호표를 서로 가져서 가운데서 못 듣게 하는 것.
- 웹 서버를 만들었다: "잘 듣고 있다가 누가 http요청하면 이파일을 돌려줘~"
3강: 웹서비스 동작방식
- 서버가 터졌다? <- 접속자가 몰릴때: 데이터를 저장, 전달 해주는 역할
- 서버: 우리의 컴퓨터와 다를 게 없다.
- 서버가 터졌다? 윈도우에서 파란화면, 게임이 꺼지거나, 무거운 파일 돌릴때 컴퓨터가 멈추는 경우
-> 서버가 터졌다?? 컴퓨터 다시 켜고 프로그램 돌리면 됨.
- 웹서버란: '컴퓨터'의 직업같은 것 (DB, 웹서핑, 웹 서비스 등) - 가운데서 역할
- 웹서비스가 동작원리: 브라우져가 어떤 역할을 하는 것을 아는 것이 핵심 - 해킹해보기?
- 브라우져는? 내건 내맘대로 고칠 수 있고 (이미 받아왔으니까), 인터넷과 상관없는 페이지였고(이미 받아온거여서 내가 고칠 수 있어), 새로고침하면(새로 받아오는 것) 제자리로 돌아온다? - 요청+그려주기
->브라우져는 서버에서 주는 것을 그대로 받아오기만 하는 것.
- HTML: 뼈대 (내용) / CSS:예쁘게(색깔 위치) / Javascript: 움직이는 것 (자동완성 등)
- 영화 좌석 예매시 전체화면이 바뀌는게 아닌 좌석 점유 여부만 바뀌는 것 -> 데이터만 바꾸는 방식
-> 여기에도 규칙이 있다? {JSON} 방식. '키:밸류' 라고 한다 (Message: '정상처리되었습니다')
=> 데이터 갈아끼우는 방식: 앱에서 엄청 많이 쓰임 (즉, 앱은 데이터만, 웹은 다 받는다)
==> 웹서비스에서는 이런 기능이 없다. 다 받아오니까
4강: 서버-클라이언트 통신 " 저희가 API 열어드릴게요"
- e.g., 은행은 서버 고객은 클라이언트
->은행가서 통장잔고 확인하는 방법?
1)아무나에게 가서물어봄; 2) 대출창구에 감; 3)크게 소리침; 4)번호표 뽑고 입출금 창구에 가서 민증 보여줌
*은행과 미리 약속해둔 곳에(예금창구), 약속해둔 데이터(신분증)를 들고 가야 잔고를(응답) 알려줌.
- 컴퓨터
1) 아이디를 갖고와; 주문내역 알려줄게; 2) 주소를 갖고와; 음식점을 알려줄게; 3)주문번호를 갖고와; 배달현황알려줄게
->창구하나하나가 API
- API 명세서: {a:b} 약속을 문서화해 놓은 파일.
- http://우리은행용산지점/입출금창구?신분증=주민등록번호
- http://서버위치/API주소?가져가기로 한 데이터
-문장이해하기
"김책임님 이거 신규 피쳐라 API하나만 따주세요" = 새로운 기능창구를 하나 만들어달라. 그쪽으로 요청하겠음
"API 개발은 끝났고, 클라이언트는 아직이에요" = 창구는 다 만들었는데, 요청하는 쪽이 아직 작업중
- Open API: 누구나 요청할 수 있게 열어 둔 API (통상적으로는 누구나 부르지 못하게 함!)
- 서버는 이 요청이 어디서 오는 건지 상관없음! (앱용, 가전용, 웹용 서버가 따로 있는 것이 아님)
- 어떻게 만들까? 남들이 만들어놓은 코드 조각을 활용 (= Framework)
5강: 개발언어 프레임워크 - 언어에는 특성만 있을 뿐 좋고 나쁨이 없다( 많이 쓰고 적게 쓰는 건 있다)
- 코드=OS에 명령을 내리는 것
- Framework: 미리 만들어놓은 블록세트
(e.g., 자바:스프링=Node.js:Express=Python:Django/Flask)
- 프론트엔드: HTML, CSS, Javascript
- Angular, Vue.js, React.js: 위 세개를 잘 엮을 수 있는 프론트엔드 프레임워크
- 백엔드(서버): 자바, 파이썬, 노드
- 자바: 어렵다, 형식이 많다, 큰 회사에서 많이 씀
- 파이썬: 쉽게 입문, 자유로움, 데이터분석에도 씀
- 노드: 자바스크립트와 거의 비슷 (스타트업에서 많이 씀)
- 안드로이드 = Kotlin, 아이폰=Swift, 한번에 개발 = Flutter or React Native
- C언어는 거의 임베디드나 칩
6강: 아키텍쳐/DB - "DB뭐쓰세요?"
- 프론트 10% vs. 백엔드 90%
- 트래픽이 많아지면 DB보다는 서버를 늘려준다 (정보는 한곳에 관리하는것이 좋음)
-> 라우터가 트래픽을 관리해주어야 함.
=> 더커지면 DB도 늘어남
==> 상태체크용 서버도 생김 (팀메신져, 전화, 상황판 등)
- 클라우드: 컴퓨터를 사는게 아니고, 인터넷에서 컴퓨터 역할을 하는 서비스를 구매 (배민이 월드컵때 컴퓨터 더 샀다가 끝나고 다시 팔 수는 없잖아!)
- 아키텍쳐는 라우터, 서버, DB등의 설계도
- DB는?
- 정리하는 이유: 잘 보관하려고 vs. 잘 찾으려고
-> 내가 원하는대로 미리미리 잘 정렬시켜주는 것이 중요
- 정리된것 = 인덱스 (회원번호, 이름 등)
- 풀스캔 띄운다? 정렬된대로 안찾아서 전부를 다 스캔 해야 함.
- SQL vs. NoSQL(Not only SQL)
- SQL: 엑셀처럼 잘 정돈된 DB: 실수가 적어야 하는 대기업
- NoSQL: 정형화되어있지 않은 데이터를 적재하는 방식: 변화가 심할 스타트업에서 많이 씀
- Example of SQL: Oracle, PostgreSQL, mySQL, SQLServer, SQLite
- Example of No-SQL: Redis, MongoDB, Apache Hbase, cassandra,
7강: 협업 "git에 커밋했습니다"
- 개발자들은 어떻게 일을 같이 할까?
- 부분을 나눠서 작업하고, 합치는 방법이 필요.
"GitHub"
1. Commit: 세이브포인트
2. Push: 업로드
3. Pull: 다운로드(+자동/수동 충돌해결)
4. 브랜치 따기 (your work)
5. 머지하기(합치기)
'프로그래밍 > 공부자료' 카테고리의 다른 글
[스코클] 엑셀보다 쉬운 SQL - 문법 정리 (0) | 2022.10.17 |
---|---|
쓸데 있는 댓글 모음 {좋코딩} (0) | 2022.10.08 |