분류
-
Neo4j: 그래프 데이터베이스 시작 (Graph)컴퓨터 2024. 4. 1. 21:32
Download Neo4j Desktop Experience Neo4j 5 on your desktop. Get started with the free graph database download today and avoid the costs of self-hosted deployment. neo4j.com Neo4j Desktop 을 이용해 간단하게 서버를 열고 db를 만든다. 사실 위치 데이터만 갖고 있는 필드들이라 관계가 필요 없는데 Neo4j spatial 과 mysql spatial을 비교해보기 위해 사용하였다. 우선 MySQL에서 데이터를 불러오기 위해, json으로 필드들을 저장했다. 그리고 Neo4j 에서 DB 선택 후 우측 APOC 플러그인을 설치한다. 그리고 로컬 import 폴더에서 파..
-
Go: 백엔드 웹소켓 채팅 (fiber v2 + websocket + rabbitmq)컴퓨터/Go language 2024. 3. 31. 16:02
여러 가지 방이 있고 각 유저들이 있는 채팅 서비스를 만들고 싶었다. 우선 분산 시스템을 고려하지 않고 베이스를 만들어 준다. 싱글 서버 웹소켓이 양방향이라 (bi-directional) 선택했고, 객체를 저장하고 있으면 계속 주고받을 수 있다. 채팅 서버에서 websocket 연결 객체를 저장하고 있어야만 메시지를 전송할 수 있다. var WsRoomManager *RoomConnectionManager = NewRoomConnectionManager() type RoomConnectionManager struct { connections *haxmap.Map[string, []*websocket.Conn] // roomid and users } Concurrent Map 연결 객체들을 해쉬 맵에 저장..
-
Go: WGS84를 WCONGNAMUL로 변환 함수컴퓨터/Go language 2024. 3. 24. 19:44
Go언어 백엔드에서 카카오맵 API를 이용하다 보니, WCONGNAMUL로 전환하는 일도 꽤 생겼다. 근데 외부 API를 부르자니 뭔가 싫고 공부겸 값을 찾아보기로 했다. (사실 마음 편하게 카카오 API를 이용하자: https://developers.kakao.com/docs/latest/ko/local/dev-guide#trans-coord) 우선 변환된 값들을 이용해서 python numpy의 lstsq로 linear 하게 계수를 찾아보는 방법을 택했다. numpy.linalg.lstsq — NumPy v1.26 Manual Cut-off ratio for small singular values of a. For the purposes of rank determination, singular val..
-
Spring boot + Kotlin Coroutine + WebFlux + Security 5 + MySQL 기본 셋업컴퓨터/Spring Boot 2024. 3. 18. 21:31
Spring boot 2.7에서 kotlin coroutine을 써서 webflux를 사용할 것이다. (JDK 17) 시큐리티는 기본 셋업에 R2DBC MySQL을 써서 연결했다. gradle-kts 버전이다. MySQL 테이블 Geolocation Spatial 타입을 갖고 있는 간단한 table이다. CREATE TABLE Markers ( MarkerID INT AUTO_INCREMENT PRIMARY KEY, UserID INT NULL, Location POINT NOT NULL SRID 4326, -- SRID Description VARCHAR(255), CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UpdatedAt TIMESTAMP DEFAULT CU..
-
MySQL: 주변 검색 Spatial 함수 탐구컴퓨터/MySQL 2024. 3. 6. 16:24
공간 데이터 처리 카카오맵 API를 이용하여 DB에 저장된 위치 주변 데이터들을 불러오고 싶었다. Postgres + postgis를 사용하면 ST_DWithin 이란 함수를 통해 쉽게 주변 장소들을 불러올 수 있다. https://www.ibm.com/docs/ko/db2/11.5?topic=sf-st-dwithin ST_DWithin ST_DWithin 함수는 두 Geometry가 지정된 거리 내에 있는지 판별합니다. 구문 매개변수 geometry1 geometry2와 비교할 Geometry를 나타내는 ST_Geometry 유형의 값입니다. geometry2 geometry1과 비교할 Geometry를 표시하 www.ibm.com 두 함수 모두 지리적 객체 간의 거리를 계산되는데 쓰지만 최적화가 다르..
-
Go: fiber v2 백엔드에서 토스 페이 API 사용하기컴퓨터/Go language 2024. 3. 4. 12:20
할 것 Go언어 백엔드 서버에 toss payments API를 연동해보고 싶었다. 우선 API 키를 얻어준다. @링크 API 키 | 토스페이먼츠 개발자센터 토스페이먼츠 클라이언트 키 및 시크릿 키를 발급받고 사용하는 방법을 알아봅니다. 클라이언트 키는 브라우저에서 토스페이먼츠 SDK를 연동할 때 사용합니다. 시크릿 키는 토스페이먼츠 API를 docs.tosspayments.com 테스트 키로 하면 아무리 결제해도 실제 돈은 빠지지 않는다. 이해하기 우선 토스 페이먼츠는 Basic 인증 방식을 사용하고 (Authorization: Basic blah 헤더) 시크릿 키가 ID고 비밀번호는 없는 형태고, 모든 응답/요청은 JSON 이다. @토스 페이먼츠 개발자 샌드박스 토스페이먼츠 개발자센터 토스페이먼츠 결..
-
프랑스 파리 (Bercy)에서 네덜란드 암스테르담 버스로 가기 (8시간)기타/해외 여행 2024. 1. 24. 06:44
프랑스 파리에 거처가 있고 네덜란드 친구들을 만나기 위해 혼자 버스 타고 가는 여정을 담았다. 영어는 자유롭지만 프랑스어는 완전 기초 문장들만 외우고 사용하는 레벨이다. 기차로 3~4시간이면 가는데 120유로였고 버스로는 7~8시간이지만 20유로 밖에 안 해서 가성비 때문에 버스를 선택했다. FlixBus가 아니라 이 회사와 비슷한 BlaBlaCar 회사 버스를 선택했다. (Omio 웹 사이트에서 최저가 선택) 버스 정류장 위치 일단 지하철이나 버스를 타서 Bercy 역에 갔다. (Bercy, 48 bis Bd de Bercy, 75012 Paris) Flix Bus Shop이라고 공원에 있는 위치를 찾아가면 되는데 (https://maps.app.goo.gl/9saDVQiP2JSwoPQz8) 지하철에서..