목록웹개발 (32)
왓풀(whatpull)

렌더링이란 무엇인가? 리액트에서 렌더링이란, 컴포넌트가 현재 props와 state의 상태에 기초하여 UI를 어떻게 구성할지 컴포넌트에게 요청하는 작업을 의미한다. 렌더링 프로세스 살펴보기 렌더링이 일어나는 동안, 리액트는 컴포넌트의 루트에서 시작하여 아래쪽으로 쭉 훑어 보면서, 업데이트가 필요하다고 플래그가 지정되어 있는 모든 컴포넌트를 찾는다. 만약 플래그가 지정되어 있는 컴포넌트를 만난다면, 클래스 컴포넌트의 경우 classComponentInstance.render()를, 함수형 컴포넌트의 경우 FunctionComponent()를 호출하고, 렌더링된 결과를 저장한다. 컴포넌트의 렌더링 결과물은 일반적으로 JSX 문법으로 구성되어 있으며, 이는 js가 컴파일되고 배포 준비가 되는순간에 React...

가장 큰 값이 버블처럼 위로 올라가는 모양을 하게 되는 알고리즘입니다 Pseudocode i라는 변수를 통해 배열의 마지막 지점에서 시작지점까지 순회하는 반복문을 만듭니다 j라는 변수를 통해 시작점부터 i - 1 까지 순회하는 이중 반복문을 만듭니다 배열의 j번째 요소가 j + 1번째 요소보다 크면, 두 개의 위치를 바꿉니다 (Swap) 만약 Inner Loop 에서 Swap이 발생하지 않는다면, 모두 정렬된 것이므로 반복문을 종료합니다 정렬된 요소를 return 합니다 function bubbleSort(array) { let noSwaps; for (let i = array.length; i > 0; i--) { noSwaps = true; for (let j = 0; j < i - 1; j++) {..

https://hleecaster.com/ml-distance-formula/ 두 점 사이의 거리 공식(Distance Formula) 쉽게 이해하기 - 아무튼 워라밸 본 포스팅에서는 두 점 사이의 거리를 구하는 방법 3가지 소개한다. 유클리드 거리(Euclidean Distance), 맨하탄 거리(Manhattan Distance), 해밍 거리(Hamming Distance). hleecaster.com 1. 유클리드 거리 (Euclidean Distance) ‘유클리디안 거리’라고 영어 단어를 그대로 읽기도 하는데, 아무튼 가장 널리 쓰이는 거리 계산 방법이다. 예를 들어 아래와 같이 2차원에 있는 점 a와 b의 거리를 구한다면 이렇게 나타낼 수 있다. 피타고라스의 정리가 떠오를 거다. 중학교 때 다..

웹 브라우저에서 주소창에 google.com을 입력했을 때 어떤 일이 일어날까? 면접 질문으로 많이 나오는 질문이다. 크게 두 가지 관점으로 나누어 볼 수 있다. 하나는, 네트워크 관점이고 또 하나는 브라우저가 웹 페이지를 그리는 관점이다. 우선 네트워크 관점부터 알아보면 아래 그림과 같은 흐름을 갖는다. 웹 동작 방식 사용자가 주소창에 url을 입력하면 HTTP request message를 생성한다. IP 주소를 알아야 전송할 수 있으므로 DNS를 통해 serverIP주소를 알아낸다. 브라우저는 server IP와 3 way handshake 과정을 갖는다.(TCP 연결을 하기 위한 과정) 이 과정은 TCP/IP 프로토콜을 통신하기 전 정확한 정보 전송을 위해 상태방 컴퓨터와 세션을 연결하는 과정이다..

OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층이라고 한다. 국제 표준화 기구 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ISO는 여기로 연결됩니다. 다른 뜻에 대해서는 ISO (동음이의) 문서를 참고하십시오. 국제 표준화 기구(國際標準化機構, 영어: International Organization for Standardization ko.wikipedia.org 목적 이 모델은 프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '..

프로젝트의 전체적인 라이프사이클을 관리하는 관리도구이다. 프로젝트 객체모델(Project Object Model: POM) 이라는 개념을 바탕으로 프로젝트의 의존성관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능등을 제공하는 프로젝트 관리도구이다. 플러그인을 기반으로 소스코드로부터 배포 가능한 산출물을 만들어내는 빌드 기능을 제공한다. 빌드란? build 소스코드 파일을 컴퓨터에서 실행 할 수 있는 독립 SW가공물로 변환하는 과정, 결과물 이다. 즉, 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등 (.xml, .jpg, .jar, .properties ..)을 JVM이나 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다. 빌드도구 build to..

자바 가상 머신(영어: Java Virtual Machine, JVM)은 자바 바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 jop 자바 프로세서처럼 하드웨어와 소프트웨어를 혼합해 구현하는 경우도 있다. (이론적으로는 100% 하드웨어 구현도 가능하나 비효율적이다) 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다. 자바 프로세서 - 위키백과, 우리 모두의 백과사전 위..

콜백 함수는 다른 함수에 인수로 전달된 함수이며 외부 함수 내부에서 호출되어 일종의 루틴이나 작업을 완료합니다. 다음은 간단한 예입니다. function greeting(name) { alert('Hello ' + name); } function processUserInput(callback) { var name = prompt('Please enter your name.'); callback(name); } processUserInput(greeting); 위의 예는 즉시 실행되는 동기식 콜백입니다. 그러나 콜백은 비동기 작업이 완료된 후 코드 실행을 계속하기 위해 자주 사용됩니다. 이를 비동기 콜백이라고 합니다. 좋은 예는 .then()약속이 이행되거나 거부된 후 약속의 끝에 연결된 블록 내에서 실행..

데이터베이스와 파일시스템에서 B-Tree를 많이 사용합니다. rdb 인덱스 관련해서 정리해보다가 일반적으로 B-Tree , B+-Tree 자료구조를 사용하는것을 알게되었습니다. B-Tree 자료 구조에 대해서 알아보도록 하겠습니다. InnoDB에서 사용된 B+tree 출처: https://blog.jcole.us/2013/01/10/btree-index-structures-in-innodb/ B+Tree index structures in InnoDB [This post refers to innodb_ruby version 0.8.8 as of February 3, 2014.] In On learning InnoDB: A journey to the core, I introduced the innodb_d..

해시 테이블 Hash table(hash map)이란 해시함수를 사용해서 변환한 값을 index로 삼아 key와 value를 저장하는 자료구조를 말한다. 다시 말해 해시 테이블은 어떤 특정 값을 받아서 해시 함수에 입력하고, 함수의 출력값을 인덱스로 삼아 데이터를 저장한다. 파이썬의 dictionary, 루비의 Hash, 자바의 Map이 해시 테이블의 대표적인 예다. 해시 테이블의 특징을 나열해보자. 기본 연산으로는 search, insert, delete가 있다. 순차적으로 데이터를 저장하지 않는다. key를 통해서 value를 얻을 수 있다. => 이진탐색트리나 배열에 비해서 속도가 획기적으로 빠름 커다란 데이터를 해시해서 짧은 길이로 축약할 수 있기 때문에 데이터를 비교할 때 효율적이다. value..