Computer Science [비전공자를 위한](7)
-
Data structure 비교하기
Array vs Linked List Array를 먼저 살표보면 index를 통해 직접적으로 접근할 수 있으면서 Random Access를 지원합니다. // 시간 복잡도는 O(1) 삽입과 삭제 연산은 memory 위치가 연속적이고 고정적이기 때문에 많은 시간을 소모합니다 // Static Memory Allocation 사이즈는 Array 선언 때 정해집니다. LinkedList에서는 새로운 요소가 node에 저장되고, 할당된 memory 주소는 linked list의 이전 node에 저장되어집니다. 찾고자 하는 값에 도달할 때까지 순차적으로 검색하면서 찾아야 합니다. // 시간 복잡도는 O(n) 새로운 요소는 첫 번째 사용 가능한 빈 Memory 위치에 저장되며, 이전 Node에 Memory 위치의 주..
2021.01.18 -
ES6 문법의 특징
변수 선언 let과 const로 선언을 할 시 block으로 scope가 형성되며, 선언된 변수는 선언된 block을 벗어나면 접근하기 어렵다. 특히 const 같은 경우 변수의 재할당이 불가능하다. 화살표 함수 //화살표 함수 선언 const 화살표함수 = (인자) => { ~여기다 내용, 중괄호 없애면 return 도 생략가능} //생략하면 const 화살표함수 = 인자 => 함수내용 This ES5에서는 함수 실행시에는 전역(window) 객체를 가리키고, 메소드 실행시에는 메소드를 소유하고 있는 객체를 가리킨다. 하지만 ES6에서는 자신을 둘러싼 환경을 가르키는 내용이 추가된다. const Test = { beef : '소고기', chicken : '닭고기' , info() { console.lo..
2021.01.06 -
V8 엔진이란?
V8 이란? 구글에서 만든 오픈 소스 자바스크립트 엔진으로 크롬 브라우저와 Node.JS에 사용된다. C++로 만들어져 있으며 인터프린터 없이 자바스크립트 코드를 머신코드로 바꿔서 속도가 빠르다. 2017년, V8은 완전히 새로운 컴파일러 파이프라인을 도입했으며, 이그니션(인터프리터)과 터보팬(최적화 컴파일러)으로 구성된다. V8 버전 5.9를 기점으로, 풀-코드젠과 크랭크섀프트는 더 이상 자바스크립트 실행을 위해 V8에 사용되지 않는데, 그 이유는 팀이 더 이상 새로운 자바스크립트 언어 기능, 또 그 기능에 필요한 최적화를 계속 관리할 수 없다고 생각했기 때문이다.
2021.01.06 -
웹 서비스와 관련 프로토콜
웹 서비스 웹 서비스란, 클라이언트의 컴퓨터 내부 메모리가 아닌 네트워크 상에서 서로 다른 컴퓨터간의 상호작용을 위한 소프트웨어 시스템을 뜻 한다. 분산 시스템이러한 컴퓨터간의 상호작용을 위한 프로토콜&스택으로 HTTP(S), SOAP, SMTP, WSDL UDDI, XML, SSL등이 있다. 추가로 웹의 작동원리는 다음과 같다. HTTP(Hyper-Text Transfer Protocol) http란, HTML파일, 이미지, 동영상, 텍스트 등 다양한 데이터를 전송할 수 있도록 만든 프로토콜이다. stateless, connectionless로 각 프로토콜 요청간의 비연결성, 무상태성이 특징이다. 더 자세한 내용은 HTTP 글에서 다루도록 하겠다. SOAP(Simple Object Access Prot..
2021.01.05 -
Web Basic
브라우저 브라우저는의 주된 기능은 사용자가 선택한 자원을 서버에 요청하고 표시하는 것이다. 보통 자원의 형식은 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있습니다. 자원의 주소는 Uniform Resource Identifier, URI에 의해 정해집니다. 브라우저의 기본 구성은 다음과 같습니다. 사용자 인터페이스 - 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등. 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분이다. 브라우저 엔진 - 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어. 렌더링 엔진 - 요청한 콘텐츠를 표시. 예를 들어 HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시함. 통신 - HTTP 요청과 같은 네트워크 호출에 사용됨. 이것은 플랫폼 독립적인 인터..
2020.09.23 -
백트레킹, DFS / BFS
DFS란? DFS( Depth First Search)깊이 우선 탐색은 경로를 한 번 정하면, 그 경로를 통해서 끝까지 간 다음에 다시 시작 점으로 돌아와서 탐색을 하기 때문에 깊이 존재하는 데이터를 찾는데는 효과적입니다. 스택과 재귀함수로 구현을 할 수 있으며,
2020.09.15