오늘은 계속 공부 중..이전에 바닐라 자바스크립트에서 웹 컴포넌트를 작성하기 위해서는 반드시 custom-element와 shadow DOM 구조를 이용해야만 하는 줄 알았다. 하지만 그렇게 되면 자바스크립트로 렌더링 되는 게 아닌 HTML 구조만을 이용한 결과가 되기 때문에 내가 생각한 구조와는 조금 달라지겠다는 생각이 들었다. 때문에 더 많은 자료를 구글링 해보면서 새로운 방법을 알게 되었다. 단순히 기능별로 JS파일을 나누는 게 아닌 상태(state)와 컴포넌트 기능별로 어떻게 바닐라 자바스크립트에서 동작하는지 순서대로 포스팅된 황준일 님의 블로그를 알게 되었다. 뭔가 눈에 익을 듯하면서도 살짝 헷갈려 여기에 있는 내용을 좀 더 공부하고 프로젝트에 적용해보려 한다. 요즘 자주 보고 있는 '프롱트' ..
웹 개발
주말 동안 개인 프로젝트 과제를 해보려고 오늘에서야 TMDB 사이트의 API를 만져봤다. 그런데 자꾸 회원가입하려는데 자꾸 가입 안된다고 문의 남기라는 페이지만 자꾸 뜨길래 크롬, 엣지, 크롬 시크릿 탭 왔다 갔다 해봤는데도 계속 오류가 떠서 어이가 없었다. 결국 최후의 방법으로 핸드폰으로 회원가입하니 이게 웬걸 바로 가입되길래 이게 뭐야...로 시작했던 TMDB의 첫인상 TMDB 사용해 보기이번 과제에선 많은 API들 중 Top Rated을 이용하는데, 사용방법을 직관적으론 알 수 없어 이것저것 시도해 봐야 어떤 기능인지 알 수 있었다. FETCH REQUEST에 있는 보일러 코드를 가져와 실행해 보니 직접 REQUEST 요청이 언제 들어왔는지, 성공했는지 여부를 알려주는 RECENT REQUEST는 ..
이전 프로젝트에서 html, css, javascript만을 사용하다 보니, 같은 구조가 반복되는 곳에서 불필요하게 코드가 길어질 수밖에 없었습니다. 적절하게 반복문을 사용하여 구성해도 코드의 길이가 짧아지고 효율적으로 바뀌지만, 다른 곳에서의 재사용 측면에 있어 컴포넌트 개념이 유용하기 때문에 많이 사용되곤 합니다. 때문에 이번 개인 프로젝트에는 React 같은 라이브러리나 다른 프레임워크 없이, 자바스크립트만을 사용해서 컴포넌트를 구현해 보고자 Web Component를 찾아보았습니다. 웹 컴포넌트를 알아보기 위해 MDN docs를 정독했습니다. MDN에서는 웹 컴포넌트를 다음과 같이 정의합니다.※ 웹 컴포넌트: 그 기능을 나머지 코드로부터 캡슐화하여 재사용 가능한 커스텀 엘리먼트를 생성하고 웹 앱..
코딩을 할 때 사용자의 민감한 개인 정보나 중요한 API KEY 값의 경우 코드에 직접 하드코딩하게 되면 개발자 도구 등의 툴을 통해 민감 정보가 쉽게 탈취당할 수 있습니다. 이를 방지하기 위해서 .env 파일을 만들어 환경 변수들을 여기에 작성해 관리 및 사용하게 되고, github에 올라가지 못하도록 .gitignore에 넣어 처리를 하게 됩니다. 하지만 바닐라 자바스크립트 환경에서는 웹 브라우저 환경에서만 동작하기에 .env 파일을 사용할 수 없습니다. 그렇기에 React 등의 라이브러리나 다른 프레임워크 환경에서는 당연하게 기본으로 사용할 수 있던 파일을 자바스크립트 환경에서는 사용할 수 없으니 답답했습니다. 이번 TIL에서는 JS에서 어떻게 민감한 정보나, Key값을 다룰 수 있을지 알아보았습..
이전글) 2024.04.22 - [TIL] - [2024.04.22] Javascript와 ES6의 차이를 아시나요? 1995년에 개발된 자바스크립트는 HTML, CSS와 함께 웹 페이지를 구성하기 위해 빠져서는 안 될 3대장으로써의 역할을 공고히 다지고 있으며, 거기엔 여러 비결이 숨겨져 있었습니다. AJAX, 패러다임의 변화 AJAX의 발견 이전에는 웹 브라우저가 서버로 요청을 전달하면, 서버로부터 받은 정보를 포함한 페이지 전체를 리렌더링 하는 방식으로 페이지를 그렸습니다. 때문에 지금만큼 인터넷이 빠르지 않았던 그 시절에는 페이지가 렌더링 되는 시간만큼 시간도 걸리고, 매번 서버에 요청하면 화면이 깜빡이는 데다가, 원하지 않던 부분까지 전부 새로 그려야 하니 성능적으로도 썩 좋지 못했습..
웹 개발에 있어, 특히나 프론트엔드에 있어 Javascript(이하 JS)는 2023년 전체 웹 사이트의 98.3%가량이 JS로 개발될 만큼 핵심 언어로 주목받고 있습니다. 그렇다면 어떻게 JS가 웹 브라우저 시장을 장악하고, 어떤 장점이 있길래 웹 개발의 표준 언어로 사용되고 있을까 궁금하여 찾아보았습니다. Javascipt가 왜 사용되기 시작했을까? JS의 출시 자바스크립트는 1990년대 약 8~90%의 웹 브라우저 시장을 지배하고 있던 넷스케이프 커뮤니케이션즈는 웹 브라우저의 보조적인 역할을 수행하기 위한 목표로 1995년에 개발하였습니다. 처음 개발 되었을 때는 'Mocha'라는 이름을 붙여 넷스케이프사의 웹 브라우저에 탑재하였고, 4개월 뒤 'LiveScript'로 이름을 개명해였습니다. 그러고..
모달창 뒤에 검은 배경이 깔리는 이유 웹사이트들의 모달창을 보면 '1. 반드시 '닫기' 버튼을 눌러야만 닫히는 모달창'과 '2. 모달창이 띄워지면 뒷 배경이 어두워지고, 모달창 이외의 영역을 누르면 모달창이 닫히는' 두 가지의 경우가 일반적입니다. 2번째 경우 모달창을 열 때 뒷 배경을 어둡게 해야 모달창에 집중할 수 있게 하는 효과가 있는데요. 모달창 외부영역을 클릭해서 닫는 거의 대부분의 경우는 이 검은색 화면이 동반되는 모습을 볼 수 있었습니다. 때문에 모달창 이외의 영역을 클릭해 모달창을 닫을 때는 모달창 이외의 영역을 표시하는 wrapper나 container의 변수를 항상 관성적으로 써왔습니다. 관성적으로 코딩하다 이번 프로젝트 막바지에 Firebase Realtime Database를 이용해..
예전에 본 토스 디자인 컨퍼런스에서 잊히지 않았던 트랜지션 효과가 있어서 여태껏 생각만 하다가, 팀 프로젝트 하는 김에 한번 써 보았다. 생각만 하던걸 구현해 보니 난이도와 상관없이 뭔가 기분이 업되는 느낌? 토스 디자인 컨퍼런스 SIMPLICITY 23 제겐 랜덤 추첨이라는 운이라는 건 존재하지 않는지 큰 규모의 컨퍼런스는 아쉽게도 당첨되지 못하고, 감사하게도 온라인으로 준비해 주신 컨퍼런스나 다시 보기 영상을 주로 보는데요. 작년 토스 디자인 컨퍼런스 Simplicity23을 보며 감동의 물결에 휩쓸려 나간 적이 있습니다. (뜬금없지만 올해 인프콘은 제발 꼭..! 스태프라도.. 인력 안 필요하신가요? ㅠㅠ) 원래도 예쁜 디자인을 좋아해서 프론트엔드의 길을 걷고 있는데 이런 결과물을 집에서 볼 수 있다..