분류 전체보기

    Next.js + node.js로 간단한 Web Scoket 채팅 구현하기 - 1

    개요그동안 여러 프로젝트를 진행해오면서SSE(Server Sent Event), CRUD API 연동은 진행해봤지만,Web Socket을 다뤄본적은 없었다. Web Socket 대신 SSE를 사용했던 이유는 알림 기능을 구현하기 위해서였다.물론 Web Socket을 사용해도 되지만,클라이언트는 단순히 알림조회를 하므로 양방향 소통이 필요하지 않았다.그래서 단방향인 SSE를 다뤘었다. 그래서 Web Socket을 한번쯤은 다뤄보고 싶었는데,언젠간 분명히 사용할 것 같아서 그냥 간단한 채팅을 구현하면서 트러블 슈팅을 해보려한다. Server평소에 프론트엔드를 주로 공부하고, 프로젝트도 모두 프론트엔드로 참여를 했다.그리고 프론트엔드 직무로 프론트엔드를 준비중이기도 하다. 따라서 서버를 다룬 경험은 거의 없어..

    백준 / 4195번 / 친구 네트워크 / JS

    https://www.acmicpc.net/problem/4195 풀이const fs = require('fs');const filePath = process.platform === 'linux' ? 0 : './input.txt';const input = fs.readFileSync(filePath).toString().trim().split('\n');const T = +input.shift();function* idGenerator() { let id = 0; while (true) { yield id++; }}class UnionFind { constructor() { this.parent = []; this.count = []; this.nameMap = new Ma..

    2025 FEConf 후기

    2025년 FEConf에 참가한 개인적인 후기입니다.간단히 어떤 내용들이 있었고, 개인적인 느낌을 적다보니 사진과 조금의 발표자료가 포함되어 있습니다.초상권, 발표내용을 업로드하는데 문제가 있을 경우,댓글 남겨주시면 삭제하겠습니다.늦었지만, FEConf 후기를 올려보려고 한다.그동안 규모가 작은 밋업이나 컨퍼런스는 가봤지만, 이런 대규모 컨퍼런스는 처음이라 신기하기도 했다.프론트엔드 개발을 주로 하는 사람으로써, 프론트엔드만을 주제로 한 컨퍼런스라 기대되기도 했다. 세션이 진행되는 홀도 좁지 않았는데,늦지 않았음에도 빨리 안가면 앉을 자리도 없을 정도였다.다만 의자에 음료나 본인 짐을 두고 자리를 오래 비우는 사람들이 많았는데,음료는 가지고 들어갈 수 없었고, 짐을 두고 자리를 오래 비우지 말라는 스태프..

    백준 / 16935번 / 배열 돌리기 3

    풀이const fs = require('fs');const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';// const filePath = process.platform === 'linux' ? '/dev/stdin' : 'BOJ/input.txt';const input = fs.readFileSync(filePath).toString().trim().split('\n');const [N, M, R] = input.shift().split(' ').map(Number);const opList = input.pop().split(' ').map(Number);let arr = input.map((row) => row.spli..

    백준 / 3190번 / 뱀 / JS

    풀이const fs = require('fs');const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';// const filePath = process.platform === 'linux' ? '/dev/stdin' : 'BOJ/input.txt';const input = fs.readFileSync(filePath).toString().trim().split('\n');let N, K, L;const snakeDirInfo = [];let snakeDirInfoIndex = 0;const APPLE = 1;const EMPTY = 0;const SNAKE = -1;let board;// 상, 우, 하, 좌const dr..

    Programmers / Level 3 / 단속카메라 / JS

    https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제분석이 문제는 전형적인 구간 스케줄링 문제이다.여러 구간이 주어졌을 때, 모든 구간을 커버하는 최소한의 점을 찾는 것과 같다. 직관적인 접근법차량들의 경로를 구간으로 생각한다.겹치는 구간들은 하나의 카메라로 처리가 가능하다.겹치지 않는 구간들은 각각 별도의 카메라가 필요하다. 풀이핵심 아이디어: 진출 기점을 기준으로 정렬한 후, greedy하게 카메라 위치를 선택한다.function solution(routes) { routes.sort((a, b..