PLEASE WAIT 0%
forEach와 Promise.all
ForEach의 동작먼저 예시 프로그램을 하나 보겠습니다.function test() { const testFunction = num => new Promise((resolve) => setTimeout(() => resolve(`${num}`), num)); const list = [3000, 2000, 3000, 4000, 1000, 1000, 2000, 3000, 1000, 1000]; list.forEach( val => { const result = testFunction(val); result.then(cosole.log); })}test(); list 에는 순서대로 timeout의 값들이 들어가 있고, forEach를 통해 순회하면서 testFunction을 실행하여 해..
more
깃(Git) 개념과 상황별 팁
기본 개념과 명령어초기화깃을 올바로 사용하려면 깃이 파일의 변경 내용을 추적하는 방식을 이해하는 것이 무척 중요하다. 그렇지 않고 백업 용도로만 깃을 사용하면 장님이 코끼리 만지는 것처럼 딱 그만큼만 알게 되기 때문이다. 깃은 폴더의 어떤 파일이라도 모두 트래킹 할 수 있다. 원하는 폴더로 이동해 깃 초기화 커맨드부터 시작한다.$ git init .git 이라는 이름의 숨김 폴더가 하나 생긴다. 이것을 저장소라고 하는데 깃은 이 폴더의 모든 변경 내용을 여기에 저장한다. 이 파일을 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없다. 스테이징깃이 파일의 변경 내역을 저장하는데 곧바로 저장하는 것이 아니라 스테이징이라는 단계를 거친다. 스테이징은 변경사항 중에서 저장하고 싶은 부분만 선택해 임시로 ..
more
Web Components : Custom Elements
기본 설명Custom Elements는 사용자 HTML Element를 만들게 해준다. 그리고 이는 DOM의 모든 기능을 다 사용할 수 있다.기본적으로 두 가지 타입으로 생성한다.표준 HTML 요소를 상속하지 않은 Elements. 요소는 상속하지 않지만 HTML Element는 상속 한다.표준 HTML 요소를 상속한 Element.이렇게 생성한 Element는 Lifecycle callback을 class 안에 정의하여 특정 시점에 동작 하도록 한다. 기본 사용법독립적인 사용자 정의 요소class MyComponent extends HTMLElement { constructor() { // 항상 super를 호출 해야 한다. super(); this.innerHTML = `T..
more
svg see: SVG 파일 미리보기 extention
svg 미리 보기 활성화 하는 방법파일을 직접 열지 않아도 미리 볼 수 있기 때문에, 작업 속도가 빨라집니다. 특히 여러 SVG 파일을 다루는 경우 시간 절약 효과가 더욱 뛰어납니다. 확장 프로그램 설치 하기https://github.com/tibold/svg-explorer-extension/releasesSVG SEE 프로그래 설치 사이트로 이동해서 컴퓨터 사양에 맞는 버전을 다운로드 합니다.(32bit -> x86, 64bit -> x64) https://mu08.tistory.com/198 [윈도우 팁]SVG 파일, 이제 미리보기로 확인해보자(svg see)안녕하세요 무택입니다 :) 오늘은 아주 간단하게 SVG 미리 보기 활성화하는 방법에 대해 포스팅해 보도록 하겠습니다! 웹 디자인 작업 ..
more
맥북 (Mac OS) M2 톰캣 설치하기
1. 톰캣 설치아파치 톰캣 사이트에 접속합니다.https://tomcat.apache.org/ 페이지 왼쪽의 `Download` 카테고리에서 다운로드 할 톰캣 버전을 클릭합니다.내게 맞는 톰캣 버전을 찾는 방법 참고: https://itworldyo.tistory.com/88 `Binary Distributions` 항목에서 `tar.gz` 파일을 클릭 해 다운로드 합니다. 저장 경로를 설정하고 `저장` 버튼을 클릭합니다.다운로드가 시작됩니다. 설치 된 `tar.gz` 파일을 더블 클릭하여 압축을 해제 합니다. 2. 톰캣 실행 `Finder`에서 톰캣이 설치된 경로로 접속합니다.키보드에서 `command` + `option` + `c` 를 동시에 눌러 경로를 복사합니다. 터미널을 실행합니다...
more
Javascript
-
forEach와 Promise.all
ForEach의 동작먼저 예시 프로그램을 하나 보겠습니다.function test() { const testFunction = num => new Promise((resolve) => setTimeout(() => resolve(`${num}`), num)); const list = [3000, 2000, 3000, 4000, 1000, 1000, 2000, 3000, 1000, 1000]; list.forEach( val => { const result = testFunction(val); result.then(cosole.log); })}test(); list 에는 순서대로 timeout의 값들이 들어가 있고, forEach를 통해 순회하면서 testFunction을 실행하여 해..
2025.02.05 22:02
-
javascript scroll event 제어
스크롤 기능을 막아야 하는 상황에서 대부분은 body 에 `overflow-y: hidden` 을 주는 방법이 제시되지만, 그렇지 않은 경우 자바스크립트로 이를 처리해야 한다. javascript로 `scroll`, `mousewheel`, `touchmove` 등의 이벤트를 걸어 `e.preventDefulat()`로 이벤트를 막아볼 수 있겠지만, `mousewheel` 이벤트와 같이 스크롤과 관련 된 이벤트는 기본적으로 `passive`로 처리되어 있어 추가 옵션을 설정 할 수 없다. 아래와 같은 오류 발생[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. ..
2024.07.03 09:31
-
history API로 SPA 구현
history API브라우저는 페이지 로딩 시 세션 히스토리를 갖는다.세션 히스토리는 페이지를 이동할 때마다 쌓이며, 이를 통해 뒤로가기 시 이전 페이지로 가거나 뒤로 간 이후 다시 앞으로 가는 등의 이동이 가능하다.사용자가 페이지를 새로고침 하거나 뒤로가기/앞으로가기 버튼을 클릭하지 않아도, 웹 애플리케이션 내에서 프로그래밍 방식으로 페이지를 이동할 수 있다.`history.back()`: 브라우저의 '뒤로' 버튼과 같은 역할. 세션 기록에서 한 단계 이전 페이지로 이동`history.forward()`: 브라우저의 '앞으로' 버튼과 같은 역할. 세션 기록에서 한 단계 다음 페이지로 이동`history.go(n)`: 현재 위치에서 상대적으로 n페이지 만큼 앞이나 뒤로 이동. n이 음수일 경우 n 페이지..
2024.06.24 19:40
-
Debounce & Throttle
Debounce & Throttle이벤트 오버클럭(overclock - 과도한 이벤트 발생)은 리소스 사용량을 증가시키기 때문에 성능문제를 야기하고 사용자 경험을 떨어트립니다.과도한 이벤트나 함수들의 빈도수를 줄여서 성능을 향상시키는 프로그래밍 기법 중, 자주 언급되는 두 가지를 알아봅니다. Debounce와 Throttle은 둘 다 함수의 연속적인 실행을 제한하는 목적을 가지고 설계되었습니다.그 중 `Debounce`는 특정 기간 동안 함수의 실행을 모두 취소하고, 마지막 실행만 수행합니다.반대로 `Throttle`은 함수 실행 후 특정 기간 동안 추가적인 함수의 재실행을 모두 취소합니다.이 둘은 매우 비슷해 보이지만 서로 다른 특성을 갖고 있는, 정해진 시간 동안 얼마나 많은 함수의 실행을 허가할 것..
2024.05.23 15:09
Publishing
-
Web Components : Custom Elements
기본 설명Custom Elements는 사용자 HTML Element를 만들게 해준다. 그리고 이는 DOM의 모든 기능을 다 사용할 수 있다.기본적으로 두 가지 타입으로 생성한다.표준 HTML 요소를 상속하지 않은 Elements. 요소는 상속하지 않지만 HTML Element는 상속 한다.표준 HTML 요소를 상속한 Element.이렇게 생성한 Element는 Lifecycle callback을 class 안에 정의하여 특정 시점에 동작 하도록 한다. 기본 사용법독립적인 사용자 정의 요소class MyComponent extends HTMLElement { constructor() { // 항상 super를 호출 해야 한다. super(); this.innerHTML = `T..
-
디자인 시스템 만들기: breakpoint
들어가며디자인을 할 때 여러 해상도를 대응해야 하는 것은 필수적이다.특히나 요즘에는 너무나도 다양한 기기들이 나오다 보니 하나의 서비스를 만들 때 모바일 앱이 아닌 이상 데스크탑, 태블릿, 모바일 그리고 이 디바이스에서도 다양한 해상도를 대응해야 한다. (갤럭시 플립, 폴더···)그래서 디자인 시스템 Foundation 영역에 들어갈 브레이크 포인트를 설정하는 데 있어서도 많은 고민과 리서치가 필요하다. 1. 글로벌 기업의 디자인 시스템 리서치Google의 Meterial 디자인 시스템, MUI 디자인 시스템 그리고 기타 브랜드의 디자인 시스템을 찾아 공통적인 영역을 도출 Google Meterial Design SystemBreakpoint Range(dp)PortraitLandscapeWindowC..
-
프론트엔드 성능 최적화
브라우저 동작 원리브라우저 로딩 과정: 파싱 > 스타일 > 레이아웃(리플로우) > 페인트 > 합성 & 렌더 프론트엔드의 성능 최적화를 확인하기에 앞서 브라우저가 어떻게 화면을 사용자에게 보여주는지를 알아야 한다.https://velog.io/@kmlee95/%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%9D%98-%EB%8F%99%EC%9E%91%EA%B3%BC%EC%A0%95%EB%B6%80%ED%84%B0-React 프론트엔드 성능 최적화프론트 엔드 성능 최적화에는 `웹 페이지 로드 최적화`, `웹 페이지 렌더링 최적화`가 있다. 1. 웹 페이지 로드 최적화(1) 브라우저 상에서 최적화`DOMContentLoaded': html, css 파싱이 끝난 시점`Loaded`: h..
-
브라우저가 css 셀렉터를 해석하는 방법과 성능 향상 방법
브라우저가 css 셀렉터를 해석하는 방법브라우저가 css 선택자를 해석하는 방식은 일반적으로 css를 작성하는 방식과는 반대다. 브라우저는 오른쪽에서 왼쪽으로 css 선택자를 해석 한다.div p a { } 예를 들어, div p a 라는 선택자가 있다면, 브라우저는 먼저 모든 a 태그를 찾고, 그 중에서 부모 요소가 p 인 것을 찾고, 마지막으로 이 중에서 또 다시 부모 요소가 div인 것을 찾는다. 이러한 방식은 브라우저가 불필요한 요소를 검사하는 시간을 줄이는 데 도움이 된다. 왜냐하면 가장 일반적인 요소 (여기서는 a 태그)부터 검사를 시작하므로, 좀 더 빠르게 원하는 요소를 찾을 수 있기 때문이다. css 선택자의 성능 향상 방법선택자의 복잡성 줄이기가능한 한 간단한 선택자를 사용하는 것이 좋..
Latest List
-
forEach와 Promise.all
ForEach의 동작먼저 예시 프로그램을 하나 보겠습니다.function test() { const testFunction = num => new Promise((resolve) => setTimeout(() => resolve(`${num}`), num)); const list = [3000, 2000, 3000, 4000, 1000, 1000, 2000, 3000, 1000, 1000]; list.forEach( val => { const result = testFunction(val); result.then(cosole.log); })}test(); list 에는 순서대로 timeout의 값들이 들어가 있고, forEach를 통해 순회하면서 testFunction을 실행하여 해..
2025.02.05 22:02
-
깃(Git) 개념과 상황별 팁
기본 개념과 명령어초기화깃을 올바로 사용하려면 깃이 파일의 변경 내용을 추적하는 방식을 이해하는 것이 무척 중요하다. 그렇지 않고 백업 용도로만 깃을 사용하면 장님이 코끼리 만지는 것처럼 딱 그만큼만 알게 되기 때문이다. 깃은 폴더의 어떤 파일이라도 모두 트래킹 할 수 있다. 원하는 폴더로 이동해 깃 초기화 커맨드부터 시작한다.$ git init .git 이라는 이름의 숨김 폴더가 하나 생긴다. 이것을 저장소라고 하는데 깃은 이 폴더의 모든 변경 내용을 여기에 저장한다. 이 파일을 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없다. 스테이징깃이 파일의 변경 내역을 저장하는데 곧바로 저장하는 것이 아니라 스테이징이라는 단계를 거친다. 스테이징은 변경사항 중에서 저장하고 싶은 부분만 선택해 임시로 ..
2025.02.02 00:18
-
Web Components : Custom Elements
기본 설명Custom Elements는 사용자 HTML Element를 만들게 해준다. 그리고 이는 DOM의 모든 기능을 다 사용할 수 있다.기본적으로 두 가지 타입으로 생성한다.표준 HTML 요소를 상속하지 않은 Elements. 요소는 상속하지 않지만 HTML Element는 상속 한다.표준 HTML 요소를 상속한 Element.이렇게 생성한 Element는 Lifecycle callback을 class 안에 정의하여 특정 시점에 동작 하도록 한다. 기본 사용법독립적인 사용자 정의 요소class MyComponent extends HTMLElement { constructor() { // 항상 super를 호출 해야 한다. super(); this.innerHTML = `T..
2025.01.24 08:43
-
svg see: SVG 파일 미리보기 extention
svg 미리 보기 활성화 하는 방법파일을 직접 열지 않아도 미리 볼 수 있기 때문에, 작업 속도가 빨라집니다. 특히 여러 SVG 파일을 다루는 경우 시간 절약 효과가 더욱 뛰어납니다. 확장 프로그램 설치 하기https://github.com/tibold/svg-explorer-extension/releasesSVG SEE 프로그래 설치 사이트로 이동해서 컴퓨터 사양에 맞는 버전을 다운로드 합니다.(32bit -> x86, 64bit -> x64) https://mu08.tistory.com/198 [윈도우 팁]SVG 파일, 이제 미리보기로 확인해보자(svg see)안녕하세요 무택입니다 :) 오늘은 아주 간단하게 SVG 미리 보기 활성화하는 방법에 대해 포스팅해 보도록 하겠습니다! 웹 디자인 작업 ..
2024.11.25 10:24
-
맥북 (Mac OS) M2 톰캣 설치하기
1. 톰캣 설치아파치 톰캣 사이트에 접속합니다.https://tomcat.apache.org/ 페이지 왼쪽의 `Download` 카테고리에서 다운로드 할 톰캣 버전을 클릭합니다.내게 맞는 톰캣 버전을 찾는 방법 참고: https://itworldyo.tistory.com/88 `Binary Distributions` 항목에서 `tar.gz` 파일을 클릭 해 다운로드 합니다. 저장 경로를 설정하고 `저장` 버튼을 클릭합니다.다운로드가 시작됩니다. 설치 된 `tar.gz` 파일을 더블 클릭하여 압축을 해제 합니다. 2. 톰캣 실행 `Finder`에서 톰캣이 설치된 경로로 접속합니다.키보드에서 `command` + `option` + `c` 를 동시에 눌러 경로를 복사합니다. 터미널을 실행합니다...
2024.09.03 15:02