IT 5분 잡학지식

jellyjoji·2023년 2월 18일
0

프론트엔드

목록 보기
2/3
post-thumbnail

사로운 프로그래밍 언어를 공부하면 그 언어에 담긴 철학, 코드 구조, 개념, 패턴 등을 배우게 된다.

프로그램 빠르게 공부하는 법

  1. 공식 문서 확인
  2. 문법 공부
  3. 코딩 시도
  4. 공식 문서 튜터리얼

오류를 통해 훌륭한 개발자가 되는 방법

  • 코드를 입력한 나자신 때문에 오류가 난다.
  • 오류가 왜 생겼는지 알아야 한다.
  • 오류 메세지 읽기 -> 오류의 위치와 고치는 방법이 적혀있다.

초보 프로그래머가 하는 실수
실제로 만들어보지 않는다 -> 겁나 쉬운것부터 시작하기
뭐든 만들기 시작하면 완성물이 눈앞에 보이고 성과를 측정할수있다.

인터프리터 vs 컴파일
인터프리터는 실시간 동시통역으로 속도가 느리다.
컴파일은 한꺼번에 번역 후 전달하므로 속도가 빠른다. 단, 오류 찾기가 힘들다.

라이브러리 vs 프레임워크
미리 작성해 놓은 코드로 개발 속도를 더 빠르게 만들어 주는 도구.
"누가 누구를 제어하는가?"가 차이점.

라이브러리는 필요할때 불러서 쓸 수 있다.(우리가 제어) ex)제이쿼리,부트스트랩

프레임워크는 부를 수 없다. 프레임 워크 규칙을 따라야 한다.(프레임워크가 우리를 제어) -> 규칙을 바꿀수 없기 때문에 신중하게 결정해야 함. ex)장고,스프링

제이쿼리를 정말로 필요할 때만 배워라
지금의 자바스크립트는 더이상 제이쿼리를 사용해야 할 이유가 없다.

API (Application Programming Interface)
프로그램끼리 소통할 때 쓰는 일종의 규칙을 코드화 한 것. 연결다리 ex)키보드

프로그래밍 공부는 무엇을 만들지 체크리스트를 작성해야 한다.

쿠키
웹사이트 방문했을때 컴퓨터에 보관되는 기록물.
웹사이트에 접속할 때마다 서버에 전송되어 서버의 기억을 되살리는 역할.

HTTP
HyperText Tranfer Protocol
인터넷에서 사용자와 서버가 정보를 주고받기 위한 일종의 규칙.
하지만 HTTP는 우리가 누구인지 기억하지 못하고 그래서 "쿠키"가 필요.

프로토콜
컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하며 이런 형식을 정의하는 규칙의 집합을 프로토콜이라고 한다.

데브옵스
development와 operations의 합성어.
소프트웨어 개발자와 정보 기술 전문가 사이에 소통,협업,통합을 강조하는 개발 환경이나 문화.

서버
항상 켜져있는 컴퓨터.
웹사이트 주소를 입력하기 기다렸다가 해당 주소가 입력되면 그에 맞는 페이지를 꺼내서 보여주는 코드.

서버리스
서버 없음이 아니라 우리가 직접 관리하지 않는 서버.
예전에는 전부 수동으로 관리하던 서버를, 아마존의 등장으로 하드웨어를 제공 및 관리는 하지만, 소프트웨어 관리는 여전히 우리가 해야하므로 서비리스가 등장.
서버리스를 쓰면?
장점) 함수가 필요할때 깨워서 작업을 수행하므로 비용을 아낄수있다.
등록된 함수가 실행된 만큼만 돈을 내면 된다.
단점) 잠에서 깰 때 시간이 필요하다. 의존도가 지나쳐서 서버리스를 옮기기 쉽지 않다.

알고리즘
컴퓨터에 내리는 지시사항을 나열한 것.
알고리즘의 속도는 수행 작업을 몇 단계로 하느냐에 결정된다.

자료구조
데이터를 찾기 좋게 보관하는 것.
어떤 자료구조를 사용하는지(찾기 쉽게)에 따라 프로그램 속도가 빠름.


주소지가 적힌 박스가 많이 있는 창고.
휘발성 메모리 : 컴퓨터를 끄면 데이터는 전부 사라짐.

