프론트엔드에서는 JavaScript보다는 TypeScript의 생산성이 훨씬 더 좋기에 옮겨가야한다. 또한 프론트엔드에서는 평범한 HTML보다는 React나 다른 라이브러리, 프레임워크를 선호하며 생산성도 더 좋을 때가 많아서 옮겨가야한다. 따라서 이번 글에서는 크롬 확장앱을 마이그레이션해서 생산성있고 우아하게 React와 TypeScript로 변화시켜보자. HTML, JS로 크롬 익스텐션 만들기에서 HTML, JS로 크롬 익스텐션을 만들었다. 이 익스텐션을 활용할 예정이다. 크롬 익스텐션 만들기는 3부작으로 만들 예정이며 이번 글은 두 번째 글이다.HTML, JS로 크롬 익스텐션 만들기 - 아주 기초적인 HTML, JS로 만드는 최소한의 기능을 갖고 있는 확장앱 만들기(이번 글) JS, HTML, CS..
최근 우연한 계기로 크롬 익스텐션을 만들게 되었다... 그래서 기록을 남기고자 이 글을 적는다. 익스텐션 만들기는 글은 3부작 시리즈로 작성할 예정이다.1. (이번 글) 아주 기초적인 HTML, JS로 만드는 최소한의 기능을 갖고 있는 확장앱 만들기2. JS, HTML, CSS 같은 바닐라(?)한 환경이 아닌 React, TS 환경에서 작업하기3. 테스트용 로컬 익스텐션에 hot-reload 기능을 만들어서 크롬 브라우저를 직접 클릭하지 않기딱 hot-reload까지 글을 올리고 나서는 기존에 올리던 Lynx 공식문서 뿌수기를 공부하고 업로드 꼭꼭...해야지 오늘의 주제 - Chrome Extension 만들기 101 간단한 크롬 확장앱을 만들면서 어떤 파일들로 작업하는 지 알아보자!작업할 앱 : pop..
Lynx의 튜토리얼은 Product Gallery 만들기와 Product Detail 만들기로 구성되어 있다. 나는 그 중에서 갤러리 만들기를 먼저 해볼 예정이다. 지난 Quick Start에 이어서 공식문서 탐방을 하고 있다.Tutorial: Product Gallery를 보며 기록했다. 주로 복붙했다. 작업하면서 뭔가 이상하다고 느낀 부분의 코드만 살짝살짝 바꿔서 했다. 블로그 글로 업로드하는 내용은 분량상 2편으로 나눠서 진행한다. 이 글은 지난 글에 이어서 쓰는 Part 2다.Part 1 : 프로젝트 세팅부터 global style, component 하나 만들기, useState 사용하기Part 2 : list 태그 사용하기, Auto-Scrolling, MTS(Main Thread Scri..
Lynx의 튜토리얼은 Product Gallery 만들기와 Product Detail 만들기로 구성되어 있다. 나는 그 중에서 갤러리 만들기를 먼저 해볼 예정이다. 지난 Quick Start에 이어서 공식문서 탐방을 하고 있다.오늘은 Tutorial: Product Gallery를 보며 기록했다. 주로 복붙했다. 작업하면서 뭔가 이상하다고 느낀 부분의 코드만 살짝살짝 바꿔서 했다.블로그 글로 업로드하는 내용은 분량상 2편으로 나눠서 진행할 예정이다.Part 1 : 프로젝트 세팅부터 global style, component 하나 만들기, useState 사용하기Part 2 : list 태그 사용하기, Auto-Scrolling, MTS(Main Thread Script)로 메인 스레드 다루기 이 튜..
이번엔 Lynx 공식문서의 Quick Start 파트를 통해 Lynx 세팅을 하고 처음 실행하는 일을 해볼 생각이다.공식문서 - Quick Start를 읽고...이 글은 Lynx 프로젝트를 세팅하고 처음 실행해보는 일을 따라한다.그리고 맥북에 iOS 시뮬레이터로 실행한다. (Xcode는 이미 깔려있다.)pnpm으로 진행하는데, 이건 상관 없을 것 같다.(또한 2025년 4월 기준인 만큼 버전 이슈는 미래에 알 수 없다.) RequirementsNode.js 18 버전 이상(Type Script를 쓰기 위해선 Node.js 18.19은 되야한다.) Installation1. Create a new Lynx project[create-respeedy]Rspeedy라는 툴을 사용해서 Lynx 프로젝트를 빌드한..
영어 공부 겸 새로 나온 기술을 공부하고자 공식문서를 읽고 조금씩 읽고 정리한 글이다.공식문서의 메인 페이지와 Why Lynx라는 글을 읽었고 구글링, ChatGPT와 함께 내 나름대로 정리했다. 지금부터 공식문서의 메인 페이지와 메인페이지에서 바로 들어갈 수 있는 Why Lynx를 통해 Lynx가 추구하는 바를 알아보자.Lynx공식 홈페이지를 읽고Empower the web community and invite more to build across platforms아무튼 웹에서 사용했던 기술(JS, TS, React)을 활용해서 React Native나 Flutter처럼 크로스 플랫폼을 구현하겠다라는 얘기인 것 같다. 틱톡을 만든 바이트 댄스에서 만든 오픈소스로 그쪽 회사의 프로덕트는 모두 이 기술 L..
시작에 앞서 재작년부터였을까. 아니면 작년부터였을까. 어쩌다보니 JS가 가장 편해졌고 어느 순간 프론트를 메인으로 잡고 가고 있었다. 그런데 딱히 싫지 않다. ㅎㅎ 백엔드도 JS로 되니까~ 그간 공부할 때 봤던 사이트, 책을 정리해놓고자 한다. 공식 문서 프론트엔드를 해야겠다! 리액트를 해야겠다! 라고 할 때 가장 많이 본 것은 사실 책이 아니라 공식문서였다. 요즘 공식문서가 너무 많이 잘 되있다. 모든 API 레퍼런스와 튜토리얼까지 자세하게 나와있기 때문에 책보다 중요하다. 리액트 공식문서(튜토리얼) : https://react.dev/learn 타입스크립트 핸드북 : https://www.typescriptlang.org/docs/handbook/intro.html NextJS 공식문서 : https..
모던 자바스크립트 튜토리얼 내용 정리 남용은 금지! 존재하지 않아도 괜찮은 대상에만 사용 등장 배경 요소가 없을 때 발생한 에러를 처리하고자 하는 마음let user = {}; alert(user.address.street); // TypeError 발생 해결 과정 AND(&&) 연산을 사용한다면? let user = {}; alert(user && user.address && user.address.street); // undefined. 옵셔널 체이닝 등장 평가 대상이 undefined, null이면 평가를 멈추고 undefined를 반환let user = {}; alert( user?.address?.street ); // undefined, 에러가 발생하지 않습니다. 주의 사항 ?.의 '앞..
[JavaScript] 즉시 실행 함수 (IIFE) IIFE (Immediately Invoked Function Expression). 정의되자마자 실행되는 JavaScript Function을 말한다. 즉시 실행 함수 (function imFunc() { alert("Welcome"); }());익명함수로 실행 (function() { alert("Welcome"); }());변수 사용 가능 (괄호 안쪽, 바깥쪽 둘 다 가능) // 괄호 안쪽 let data = 'welcome'; (function(data) { alert(data); }(data)); // 괄호 바깥 let data = 'welcome'; (function(data) { alert(data); })(da..
[JavaScript] 함수를 선언식, 표현식, 화살표로 만들어보기 함수명은 CamelCase로! (시작은 소문자!) 선언식 표현 function 함수명(매개변수1, 매개변수2, ...) { 함수가 호출되었을 때 실행하고자 하는 실행문; return 함수 밖으로 내보내고 싶은 값; } 표현식 let method = function (매개변수1, 매개변수2, ...) { 함수가 호출되었을 때 실행하고자 하는 실행문; return 함수 밖으로 내보내고 싶은 값; } 화살표 Arrow 표현식으로 만드는 익명함수에서 사용let arrow = function() { console.log('arrow function'); }; arrow = () => {console.log('arrow fun..