최근 사내 백오피스를 개발하면서 엑셀 다운로드, 엑셀 업로드 및 압축파일을 다루는 화면 개발을 작업했습니다. 기존의 이미지 업로드, 다운로드와 같은 간단한 미디어 작업은 다뤄봤지만 엑셀 작업을 진행하면서 Blob에 대해 처음 알게 되었습니다. 엑셀 관련 기능 구현은 하였지만 Blob에 대해서는 생소했던 터라 이번 포스팅을 통해 Blob에 대해 자세히 살펴보겠습니다. Blob은 Binary Large Object의 약자로 말 그대로 커다란 이진 데이터의 집합체 입니다. 원시 데이터를 다양한 포맷으로 나타내거나 가공할때 사용되며 주로 이미지, 비디오, 영상 등의 미디어 데이터에서 활용됩니다. 미디어 뿐만 아니라 html, plain text 등 바이너리로 표현 가능한 많은 데이터에서 쓸 수 있습니다. Blo..
웹 최적화 프론트엔드 개발에서 웹 최적화는 중요 부분을 담당하고 있습니다. 사이트의 속도가 느려서 유저가 이탈하거나 SEO가 제대로 작동하지 않아서 노출이 되지 않으면 회사의 매출과도 직결되기 때문이죠. 하지만 우리는 웹 페이지가 느리다는 것을 어떻게 정의할 수 있을까요. 단순히 로딩 속도가 느리다와 같은 추측만으로는 부족하기 때문에 눈으로 확인할 수 있는 정량적인 지표들이 필요합니다.이를 도와주는 도구가 Google이 제공하는 Lighthouse입니다. 이번 포스팅에서는 Lighthouse에 대해 간단히 알아보고 Lighthouse CI와 Github Actions를 활용하여 PR 단계에서 웹 성능을 측정하는 과정을 다뤄보겠습니다. Lighthouse Lighthouse는 Google에서 제공하는, 웹..
Gatsby와 Contentful 연동하기 최근에 Gatsby로 블로그를 구축하면서 Contentful을 연동했습니다. Gatsy와 컨텐츠를 분리하고 싶어 CMS를 찾던 중, Contentful이 괜찮아 보여 도입을 했습니다. 시행착오도 많아, 연동 구글링 하시는 분들에게 조금이나마 도움이 되었으면 좋겠습니다. Contentful Headless CMS (Content Management System) 입니다. 간편하게 Markdown으로 컨텐츠를 관리할 수 있습니다. Record (entries + assets) 25k까지 무료입니다. Starter 패키지로 gatsby-source-contentful도 있으니 해당 스타터 패키지로 시작하셔도 무방합니다. Contentful 가입 후 모델생성하기 간단하..
얼마전부터 퇴근 후 회사 근처 실내 테니스장에서 레슨을 시작했다. 대학때부터 동아리에서 테니스를 꾸준히 쳤지만, 역시 세상은 넓고 잘치는 사람은 많더라. 은배부 및 대회를 몇번 참가해보고 세심한 발리와 세컨 서브 등 약점을 보완 할 필요성을 느꼈다. 최근 코로나로 인해 테니스의 인기가 높아지면서 (왜인지는 모르겠다) 강남 근처에도 실내 테니스장이 많이 생겼다. 인테리어 이쁘고 인스타 감성이 물씬 풍기는 곳들은 황금 시간대에는 몇 달 씩이나 예약이 밀려있다고 하는데, 운좋게도 회사 근처 퇴근시간대에 한자리가 비어 수강신청을 했다. 실내 테니스 레슨을 받으면서 느낀 장단점과 등록하기 전에 주로 살펴봐야하는 점을 정리해보았다. 실내 테니스 레슨의 장점 1. 실내 테니스인들이 가장 사랑하는 단어가 아닐까 싶다...