본문 바로가기

전체 글

(889)
[번역] 웹 애플리케이션의 메모리 누수 진단하고 고치기 다음과 같은 화면을 본 적 있나요? 크롬은 위와 같이 해당 페이지에서 메모리 누수가 발생했음을 알려줍니다. 메모리 누수가 뭔가요? 메모리 누수는 자원 할당을 잘못 관리하여 컴퓨터 프로그램이 더 이상 필요하지 않은 메모리를 해제하지 않아 성능 저하를 초래하는 것을 말합니다. 실행되는 동안 지속적으로 더 많은 메모리를 소비합니다. 거의 모든 프로그래밍 언어의 메모리 생명 주기는 메모리를 할당하고, 사용하고, 해제하는 방식으로 작동합니다. JS 메모리 누수가 문제가 되는 이유 스마트폰 출시와 모바일 앱의 확산 이후 웹 개발자는 이에 영감을 받아 웹 페이지를 디자인하고 구성하는 방식을 변경하기 시작했습니다. 오래 전 웹 개발 환경은 Java/JSP, PHP, ASP 및 Ruby와 같은 서버측 기술을 사용하는 M..
[번역] 자바스크립트 디버깅 완벽가이드 Chrome Devtool을 사용한 디버깅 방법을 마스터해 봅니다. 아래 글을 번역한 글입니다 : https://dev.to/atapas/the-definitive-guide-to-javascript-debugging-2021-edition-116n The definitive guide to JavaScript Debugging [2021 Edition] Introduction As developers, we’ve traditionally rooted out errors in our programs (we’ll c... dev.to 들어가며 개발자인 우리는 전통적으로 로그 문을 사용해 프로그램의 오류를 근절했습니다. JavaScript에는 이를 위한 유명한 console.log() 메서드가 있습니다. c..
[타입스크립트] Object vs object vs {} 해당 스택오버플로우 게시물을 보고 요약한 글입니다. https://stackoverflow.com/questions/49464634/difference-between-object-and-object-in-typescript Difference between 'object' ,{} and Object in TypeScript Trying to figure out the difference between these 2 types in TypeScript: foo: object and bar: {} and type: Object ? Example: trying to assign an object to the variable that suppose to handle headers stackoverflow.com..
[번역] Rehydration(재수화)의 위험과 문제 해결하기 React의 Rehydration에 대한 놀라운 깨달음 TL; DR 서버사이드 렌더링은 두 가지 관점에서 생각해야 한다. 보편적으로 먼저 만들 수 있는 것들 (상자의 포장) 클라이언트 별로 달라질 수 있는 것들 (상자의 내용물과 유통기한) 재수화시 리액트는 서버 사이드 렌더링 결과와 클라이언트에서 렌더링한 결과가 동일할 것으로 예상한다. 렌더링 로직에 결과가 클라이언트 측, 서버 측에서 다를 수 있는 부분이 들어가 있다면 오류가 발생한다. useHasMount와 같이 클라이언트에서만 동작 가능한 상태 로직을 포함한 훅을 사용하면 된다. next13의 리액트 서버 컴포넌트, 리믹스를 사용하는 것도 하나의 방법이다. next13을 이용하면 코드의 변경을 최소화 / 제거하며 CSR, SSR, ISR 등을 쉽..
[Vue3] 일반적인(intrinsic한) 컴포넌트 만들기 with typescript 리액트를 사용하는 경우 해당 링크의 예제처럼 일반적인 컴포넌트를 만듭니다. 아토믹 디자인을 활용한 디자인 시스템 도입기 카카오엔터테인먼트 FE 기술블로그 fe-developers.kakaoent.com 그런데 Vue3는 아무리 찾아봐도 해당 패턴이 없더라구요? 아마 암시적인 Fallthrough Attribute 기능 때문인 것 같습니다. $attrs 객체는 컴포넌트의 props 또는 emit 옵션(예: 클래스, 스타일, v-on 리스너 등)에 의해 선언되지 않은 모든 속성을 포함합니다. (주 : props 필터링을 통해 서브 컴포넌트의 계층화, 관심사의 분리에도 활용 가능) 해당 $attrs 객체의 typing을 지원한다면, 좀 더 쉽게 구현을 가이드할 수 있지 않을까요? Vue3은 runtime-d..
[번역]모듈 번들러는 무엇이며 어떻게 동작하는가? 해당 글의 번역입니다 : https://lihautan.com/what-is-module-bundler-and-how-does-it-work/ What is module bundler and how does it work? | Tan Li Hau What is module bundler and how does it work? August 30, 2019 (Last updated August 30, 2019) Series: Write a module bundler JavaScriptmodule bundlerdev toolwebpack What is a Module Bundler? How do we bundle? The "webpack way" The "rollup way" Summary Refere lih..
Javascript ES module과 순환 참조 해결하기 TL;DR esm을 통해, 효과적인 변수 관리 모듈 정보 수집과 실행 단계를 분리하여 로더가 비동기 import, 코드 transform등 다양한 것을 쉽게 처리할 수 있게 되었다. esm, cjs를 쓸지 결정한 뒤 코드를 해석하는 것은 로더의 역할이다. esmodule과 전혀 다른 명세, 사양 브라우저는 html 사양을 이용하여 js 처리 html에 어떤 방식으로 처리할지(ex: type="module" 있음) 적혀있음 es module의 3단계 구성 : import, export 정보를 먼저 수집 (module record, modulemap) import, export 정보는 코드 실행 순서와 분리되어 있다. 인스턴스화 : module record 정보로 module environment recor..
OpenAPI 3.0 튜토리얼 아래 문서를 번역 및 요약한 글 https://support.smartbear.com/swaggerhub/docs/tutorials/openapi-3-tutorial.html OpenAPI 3.0 Tutorial | SwaggerHub Documentation OpenAPI 3.0 is an open-source format for describing and documenting APIs. In this tutorial, we will write a simple API definition in the OpenAPI 3.0 format. If you are using OpenAPI 2.0 (Swagger 2.0), see this tutorial instead. OpenAPI Specification (f..