항해 후31 TCP/UDP TCP(Transmission Control Protocol) 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 TCP는 애플리케이션에서 신뢰적이로 연결지향성인 서비스를 제공합니다. 일반적으로 TCP와 IP는 함께 사용되며 IP는 배달을, TCP는 패킷의 추적 및 관리를 담당합니다. TCP는 연결형 서비스로, 신뢰적인 전송을 보장하기에 hanshaking(자동화된 협상 과정) 하고 데이터의 흐름 제어와 혼잡 제어를 수행합니다. 하지만 이러한 기능으로 인해 TCP의 속도는 느립니다. 특징 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제 흐름 제어 및 혼잡 제어 높은 신뢰성을 보장 UDP 보다 속도가 느림 전이중(Ful.. 2022. 2. 7. JavaScript Event Loop 자바스크립트는 단일 스레드 기반으로 비동기를 처리하나요?? 네. 자바스크립트는 단일 스레드 기반의 언어로 한 순간 하나의 작업만을 처리할 수 있습니다. 그리고, 자바스크립트는 비동기로 동작하기 때문에 단일 스레드임에도 불구하고 동시에 많은 작업을 수행합니다. 하지만 자바스크립트 언어 자체가 비동기 동작은 지원하는 것은 아닙니다. 비동기로 동작하는 핵심 요소는 자바스크립트 언어가 아니라 브라우저가 가지고 있습니다. 브라우저는 web APIs, Event Table, Callback Queue, Event Loop 등으로 구성되며 자바스크립트 코드가 실행될 때 브라우저와의 동작은 아래와 같이 표현할 수 있습니다. 구성 요소 Heap : 메모리 할당이 발생하는 곳 Call Stack : 실행된 코드의 환경을 .. 2022. 2. 7. REST API API란? API(Application Programming Interface) API(Application Programming Interface) : 한 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 방법 (식당 메뉴판) 여기서 방법은 그냥 코드이다. 임의로 코드를 짜놓고 메뉴판처럼 API를 유저에게 eundol1113.tistory.com REST란? REST(Representational State Tranfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다. 즉, REST란 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE).. 2022. 2. 5. 동기 vs 비동기 [ 동기(Synchronous) ] 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속입니다. 바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다. → 요청과 결과가 한 자리에서 동시에 일어남 → A 노드와 B 노드 사이의 작업 처리 단위를 동시에 맞춘다. [ 비동기(Asynchrounous) ] 동시에 일어나지 않는다는 뜻입니다. 요청과 결과가 동시에 일어나지 않을꺼라는 약속입니다. 요청한 그 자리에서 결과가 주어지지 않습니다. → 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 됩니다. [ 차이점 ] 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리 하고자 하는 시간의 차이입니다. 동기는 추구하는 같은 행위(목적)가 동시에 일어나며, 비동기는 .. 2022. 2. 5. Promise, Async/Await [ promise란? ] : 비동기 작업의 최종 완료 또는 실패를 나타내는 객체입니다. promise는 함수에 콜백을 전달하는 대신에 콜백을 첨부하는 방식의 객체입니다. 비동기 음성 파일을 생성하는 함수가 있다고 가정했을 때 해당 함수는 음성 설정에 대한 정보를 받고, 두 가지 콜백 함수(함수의 인자로 들어간 함수)를 받습니다. 하나는 음성 파일이 성공적으로 생성되었을 때 실행되는 콜백, 그리고 다른 하나는 에러가 발생 했을 때 실행하는 콜백입니다. function successCallback(result) { console.log("Audio file ready at URL: " + result); } function failureCallback(error) { console.log("Error gen.. 2022. 2. 4. Vue vs React vs Angular React 라이브러리이며 페이스북의 개발자 Jordan Walke가 처음 만들었다. 페이스북에서 지원하며 공동체의 의해 유지보수 된다. Virtual Dom 지원 SSR - Next.js JSX(JavaScritp + XML) React Native (앱 개발까지 가능하게 해준다) 라이브러리이지만 컴포넌트를 사용한다면, 프레임워크처럼 규칙을 지켜야한다. 장점은 Virtual DOM이다. Dom 트리를 추상화하여 자바스크립트 객체로 만들어 두고 변경되는 부분은 virtual dom에서 처리하여 성능을 높혔다. SPA(Single Page Application) 방식으로 진행한다면 검색엔진 노출(SEO : Search Engine Optimization)에 관련된 문제를 생각 했을 때 SSR을 염두해 둘 수.. 2022. 2. 4. Redux [ Redux란? ] 자바스크립트 상태 관리 라이브러리입니다. 리덕스는 가장 사용률이 높은 상태 관리 라이브러리로써 리액트의 복잡한 컴포넌트 구조 속에서 보다 간편하게 모든 컴포넌트들이 state를 쉽게 공유할 수 있게 해주는 방식입니다. 우선 리덕스는 리액트 내부에 있는 기술이 아니며, 순수 HTML, JS 내에서만 사용이 가능하고, 컴포넌트에 집중된 리액트와 시너지가 좋아 대체적으로 리액트에 리덕스를 사용합니다. [ Redux에서 자주 사용되는 키워드 ] 액션 (Action) state 에 어떤 변화가 필요할 때 우린 액션이란 것을 발생시키며 이는 하나의 객체입니다. 단어 그대로 어떤 동작에 대해 선언 되어진 객체인 셈입니다. 액션은 반드시 type 필드를 가지고 있어야 하며, 그 외의 값은 상황에 .. 2022. 2. 4. Array vs LinkedList [ Array(배열) ] 논리적 저장순서와 물리적 저장 순서가 일치한다. 인덱스로 해당 원소에 접근이 가능하다. 인덱스만 알고 있다면 시간 복잡도 O(1)만에 해당 원소로 접근할 수 있다. 즉, Random Access가 가능하다. 배열의 원소를 삭제할 경우 삭제한 원소보다 큰 인덱스를 가진 원소들을 옮겨줘야(Shift) 하기 때문에 시간 복잡도 O(n)이 걸린다. 삽입의 경우, 새로운 원소를 추가하고 모든 원소들의 인덱스를 1씩 Shift 해줘야 하므로 시간 복잡도 O(n)이 걸린다. 제한적인 크기를 갖는다. 즉, 삭제 또는 삽입 과정에서 해당 원소에 접근하여 작업을 완료한 뒤 Shift를 해줘야 하는 cost가 발생해 O(n)의 시간복잡도를 갖는다. [ LinkedList ] 자료의 주소 값으로 노드.. 2022. 2. 4. GET vs POST GET은 가져온다는 개념이고, POST는 수행한다는 개념으로 받아들이면 쉽습니다. 즉, GET은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용합니다. 어떤 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용하는 것입니다. 이에 비해, POST는 서버 상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다. 게시판을 예로 들었을 때 글의 내용에 대한 목록을 보여주는 경우나, 글의 내용을 보는 경우는 GET에 해당합니다. 그리고 글의 내용을 저장하고, 수정할 때에 POST를 사용합니다. [ GET이란? ] GET method는 클라이언트에서 서버로, 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메서드입니다. 좀 더 쉽게 말하면, 데이터를 읽거나(Read), 검색(Retrieve) 할 때에 사용되는 meth.. 2022. 2. 4. 이전 1 2 3 4 다음 728x90