전체 글 527

위장

문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 입출력 예 clothes return [["yellowhat", "headgear"], ["bluesunglasses", "eyewear"], ["green_turban", "headgear"]] ..

코테/해시 2021.11.14

완주하지 못한 선수

문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participantcompletionreturn ["leo", "kiki"..

코테/해시 2021.11.14

Front-End

브라우저의 동작 원리 HTML 마크업을 처리하고 DOM 트리를 빌드한다. ("무엇을" 그릴지 결정한다.) CSS 마크업을 처리하고 CSSOM 트리를 빌드한다. ("어떻게" 그릴지 결정한다.) DOM 및 CSSOM 을 결합하여 렌더링 트리를 형성한다. ("화면에 그려질 것만" 결정) 렌더링 트리에서 레이아웃을 실행하여 각 노드의 기하학적 형태를 계산한다. ("Box-Model" 을 생성한다.) 개별 노드를 화면에 페인트한다.(or 래스터화) Document Object Model 웹에서는 수많은 이벤트(Event)가 발생하고 흐른다. 브라우저(user agent)로부터 발생하는 이벤트 사용자의 행동(interaction)에 의해 발생하는 이벤트 DOM의 ‘변화’로 인해 발생하는 이벤트 브라우저의 Event..

네트워크

HTTP의 GET과 POST 비교 둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다. GET 우선 GET 방식은 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송된다. 이러한 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다. 또 보안이 필요한 데이터에 대해서는 데이터가 그대로 url 에 노출되므로 GET방식은 적절하지 않다. POST POST 방식의 request 는 HTTP Request Message의 Body 부분에 데이터가 담겨서 전송된다. 바이너리 데이터를 요청하는 경우 POST 방식으로 보내..

JavaScript

JavaScript Event Loop JavaScript 이벤트 루프에 대해서 [JS] JavaScript의 Event Loop [JS] Javascript 작동 원리에 대해서, Event Loop Javscript를 공부하다 보면 이런 말을 종종 듣는다. 싱글스레드 기반으로 동작하는 자바스크립트 이벤트 루프를 기반으로 하는 싱글 스레드 Node.js 이런 asfirstalways.tistory.com Hoisting 정의 호이스트란 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는 것을 의미한다. 즉, 변수가 함수 내에서 정의되었을 경우, 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우, 전역 컨텍스트의 최상위로 변경이 된다. Closure Closure(클로저)는 두 개의 함수로 만들어..

SQL 내장함수

SQL 내장함수 집합연산: 레코드를 조회하고 분류한 뒤, 특정 작업을 하는 연산 GROUP BY 데이터를 조회할 때 그룹으로 묶어서 조회합니다. 다음과 같은 쿼리가 있다고 가정하겠습니다. SELECT * FROM customers; [커맨드] customers 테이블의 모든 레코드를 조회 이 쿼리를 주(state)에 따라 그룹으로 묶어 표현할 수 있습니다. SELECT * FROM customers GROUP BY State; [커맨드] customers 테이블의 모든 레코드를 State에 따라 그룹화 GROUP BY 쿼리로 간단하게 State에 따라 그룹화할 수 있습니다. 쿼리의 결과를 확인하면, 데이터가 중간에 비어있는 것을 확인할 수 있습니다. 데이터베이스에서 데이터를 불러오는 과정에서 State에..

백엔드/SQL 2021.11.12

관계형 데이터베이스

구조화된 데이터는 하나의 테이블로 표현할 수 있습니다. 사전에 정의된 테이블을 relation 이라고도 부르기 때문에, 테이블을 사용하는 데이터베이스를 관계형 데이터베이스(Relational database)라고 합니다. 다음은 관계형 데이터베이스를 학습하면서, 반드시 알고 있어야 하는 키워드입니다. 데이터(data): 각 항목에 저장되는 값입니다. 테이블(table; 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적됩니다. 칼럼(column; 또는 field) : 테이블의 한 열을 가리킵니다. 레코드(record; 또는 tuple) : 테이블의 한 행에 저장된 데이터입니다. 키(key) : 테이블의 각 레코드를 구분할 수 있는 값입니다. 각 레코드마다 고유한 값..

SQL vs. NoSQL

SQL(구조화 쿼리 언어) vs. NoSQL(비구조화 쿼리 언어) 데이터베이스는 크게 관계형 데이터베이스와 비관계형 데이터베이스로 구분합니다. 관계형 데이터베이스는 SQL을 기반으로 하고, 비관계형 데이터베이스는 NoSQL로 데이터를 다룹니다. SQL과 NoSQL은 만들어진 방식, 저장하는 정보의 종류, 그리고 저장하는 방법 등에 차이가 있습니다. 관계형 데이터베이스에서는 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입할 수 있습니다. 관계형 데이터베이스는 행(row)과 열(column)로 구성된 테이블에 데이터를 저장합니다. 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에 맞는 데이터가 저장됩니다. 특정한 형식을 지키기..