프로그래밍 :프로그래밍언어로 문서작업하는 행동
개발자 : 프로그래밍 언어를 통해 운영체제 위에 돌아가는 프로그램을 만드는 사람, 컴퓨터에게 일을 시킨다.
컴파일러 :프로그래밍 언어를 사용해 컴파일러에게 명령을 전달하면 컴파일러가 그 명령을 기계어인 0과 1로 변환해 컴퓨터에게 전달을 하는방식
IDE : 개발자들의 작업을 도와주는 기능들이 있는 프로그램 , 통합 개발 환경 Intergrated Development Environment
개발하기위한 모든것들을 제공해주는 환경
ex, 안드로이드 위에 올라가는 애플리케이션을 만들기위해서는 안드로이드 스튜디오 IDE사용
프로그래밍언어를 구분하는 하나의 기준:
-고수준 : 인간 친화적인 언어, 저수준보다 작동이 느리다(사양에 따라 다름) ,스마트폰, 데스크탑
-저수준 : 컴퓨터 친화적인 언어 , IPTV,스캐너,프린터,프로젝트
컴퓨터 구성요소
메인보드에..
-CPU : 컴퓨터의 머리역할 (프로그램의 실행)
-메모리(RAM) :CPU의 개인 작업공간 (CPU가 더이상 보조기억장치에 필요한 데이터를 요청하지않고, 데이터뭉치를 보조기억장치에서 메모리로 한번에 옮겨놓고 메모리안에서만 작업)
-하드디스크(HDD) : 컴퓨터의 창고
-보조기억장치(SSD) : 컴퓨터의 창고 (바탕화면에서 포토샵더블클릭, 보조기억장치에 저장된 프로그램실행)
운영체제 : 하드웨어관리 (하드웨어의 용량, 보조기억장치관리, 프로그램 설치,실행) , CPU와 메모리등을 관리
-윈도우 by 마이크로소프트 :C#, visual basic, c++, JavaScript
-맥 OS, IOS by 애플 : Object-c, swift
-안드로이드 by 구글 : java,kotlin
JVM(Java virtual machine) : 각 운영체제 위에 JVM이라는 소프트웨어가 만들어짐
자바로만 프로그램을 만들어도 모든 운영체제에서 사용 할 수있다
네트워크
LAN : 컴퓨터가 연결된 작은 지역 Local Area Network
MAN : Metropolitan Area Network, 도시의 여러 LAN을 하나로 연결
WAN : 도시와 도시, 나라와 나라를 모두 연결
앱스토어에서 카톡다운로드시 : 나의 스마트폰 "카톡설치파일보내줘" -> 컴퓨터가 연결되어있는 네트워크 "142,203,124,152주소로 카톡설치파일보내줘" -> 애플이 켜놓은 컴퓨터"파일이거받아 - >컴퓨터가 연결되어있는 네트워크 - >나의 스마트폰
서버 : 클라이언트 요청에 응답하는 컴퓨터, 데이터를 주는 컴퓨터
리눅스 : made by 리누스 토발스 (깃도 만듬)
리눅스 위에서 서버프로그램을 돌린다
리눅스 : 하드웨어를 관리해서 사용자가 프로그램을 사용하기 쉽게 도와주는 윈도우나 맥같은 운영체제, 그래픽 UI없이 명령어로 동작
우분투 : 리눅스 버전중 하나
안드로이드 : 리눅스의 개량버전
호스팅업체 : Cafe 24, 가비아 . 아마존의 AWS 등 , 서버제공
API: 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계
API는 서버 개발자가 개발하고 ,클라이언트 개발자는 그 API를 사용
ex, 서버주소/A라고 신호를 보내면 서버가 로그인 기능을 수행하고 응답
API를 통해 요청과 응답을 주고 받을때는 데이터도 같이 담긴다
CRUD : 데이터를 다룰떄 기준이 되는 요청
C : creat 타임라인에 사진을 올리는 요청
R : read 타임라인에 사진을 불러오는 요청
U : upgrade 바꾸는 요청
D : delete
CRUD관심에서 데이터를 바라봐야한다
RESTful API : Representational State Transfer, 상황마다 다양한 방식으로 변형해서 사용
Creat : POST
Read : GET
Update : PUT(전체) / PATCH(일부)
Delete : DELETE
클라이언트에서 요청을 보내면 서버는 응답을한다. 이때 잘됐어, 잘안됐어에 체계가있다.
잘됐어는 200번대
잘안됐어
-클라이언트의 요청때문 : 400번대
-서버내부적문제 : 500번대
404 : 보통 정의되지 않은 요청을 보낼때 나타난다. 서버는 문제없이 돌아가는데 요청이 이상하다는 얘기
API : 소프트웨어가 다른 소프트웨어의 기능을 쓰기위해 중간에 필요한 체계.
기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의 체계
내 소프트웨어 "API요청"-> 다른소프트웨어 "한글번역기능"응답
SDK : software development kit 의 약자
소프트웨어를 개발할때 도움을 주는 다른 소프트웨어
ex. 내소프트웨어에 구글지도 SDK설치, 구글지도 SDK에서 제공해주는 API사용
요청과 응답을 주고 받을때의 형식
XML
JSON : 중괄호로시작, 키와 값으로 이루어짐, 키와 값은 콜론으로 구분
클라와 서버는 요청과 응답을 주고받고, 그때 필요한 데이터들을 JSON형식으로 주고받는다
애플리케이션 : 운영체제위에 올라가는 프로그램, 설치해야하는 프로그램, 응용프로그램, 어플, 앱
웹
HTTP :운영체제나 프로그램에 상관없이 일정한 형식이 언제나 동일하게 보이도록 하는 개념등장
태그 ; HTML을 구성하는 코드
HMTL: 브아루저가 볼 수있는 문서를 적는 언어
Javascript : 사용자가 a를 쳤단느 것을 감지 -> a에 해당하는 실시간 검색어 목록을 조회하는 API요청을 네이버 서버로 보냄(GET요청)->네이버서버가 a에대한 실시간 검색어 목록을 정리해서 응답(JSON형식)->javascript는 그 응답을 열어서 HTML로 바꿈
관계형 데이터 베이스 관리 시스템 (RDBMS) : 관계형 데이터베이스의 철학으로 만들어진 관리시스템
MS SQL, Oracle DB, MySQL, MariaDB
-로컬,대부DB,네이티브, 클라,프론트
-서버,API,DB,백
프레임워크 : 각종 라이브러리와 코드들이 모여 프레임워크가 된다
라이브러리 : 더 작은 개념 가위같은 도구
깃: 개발 단계별로 깃발을 꽂을 수있다. 그 행위를 커밋이라고 한다
커밋로그 : 무슨개발했는지 적어두는 메모
체크아웃 : 깃발이 꽂힌 부분의 코드로 옮겨다닐수있다.
브랜치 : 새로운 가지를 뻗는것
새로운 방향의 개발을 추가할때 기존개발에 이어서 작업하지않고, 새롭게 가지를 쳐서 작업
머지 : 코드 합치는 기능
'* > What I did today' 카테고리의 다른 글
JOIN (0) | 2021.08.21 |
---|---|
Process vs Thread (0) | 2021.08.20 |
dto와 entity를 구분해서 구현한 이유 (0) | 2021.08.20 |
Web Server VS WAS (0) | 2021.08.16 |
스프링 핵심 원리 이해1 - 예제 만들기 (0) | 2021.08.06 |
캡슐화/추상화/다형성 (0) | 2021.08.03 |
DNS (0) | 2021.05.02 |
네트워크 개요 (0) | 2021.04.11 |