SEO 검색 엔진 최적화
구글이나 네이버 등에 자신의 웹 사이트/페이지를 노출 할 수 있도록 정보를 최적화 하는 작업.

스택과 큐
배열에 어떤 규칙을 합친 것
스택
팬케이크를 차곡차곡 쌓는다.
마지막에 들어온 데이터가 처음으로 나온다.
ex)뒤로가기, 되돌리기 단축키

선입선출.
먼저 들어온 녀석이 데이터가 먼저 빠져나간다.
ex)쇼핑몰에서 먼저온 주문부터 처리

해시 테이불
해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조.

클린코드
읽기만해도 이 코드가 무슨일을 하는지, 어떤것을 의미하는지 설명이 필요없는 코드.

  1. 의미 있는 이름 부여
  2. 동사로 짓기
  3. 매개변수 3개 이하
  4. 인자에 불린값 금지
  5. 축약어 금지

마지막엔 항상 클린하게 코드를 다듬는 작업하기

데이터베이스
데이터를 보관하는 창고
DBMS(Data Base Meanagement System)
데이터를 직접 정리하거나 처리하는 능력
SQL
데이터베이스로 관리해 주는 DBMS와 대화하기 위한 언어. 데이터 관리 시스템.
표의 형태(행과 열)
NoSQL
JSON의 형태(대괄호와 중괄호)

*ORM 동시통역기로 사용 가능하나 SQL은 개발에 꼭 필요한 데이터와 데이터베이스를 이해할수있게 해주는 언어이므로 공부하는것을 추천

깃허브
어디서든 접근할 수 있는 곳에 저장해서 공유할 수 있는 저장소.
파일뿐만 아니라 파일 관리 이력도 공유 가능.

시맨틱 버저닝 Semantic Versioning Specification
17.6.5

  1. 새집에 이사가는 수준의 큰 변화
  2. 마이너한 업데이트
  3. 패치나 버그 수정

인공지능

한정된 영역에서만 동작하는 좁은 인공지능이 현재의 기술 위치.
머신러닝을 배울수 있는 가장 쉬운 방법은 파이썬을 이용해 텐서플로를 공부하는 것. 텐서플로는 인공지능을 개발하는 가장 유명한 프레임워크.

머신러닝
인공지능을 학습시키는 방법.
1. 지도학습 머신러닝 : 인간이 기계에게 준 라벨을 토대로 학습.
2. 비지도학습은 라벨 없이 스스로 그 특징을 찾다서 학습.
(라벨 label은 특징)

딥러닝
머신러닝을 달성하기 위한 방법.
여러 겹으로 층을 이루고 깊이(deep)하게 학습.
생물에 신경망에서 영을 얻어고안 한 뉴럴 네트워크(neural network) 가 있다.

REST API

HTTP 메서드로 갈림길을 만들어 URL 을 단순하게 만듦.

GET
POST
PUT
DELETE

셀러 리스트 출력
- [GET] /sellers

셀러 계정 생성
- [POST] /sellers

1번 셀러 정보 수정
- [PUT] /sellers/1

1번 셀러 삭제
- [DELETE] /sellers/1

도커
어떤 컴퓨터에서도 같은 개발 환경을 준비 할 수 있도록 해주는 도구.
컨테이너
도커가 준비한 프로그래밍 언어가 동작하는 환경.
도커는 여러 개발 환경을 컨테이너로 나누어 관리.

하이브리드 앱
HTML, CSS, JS로 개발한 웹 앱을 iOS, Android 에서도 쓸수있도록 하이브리드 hybrid 로 만들어 앱스토어에 보는고 사용자가 내려받아 쓰는 것.
네이티브앱 개발 지식이 필요없다.
UI를 직접 한땀한땀 짜야한다.
크로스 플랫폼 앱
어떤 언어로 코드를 작성하면 그 코드가 나중에 네이티브 코드로 변환된다.
네이티브 앱
iOS만을 위한, Android만을 위한 언어로 코드를 작성.
스마트폰 성능을 중간단계없이 최대로 사용 가능.

NFT Non Fungible Token
유일한 원본, 진짜라는 사실이 가치를 높여주고 그 유일한 원본임을 증명하는 기술. 대체 불가능한 토큰.

0개의 댓글