분류 전체보기

유튜브에 공개된 네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2024(5월)에서 발표되었던 세션을 보고 타입스크립트의 타입 시스템에 대한 이해가 깊어졌습니다. 해당 발표 영상을 보고 추후 다시 찾아볼 수 있도록 정리한 내용입니다. 본문에는 제 나름 대로의 해석이 추가되어 오해의 여지가 있을 수 있습니다.발표 영상: infer, never만 보면 두려워지는 당신을 위한 고급 TypeScript 타입이론과 TypeScript러셀의 역설(Russell's Paradox)의 발견으로 수학의 근간인 집합론이 흔들리며 함수에 대한 고찰도 이루어졌다.기존 집합 사이의 관계로만 생각했던 함수에 대한 고찰을 시작은 람다 대수(Lambda Calculus)의 고안을 이끌었고 이를 고도화하던 중 타..
시리즈에 대한 설명과 관련 글은 이 글에서 모아보실 수 있습니다. Step 0: Review이 글에서는 React.js(이하 React)의 내부 동작을 살펴보기 앞서 기본 개념에 대해 다룹니다.  React, JSX, DOM 요소가 기본적으로 어떻게 상호작용하며 동작하는지 알고 있다면 건너뛰어도 좋습니다.const element = Hello;const container = document.getElementById("root");ReactDOM.render(element, container);위 세 줄의 코드로 작성된 React 앱으로 React, JSX, DOM에 대해 가볍게 살펴봅시다. 첫 번째 줄은 React 요소(element)를 정의하고 두 번째 줄은 DOM으로부터 컨테이너로 사용할 노드(no..
Build your own React 시리즈는 React.js를 직접 구현하며 내부 구조와 동작 방식을 이해하는 과정을 정리한 글 모음입니다.Rodrigo Pombo(Pomber)님의 Build your own React글을 따라가며 내용을 해석, 추가하여 정리했습니다. step 0: Reviewstep I: The `createElement` FunctionStep II: The `render` FunctionStep III: Concurrent ModeStep IV: FibersStep V: Render and Commit PhasesStep VI: ReconciliationStep VII: Function ComponentsStep VIII: Hooks
올해도 토스 개발자 컨퍼런스 slash24가 돌아왔습니다. 작년 slash23의 server-driven UI로 마지막 어드민만들기를 아주 감명깊게 봤던 기억이 있어 바로 응모했습니다. 올해에는 직접 볼 수 있기를ㅠ
문제Products of Array Discluding SelfGiven an integer array nums, return an array output where `output[i]` is the product of all the elements of nums except `nums[i]`.Each product is guaranteed to fit in a 32-bit integer.Follow-up: Could you solve it in 𝑂(𝑛) time without using the division operation?Example 1:Input: nums = [1,2,4,6]Output: [48,24,12,8]Example 2:Input: nums = [-1,0,1,2,3]Output: ..
분류: 문자열 / 문제271. String Encode and DecodeDesign an algorithm to encode a list of strings to a single string. The encoded string is then decoded back to the original list of strings.Please implement encode and decode Example 1:Input: ["neet","code","love","you"]Output: ["neet","code","love","you"]Example 2:Input: ["we","say",":","yes"]Output: ["we","say",":","yes"]Constraints:`0 `0 `strs[i]` cont..
분류: DP, DFS / 문제 문제 링크 문제 설명 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가 벽을 긁으면 안 된다. 즉, 파이프는 항상 빈 칸만 차..
소프티어 부트캠프를 수료하고 한 달이라는 시간이 지났습니다. 조금이라도 기억이 생생할 때 부트캠프 회고를 마저 해보려 합니다. 소프티어 부트캠프 BE 직무는 크게 3가지 프로젝트로 진행됐습니다. 이 글에서는 BE WAS 프로젝트를 다룹니다. 워밍업 프로젝트(2주, 기획 + 디자인 + FE/Android + BE) BE WAS 프로젝트(2주, BE) 최종 프로젝트(4주, BE + FE/Android) WAS 프로젝트 BE WAS 프로젝트는 plain Java로 WAS를 구현하는 프로젝트입니다. 워밍업 프로젝트 회고에서 말씀 드렸듯 저는 Java로 알고리즘 문제만 풀어봤지 Spring 프레임워크를 사용해 본적도, 어떤 프로그램을 제작해 본 경험도 없습니다. 따라서 BE WAS를 진행하며 Spring 프레임워..
분류: 시뮬레이션, 완전 탐색 / 문제 문제 링크 문제 설명 혹시 마지막으로 엠티를 간 것이 언제인가? 엠티를 안간지 꽤 오래됐다면 요즘 유행하는 인싸들의 가위바위보를 모를 것이다. 요즘 인싸들은 엠티에서 평범한 가위바위보를 시시하다는 이유로 더 이상 취급하지 않는다. 대신 가위불바위총번개악마용물공기보스펀지늑대나무사람뱀을 한다. 이 게임의 명칭이 다소 긴 관계로 문제 내에서는 전체 명칭을 적는 대신 이 게임의 또 다른 이름인 인싸 가위바위보로 부르겠다. 인싸 가위바위보는 평범한 가위바위보와 같이 각 손동작간의 상성이 정해져있다. 인싸 가위바위보는 평범한 가위바위보보다 흥미진진하고 재밌지만 3명 이상이 경기를 할 때 누가 이기고 누가 졌는지를 빠르게 알기 힘들다는 단점이 있다. 그렇기에 3명 이상의 사람들..
분류: 백트래킹 / 문제 문제 링크 문제 설명 서양 장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다. 정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 ..
분류: MST, 크루스칼 알고리즘 문제 문제 링크 문제 설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 ..
구글이 리눅스 커널 패치를 통해 TCP 통신성능을 40%까지 향상할 수 있었다는 것을 알게 됐습니다. 어떻게 했길래 40%라는 수치가 나오는지 궁금해서 알아보았고 아주 단순하고 그냥 지나칠 수 있는 기본 지식을 실제로 적용하는 것이 성능에 크게 영향을 미칠 수 있다는 사실이 놀라워 글로 작성해 봅니다. 원본 아티클: Linux 6.8 Network Optimizations Can Boost TCP Performance For Many Concurrent Connections By ~ 40% 유튜브 영상: Google Patches Linux kernel with 40% TCP performance - Hussein Nasser 구글은 어떻게 성능을 향상했는가? 구글은 리눅스 커널의 TCP 성능을 향..
thecloer
'분류 전체보기' 카테고리의 글 목록