성장일지
유튜브 본문
정보들이 주고받아지는 데 있어 개발자들이 쓰는 방식
어떤 프레임워크든 소프트웨어들 만들 때 이 폼에 맞춰 만든다
1. 제어장치가 필요
=> 인터페이스 (기계와 인간간의 소통창구)
명령을 넣고 결과와 정보를 받아오기위한 것도 포함
소프트웨어에서는
버튼, 스크롤바, 슬라이더, 브라우저 창 등 이 있다.(User Interface)
서버와 웹사이트들 사이에 정보가 요청 주고 받을때
정형화시켜 사용하는 형식을 API (Application Programming Interface)
프론트엔드 웹에서 서버에 데이터를 요청, 배달앱에서 서버에 주문을 넣는 등의
서비스를에서 사용되는 API 형식이 REST API
어떤 요청을 했는지 요청 모습 자체로 추론 가능
=> 협업에 유용
자원을 구조와 함께 나타내는 형식의 구분자를 URI라고 칭함
REST 에는 CRUD사용
Create
Read
Update
Delete
서버에 REST API로 요청 보낼때는 http 규약에 따라 신호를 보냄
http규약중 REST API는 위에 나온 GET, POST, DELETE, PUT 4가지 혹은 PATCH를 더한 5가지 사용
http규약 중 POST, PUT, PATCH에는 body라는 주머니가 있어서
정보들을 get이나 delete보다 많이, 감춰서(안전하게) 주고 받을 수 있다.
이것들의 용도가 하나로 국한 되어 있지는 않지만
협업이나 원활한 의도파악을 위해
Restful한 API를 만들기위해선
목적에 따라 구분해서 사용
PUT은 정보를 통째로 갈아끼울때
PATCH는 정보 중 일부를 갈때 사용
REST의 규칙 => URI는 동사가 아닌 명사들로 이뤄져야 한다
결론 REST API란
HTTP요청 보낼때 어떤 URI에 어떤 메소드를 사용할지
개발자들 사이에 널리 지켜지는 약속
=>형식이기 때문에 기술에 구애받지 않음
비동기
=> 꼭 한줄한줄 순서대로 진행되는 게 아닌 코드
멀티태스킹이 구현되고 있다
쓰레드나 프로세스가 여럿이 돌고 있다
동기
=> 간단하게 동일한 기차길에 놓인 기차라고 생각
반대로 비동기는 이동이나 느리거나 자주 멈추는 기차를 다른 선로에 배치하는것
콜백함수
=>비동기적으로 업무를 다 마친후에 실행하도록 추후 업무를 맡겨놓은 함수
ex) 다 드신후에는 식사완료라고 call back해주세요 라고 주문자에게 알려주는것
js는 싱글스레드인데 비동기가 가능한 이유
=> js에서는 web api라는 것이 함께 동작(시간을 소요하는 작업을 수행)
web api에서 비동기 작업을 처리 후 callback을 태스크 큐에 보내어
이벤트 루프가 다시 js 엔진으로 배치시킨다
함수는 나중에 들어간것이 먼저 나오는 스택형태로 처리된다
콜백지옥을 해결하기위해 js는 es6부터 promise를 도입
=> .then 으로 꼬리를 무는 체이닝 방식으로 순차적으로 처리가능
es7에서는 async/await 도입
=> 더 직관적으로 사용 가능/ 동기적 작업처럼 코드작성 가능