본문 바로가기

반응형

분류 전체보기

(117)
[TIL] 24.07.17 쓰로틀링(성능 측정) Throttling 이란? 📖짧은 시간 간격으로 연속해서 이벤트가 발생했을 때, 과도한 이벤트 핸들러 호출을 방지하는 기법입니다.   1. 쓰로틀링 (throttling)일정 주 동안 이벤트 핸들러를 한 번만 실행하도록 제어하는 것 일정한 간격으로 한 번만 실행하는 기법이기 때문에 이벤트 처리를 제어하고, 성능 향상을 할 수 있습니다.예를 들면 스크롤 이벤트가 발생할 때 이벤트가 너무 많이 발생하면 성능 저하 문제가 생길 수 있기 때문에 이때 쓰로틀링을 적용하면 일정 주기 동안 이벤트를 제어하기 때문에 성능을 개선할 수 있습니다. 그래서 팀 소개 프로젝트에 쓰로틀링을 적용해보려고 합니다. 사용 방법실제로 작성한 코드 입니다.const throttleCallback = () => { const scro..
[TIL] 24.07.16 코딩 컨벤션이란? 오늘 공부한 것 📖 1. 코딩 컨벤션코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약(하나의 작성 표준)입니다.   대표적인 네이밍 컨벤션 소개 스네이크 케이스 (snake_case)더보기- 모든 철자를 소문자로 쓰고 단어 사이에 언더스코어(_)를 표기하는 방식입니다.ex) user_id,  create_at 등등 카멜 케이스 (camelCase)더보기- 맨 앞 단어의 첫 철자를 소문자로 시작하되, 그 다음 이어지는 단어의 첫 철자를 대문자로 표기하기 방식입니다.- 자바, 자바스크립트, 타입스크립트 등에서 많이 쓰이며, 변수 메서드 함수 이름 등에 많이 사용 됩니다!ex) userId, createAt 등등  케밥 케이스 (kebab-case)더보기- 모든 철자를 소문자..
[TIL] 24.07.15 오늘 배운 것 📖1. 팀 소개 페이지 디자인1. 팀 소개 페이지 제작 과제 (7/19일까지) - 주제 선택 (심플한 게 최고!!) - 추가하고 싶은 기능 선택 (이미지 슬라이드, 댓글, 이모지 등등) - 역할 분담 - 와이어프레임 작성2. 맡은 역할 - 이미지 슬라이드 - 와이어프레임 제작 (Figma) 어려웠던 점 ❓1. 역할 분담지금까진 혼자서만 개발을 하다보니까 팀 단위로 프로젝트를 진행할 때 역할을 나누는 데 있어서 고민이 정말 많았다.한 페이지를 만드는 데 있어서 어디서부터 어디까지 나눠야 할 지도 고민이 정말 많이 됐다.그래서 서로 가장 잘 할 수 있는 부분들을 먼저 확인 후 역할을 조금씩 나누고 있는 중이다.아직 정확히 다 나누진 못했다,,,ㅜㅜㅜㅜ2. 와이어프레임 디자인피그마를 이용해 와..
[TIL] 24.07.09 백준 10844번 js 내가 푼 문제 📖 내가 작성한 코드 💻let input = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt") .toString() .trim()let number = +inputlet mod = 1000000000const memo = Array.from({length: 10}, () => 1 )memo[0] = 0for(let i=1; i (a + c) % mod, 0)); 어려웠던 점 ❓1. 점화식 이후 코드 작성까지 연결이 잘 안 된 것memo[n] = memo[n-1]+1, memo[n-1]-1 처음에 세운 점화식이다!! 그러나,, 이후 코딩까지 생각해내지는 못했다..
[TIL] 24.07.08 내가 푼 문제 📖내가 작성한 코드 💻let [buy, ...input] = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt") .toString() .trim() .split('\n')const N = +buyconst cardPacks = input[0].split(' ').map(Number)const memo = Array.from({length: N + 1}, () => 0)for(let i=1; i 어려웠던 점 ❓1. 최댓값 비교하기for(let i=1; i 최댓값 비교하는 부분이 생각해 내기가 정말로 어려웠다. 1시간을 넘게 고민해 봤지만 해결방법이 떠오르질 않..
동적계획법(Dynamic Programming) DP란?다이나믹 프로그래밍(DP)은 하나의 큰 문제를 여러 개의 작은 문제로 나누고, 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 알고리즘 기법입니다. DP는 주로 최적화 문제에 사용되며, 문제를 해결하기 위한 계산량을 줄이는데 매우 유용합니다.  DP를 사용하는 이유?일반적인 재귀(Native Recursion) 방식 또한 DP와 유사합니다. 그러나 큰 차이점은 재귀를 사용 시 동일한 작은 문제들이 여러 번 반복되어 비효율적입니다. ex) 피보나치 수열피보나치수열은 각 항이 그 앞에 두 항의 합인 수열입니다. 예를 들어, 피보나치수열의 첫 10개 항은 0, 1, 1, 2, 3, 5, 8, 13...  피보나치 수를 구할 때 재귀로 구성하게 되면 f(n) = f(n-1) + f(n-2)가 됩니..
[TIL] 24.06.17 백준 1373번 js 내가 푼 문제 📖 내가 작성한 코드 💻let input = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt") .toString() .trim() .split('')let results = ''while(input.length){ let ocl = input.splice(-3).join('') if(ocl.length !== 3) ocl = ocl.padStart(3, '0') results += parseInt(ocl, 2).toString(8)}console.log(results.split('').reverse().join('')) 어려웠던 점 ❓1. 기존 변환 ..
[TIL] 24.06.12 백준 1676번 js 내가 푼 문제 📖 내가 작성한 코드 💻const input = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : __dirname+"/input.txt") .toString() .trim()let cnt = 0;for(let i=1; i 어려웠던 점 ❓1. 팩토리얼 범위const factorial = (n) => { if(n == 0) return 0; if(n == 1) return 1; return n * factorial(n-1)} 팩토리얼로 값을 구하고 뒤에서부터 0의 개수를 세는 방법을 생각하고 계산을 했었는데 주어진 N값의 범위가 (0~500) 22 팩토리얼만 돼도 값이 (1.124000727777..