// In the following line, you should include the prefixes of implementations you want to test.
window.indexedDB =
window.indexedDB ||
window.mozIndexedDB ||
window.webkitIndexedDB ||
window.msIndexedDB;
// DON'T use "var indexedDB = ..." if you're not in a function.
// Moreover, you may need references to some window.IDB* objects:
window.IDBTransaction =
window.IDBTransaction ||
window.webkitIDBTransaction ||
window.msIDBTransaction;
window.IDBKeyRange =
window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla has never prefixed these objects, so we don't need window.mozIDB*)
다만 TypeScript를 사용하면 window.indexedDB 만 인식되고 있었습니다.
저는 작성할 때 root 파일에 indexedDB를 초기화 하고 필요한 객체 저장소를 생성하는 함수를 실행시키게 설정해놨습니다.
background:`url(${MapMarkerIcon}) no-repeat center center`,
backgroundSize:"40px 50px",
fontSize:"18px",
fontWeight:700,
color:`let(--point-color)`,
},
{
display:"flex",
alignItems:"center",
justifyContent:"center",
width:"50px",
height:"60px",
paddingBottom:"26%",
background:`url(${MapMarkerIcon}) no-repeat center center`,
backgroundSize:"50px 60px",
fontSize:"18px",
fontWeight:700,
color:`let(--point-color)`,
},
{
display:"flex",
alignItems:"center",
justifyContent:"center",
width:"70px",
height:"80px",
paddingBottom:"26%",
background:`url(${MapMarkerIcon}) no-repeat center center`,
backgroundSize:"70px 80px",
fontSize:"18px",
fontWeight:700,
color:`let(--point-color)`,
},
],
});
clusterer.addMarkers(individualMarkers);
averageCenter 값은 boolean으로 되어있는데 일단 전 가이드에 맞춰서 true 로 설정해놨습니다.
공식문서에서는 해당 클러스터에 포함 된 마커들의 평균값을 클러스터 위치로 표시한다고 하는데 아마 false 로 설정하면 클러스터들의 위치를 임의로 설정해줄 수 있는 것 같습니다.
다음으로 minLevel 의 경우는 클러스터가 작동 될 최소한의 지도 크기를 설정해주면 됩니다. 전 5로 설정해놨기 때문에 지도 확대레벨이 4일 경우는 자동으로 클러스터가 적용되지 않고 모든 마커들이 각 좌표의 값에 보여지게 됩니다.
disableClickZoom 의 옵션은 클러스터를 클릭했을 때 지도가 확대될지를 설정해주는 값 입니다. 해당 값을 false 로 설정 할 경우 클러스터를 클릭/터치해도 지도가 확대되지 않습니다.
다음으로 calculator 의 값은 클러스터의 크기 구분 값 입니다. 해당 값들을 기준으로 스타일일나 문자를 지정해줄 수 있습니다. 제가 지정한 값에서는 1~99, 100~999, 1000~9999 의 클러스터러를 각각 다른 스타일, 텍스트로 표현할 수 있게됩니다. 저는 스타일만 따로 지정하였습니다.
그다음 스타일인데 스타이를 리터럴 작성법으로 표기해주며 각 스타일은 calculator 에 선언해준 값과 순서를 기준으로 적용됩니다. 즉 1번째 스타일은 1~99 에만 적용되고 2번째 스타일은 100~999... 이런식으로 적용됩니다.
그리고 마지막으로 clusterer.addMarkers(individualMarkers); 를 통해 클러스터러에 마커들을 추가 해줍니다.
해당 옵션에 대한 기본적인 설명은 아래의 카카오맵 API 가이드 문서를 참고하시면 좋을 것 같습니다!
Nest (NestJS) is a framework for building efficient, scalableNode.jsserver-side applications. It uses progressive JavaScript, is built with and fully supportsTypeScript(yet still enables developers to code in pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
Under the hood, Nest makes use of robust HTTP Server frameworks likeExpress(the default) and optionally can be configured to useFastifyas well!
Nest provides a level of abstraction above these common Node.js frameworks (Express/Fastify), but also exposes their APIs directly to the developer. This gives developers the freedom to use the myriad of third-party modules which are available for the underlying platform.
구선생님의 힘을 빌려서 발변역을 해보면
Nest (NestJS)은 효율적이고 확장 가능한 Node.js 서버 측 응용 프로그램을 구축하기 위한 프레임워크입니다. Progressive JavaScript를 사용하며 TypeScript를 완벽하게 지원하며 개발자가 순수 JavaScript로 코드를 작성할 수도 있습니다. 또한 객체 지향 프로그래밍(OOP), 함수형 프로그래밍(FP), 및 함수형 반응형 프로그래밍(FRP)의 요소를 결합합니다.
Nest는 Express(기본값)와 같은 견고한 HTTP 서버 프레임워크를 내부적으로 사용하며 선택적으로 Fastify를 구성하여 사용할 수도 있습니다.
Nest는 이러한 일반적인 Node.js 프레임워크(Express/Fastify) 위의 추상화 수준을 제공하지만 개발자에게 직접적으로 이러한 프레임워크들의 API를 노출시킵니다. 이로써 개발자는 기본 플랫폼을 위한 다양한 서드파티 모듈을 자유롭게 사용할 수 있습니다.
즉 백앤드 서버를 JavaScript로.... 프론트앤드를 괴롭힐 수 있다는 것이다!
- Nestjs 설치하기
일단 nestjs 를 사용하기 위해선 nestjs를 설치해야 합니다. nestjs는 node.js 기반으로 돌아가기때문에 당연히 node.js가 설치되어 있어야 합니다.
node가 설치되어있다는 전재로 nestjs를 설치하겠습니다.
터미널에 아래의 명령어를 입력해줍니다.
npm i -g @nestjs/cli
자 이제 nestjs 설치가 끝났습니다! 그래도 혹시 모르니 nest -v 를 입력해서 버전을 확인합니다.
설치가 끝났습니다.
- Nestjs 프로젝트 생성하기
이제 설치를 끝냈으니 프로젝트를 생성해보겠습니다. 아래의 명령어를 통해 프로젝트를 생성합니다.
nest new 프로젝트명
해당 명령어를 입력하면 아래의 이미지와 같이 패키지 매니저를 선택하라고 나옵니다. 전 yarn 을 사용할 예정이니 키보드 화살표를 사용하여 패키지 매니저를 yarn 으로 설정 후 프로젝트를 생성합니다!
기본적인 설치라서 상당히 빠르게 프로젝트가 생성됩니다!!!
프로젝트 실행은 yarn 이므로 yarn start 를 입력하면 nest 프로젝트가 실행됩니다.