본문 바로가기

frontend11

JS로 파일 다운로드 업무를 하다 보니 MinIO라는 blob storage에서 파일을 다운로드해야하는 경우가 생겼다. 버튼을 클릭하면 Storage에 url을 요청해서 다운로드하는 것을 구현해야 했다. 즉, js로 동적으로 다운로드를 구현해야 하는 것이다. 다운로드를 구현하는 방법에는 크게 2가지가 있다. blob 객체 먼저 다운로드 → 해당 blob 객체를 사용할 수 있는 url을 클릭 async function download(url: string, filename: string) { const link = document.createElement("a"); const resp = await fetch(url); const blob = await resp.blob(); link.href = URL.createObject.. 2023. 9. 10.
가로 세로 스크롤 되는 테이블 만들기 Frontend 작업을 하다 보니 다음과 같은 테이블이 필요했다. 상하 스크롤이 필요. 단, 헤더 영역은 위에 고정 왼쪽, 오른쪽 영역은 고정된 상태로 좌우 스크롤이 필요. 즉, 스크롤 영역이 각자 다르기 때문에 테이블 자체가 쪼개져 있어야 한다는 뜻이다. 나는 이 문제를 해결하기 위해 다음과 같이 생각해 보았다. 6개 영역을 div로 처리하여 css grid를 활용, 테이블처럼 느껴지도록 배치 크게 왼쪽, 오른쪽, 가운데 영역으로 분할. 왼쪽, 오른쪽, 가운데 각각에 대해 스크롤 영역을 배치. 스크롤바는 오른쪽 영역에만 보여준다. 어느 하나라도 스크롤이 이루어진다면 다른 컴포넌트에 대해서도 스크롤 (js 이용) 크게 왼쪽, 오른쪽, 가운데 영역으로 분할되는 것은 같지만 스크롤 영역을 전체 div에 대해.. 2023. 4. 24.
[TIL] html에서 돋보기 뷰 구현하기 svg를 이용한 작업을 진행 중에, 특정 부분을 확대한 뷰를 구현해야 하는 태스크가 있었다. 돋보기 뷰를 구현한 과정을 정리해 보았다. Use 태그 기존 svg 태그를 동일하게 복사해서 scale과 translate하는 작업이 필요하다. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use use 태그는 svg 도큐멘트 내부에서 node를 가져와서 복사한다. use 태그는 id를 이용해서 svg 요소를 복사해 온다. 예제 돋보기 뷰 돋보기 뷰의 요구사항은 다음과 같다. 상하좌우로 최소 마진을 설정한다. svg 내의 특정 엘리먼트를 클로즈업해서 보여준다. 원본 엘리먼트와 동일한 비율로 확대/축소한다. html js window.onload = () =.. 2023. 4. 3.
[팁] IntersectionObserver에 대해 알아보자! React로 프로그래밍을 하다 보니 화면 밖으로 벗어날 때 처리가 필요했다. 내 경우에는 scroll로 화면에 벗어날 때 / 화면으로 들어올 때를 감지하는 것이 필요했다. 관련된 API를 찾아보다가, IntersectionObserver가 Web 기본 스펙에 포함되어 있어서 소개해 보고자 한다. https://developer.mozilla.org/ko/docs/Web/API/Intersection_Observer_API 사용 예시 페이지가 스크롤 되는 도중에 발생하는 이미지나 다른 컨텐츠의 지연 로딩. 스크롤 시에, 더 많은 컨텐츠가 로드 및 렌더링되어 사용자가 페이지를 이동하지 않아도 되게 하는 infinite-scroll 을 구현. 광고 수익을 계산하기 위한 용도로 광고의 가시성 보고. 사용자에게 .. 2023. 1. 10.