전체 글

FE
알고리즘/자료구조

[Python][JS] 힙(Heap), 우선순위 큐

우선순위 큐 우선순위 큐란? 일반적인 큐(FIFO)와 달리 우선순위가 높은 데이터가 먼저 나가는 자료구조 구현방법 삽입 삭제 배열 O(1) O(N) 링크드리스트 O(1) O(N) 힙 O(logN) O(logN) ⏩️ 우선순위 큐의 삽입, 삭제가 필요할 때는 힙으로 구현하자. 최소 힙 이진트리 구조 모든 부모 노드는 자식 노드보다 값이 작다 최대 힙 이진트리 구조 모든 부모 노드는 자식 노드보다 값이 크다 비겁하지만... 힙이 JS에는 구현이 안되어 있어서 직접 구현해야 한다. 코딩테스트에서 파이썬 사용이 가능하다면 파이썬으로 푸는게 더 유리하다. 파이썬에서는요 import heapq # 힙 배열로 선언 heap = [] # 원소 push heapq.heappush(heap, 1) # 원소 pop cur ..

TIL/네트워크

[240213] HTTP 기초

김영한님의 을 수강하고 요약한 내용입니다. 모든 것이 HTTP HyperText Transfer Protocol → 원래는 HTML을 전송하는 프로토콜이었으나… 이제는 모든 것을 담아서 전송한다. HTML, TEXT 이미지, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/1.1 가장 많이 사용, 우리에게 가장 중요한 버전 RFC7230~ 버전 문서를 참고하자. HTTP/2 성능 개선 HTTP/3 TCP 대신 UDP 사용 성능 개선 HTTP의 특징들 클라이언트 서버 구조 클라이언트 → 서버 request 서버 → 클라이언트 response Stateful, Stateless 상태 유지(Sta..

TIL/디자인시스템

[240213] 스토리북 찍먹해보기

를 듣다가 딴길로 새서… 스토리북 공식문서(7.6) 를 참고했습니다. 예시들은 모두 next.js + typescript + emotion 환경에서 작성했습니다. 스토리북이란? 공식문서 UI 컴포넌트를 독립적으로 개발하고 문서화할 수 있는 환경을 제공하는 도구 UI 컴포넌트에 story를 부여해서 렌더링을 테스트하는 것 여기서 story는 UI 컴포넌트의 상태 디자인시스템 스토리북은 디자인 시스템을 구축하고 유지보수 하는 데 있어 중요한 역할 → 디자인 토큰, 컴포넌트를 문서화 코드를 일일이 수정해보지 않아도 props를 테스트 할 수 있다. 스토리북 설치하기 # npm npx storybook@latest init # yarn yarn berry storybook@latest init Storybook..

TIL/네트워크

[240210] 주소창에 www.google.com을 입력하면 발생하는 일

주소창에 URI를 입력하면 어떤 일이 생길까? 주소창에 URI를 입력하면 다음과 같은 일이 진행된다. 1. 웹 브라우저가 DNS 조회, PORT 번호 인식 DNS(www.google.com)를 조회하여 IP를 알아낸다 http, https는 포트번호 생략 2. 웹 브라우저가 HTTP 요청 메시지 생성 GET / HTTP/1.1 Host: www.google.com 3. HTTP 요청 메시지 전송 앞에서 웹 브라우저가 생성한 HTTP 메시지가, SOCKET 라이브러리를 통해 전달된다. TCP/IP 연결 (IP, PORT를 이용해 구글 서버와 연결한다.) 데이터 전달 TCP/IP 패킷을 생성한다. 생성한 패킷을 인터넷망으로 구글 서버에게 전달 4. 구글 서버가 HTTP 요청 메시지를 받음 5. 구글 서버가 ..

TIL/네트워크

[240209] URI, URL, URN

리다이렉트 URI 카카오 소셜로그인 구현을 하다 보면 redirect uri를 입력해줘야 한다. 프론트에서는 KAKAP API server에 인가 코드를 요청하고, redirect uri로 인가코드를 받는다. 그리고 이 받은 코드를 백으로 전달해서 JWT를 받게 된다. 그런데 URL도 아니고, URI란 무엇일까? URI vs URL vs URN URI → 로케이터(locator), 이름(name) 또는 둘 모두를 사용할 수 있다. URI(Uniform Resource Identifier) Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원. URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 정보 URL(Uniform Resource Locator) L..

TIL/네트워크

[240209] 프로토콜

프로토콜이란? 두 개체 사이의 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구 ⏩️ 개체 사이의 통신 시 교환되는 데이터의 형식을 정의하는 규칙의 집합 *개체: 라우터, 서버, 모뎀 처럼 데이터 통신이 가능한 주체​ 프로토콜의 주요 요소 무엇을, 어떻게, 언제 통신할 것인가를 규정 구문(Syntax) 무엇을 데이터의 형식, 부호화(Unicode, ASCII), 신호크기(0과 1의 전압 세기와, 어떻게 표현할지) 를 정함 의미(Semantics) 어떻게 데이터의 각 항목이 무엇을 뜻하는지를 어떻게 해석할 것인가? 오류 관리를 위한 제어 정보 등 Timing 언제 전송속도, 메시지의 순서를 정함 프로토콜의 종류 계층 프로토콜 이름 Application layer HTTP, HTTPS, FTP, DNS..

알고리즘/문제풀이

[JavaScript][node.js] 백준 1327 소트 게임

문제 https://www.acmicpc.net/problem/1327 1327번: 소트 게임 홍준이는 소트 게임을 하려고 한다. 소트 게임은 1부터 N까지 정수로 이루어진 N자리의 순열을 이용한다. 이 게임에선 K가 주어진다. 어떤 수를 뒤집으면, 그 수부터 오른쪽으로 K개의 수를 뒤집 www.acmicpc.net 풀이과정 💡 아이디어 순회는 언제 끝날까? ✅ 주어진 숫자들을 순서대로 정렬한 answer 를 구한다. ✅ 문제의 조건대로 정렬을 반복하다가 answer와 일치하는 순간 정렬 횟수를 반환 ⏩️ 최소 횟수이므로 BFS가 적합 그렇다면 방문처리는 어떻게 해야 할까? ✅ N의 최댓값이 8이므로 숫자 인덱스로 배열 방문처리를 한다면 visited[88888888] 필요 ✅ 객체를 활용하면 메모리를 ..

알고리즘/문제풀이

[JavaScript][node.js] 프로그래머스 피로도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 S1 - 탐험 가능한 던전의 수를 세는 함수를 따로 만들기 count 함수 function count(arr, start) { let life = start; let count = 0; for(const item of arr) { const [req, minus] = item; if (req 0) { count++; life -= minus; } else { return count;..

햄oOoOo
디자인보다 개발이 더 좋아