no image
JPA - Lazy 성능 차이, OneToOne 양방향 Lazy
LAZY, EAGERA라는 엔티티에 아래와 외래키가 있다 해보자. Lazy를 지정하지 않으면 default인 EAGER가 적용된다.Eager 옵션에 JpaRepository에서 제공하는 기본 메소드( findById, findAll )로 A를 조회해 보면 4개의 JOIN 쿼리가 나간다. @OneToOne(cascade = {CascadeType.REMOVE, CascadeType.PERSIST}) @JoinColumn(name = "locate_id", referencedColumnName = "id") private Locate locate; @OneToOne(cascade = {CascadeType.REMOVE, CascadeType.PERSIST}) @JoinColumn(..
2024.11.26
no image
(GIS)지도 데이터 시각화, R-tree 알고리즘
GIS 데이터 시각화GIS 데이터를 다루면서 시각화 렌더링시에, 위도/경도가 어느 지역에 속하는지 분류하는데 예를 들면 다음과 같다.지역1: (127.123, 36.231), (127.154, 36.271), (127.203, 36.181)지역2: (127.423, 36.531), (127.454, 36.571), (127.503, 36.581) (경도, 위도) 가 특정 지역에 적중하는지 판단하는 알고리즘은 d3.geoContains 같은 게 있다.d3.getContains는 내부적으로 어떤 알고리즘을 사용할까? 이름만 들어보자. Ray-Casting: 다각형 내 포함 여부를 판단하기 위해 주로 Ray-Casting 알고리즘을 사용합니다. 이는 주어진 점에서 임의의 방향으로 반직선을 그렸을 때, 다각형의..
2024.11.21
no image
mapshaper - 대한민국 행정동 지도 데이터 다루기
지도 데이터, 시각화2024.10.01 - [JS,Node,React] - React, D3.js를 이용한 지도 시각화 React, D3.js를 이용한 지도 시각화지도 시각화 방법네이버, 카카오, Mapbox 등 지도 데이터를 제공하는 api를 활용한다면?장점 - 지도를 그릴 필요 없고, 적은 코드로 시각화 기능을 구현할 수 있다.단점 - 기본 디자인을 바꾸기 어렵cornpip.tistory.com저번에 지도 데이터에 대해 약간 다루었다.원하는 지도 데이터를 얻기 위한 mapshape 명령어를 더 살펴보자. https://github.com/vuski/admdongkor대한민국 행정동 GeoJson을 받고 https://mapshaper.org/mapShaper 웹 콘솔에 명령어를 입력하며 원하는 지도 ..
2024.11.06
no image
Spring RestTemplate - 공공api SERVICE KEY IS NOT REGISTERED ERROR
문제 SERVICE ERROR SERVICE_KEY_IS_NOT_REGISTERED_ERROR 30 ,[Access-Control-Allow-Origin:"*", Content-Type:"text/xml;charset=UTF-8", Content-Length:"229", Date:"Thu, 24 Oct 2024 15:24:30 GMT", Server:"NIA API Server"]>기상청 단기예보 api를 사용하는데 위와 같은 응답이 왔다. api에서 제공하는 에러 코드이다. 공공데이터 API는 위와 같이 인코딩 키와 디코딩 키를 둘 다 주고 잘 동작하는 키를 사용하라고 한다. 접근1. 인코딩키와 디코딩키를 둘 다 사용해 본다. => 실패 2. 키가 전송되면서 바뀌나?String apiUrl = ..
2024.10.25
no image
Spring Data JPA - flush(sql error 1062 sqlstate 23000)
예시)Vehicle 테이블idbigintPrimary key (Vehicle ID)license_platevarchar(255)Vehicle's license plate numberbrandvarchar(255)Manufacturer of the vehiclemodelvarchar(255)Vehicle modelyearintYear of manufacture Engine 테이블idbigintPrimary key (Engine ID)engine_numbervarchar(255)Engine serial numberengine_modelvarchar(255)Engine modelstatusenum('error', 'running', 'stopped')Current engine statusvehicle_idbi..
2024.10.20
no image
Error) Spring Security @PreAuthorize/@Secured NPE
환경Spring Boot 3.3.3Spring Security 6.3.3 문제@PreAuthorize/@Secured - NullPointerException//WebSecurityConfig.java@Configuration@EnableWebSecurity@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true)@RequiredArgsConstructorpublic class WebSecurityConfig { ....}//UserController.java ...uesrService 주입.. @PostMapping(value = "/master/create", consumes = MediaType.APPLICATION_FO..
2024.10.15
no image
사이드 프로젝트) 개인용(로컬용) ChatGPT 만들기
개발 동기나는 주로 ChatGPT를 활용한다. (Claude는 사용량 제한 있고, Gemini는 찰떡같이 알아듣지를 못한다.) ChatGPT 아쉬운 점 구독 가격이 비싸다. 20+2(부가 가치세) 달러... 종종 OpenAI api는 멀쩡한데, ChatGPT 서비스가 불량이다.모델 개선 관련 옵션을 끄지 않으면 대화를 훈련에 활용한다.모델 개선 옵션과 무관하게, 대화 내역이 ChatGPT에 보관된다. 삭제할 수 있지만 암튼 모르는 거니까 종종 불안정하기도 하고 ChatGPT는 특정 주제에 특화된 세팅으로 대화를 시작할 수 있는 서비스가 있다.Openai api를 사용해 보면 다룰 수 있는 많은 파라미터가 있는데, 그 요소들을 각 주제에 맞게 세팅했을 것이다. 맞춤 GPT를 꼭 활용하는 것이 아니라면, 사..
2024.10.09
no image
React, D3.js를 이용한 지도 시각화
지도 시각화 방법네이버, 카카오, Mapbox 등 지도 데이터를 제공하는 api를 활용한다면?장점 - 지도를 그릴 필요 없고, 적은 코드로 시각화 기능을 구현할 수 있다.단점 - 기본 디자인을 바꾸기 어렵고, 원하는 시각화 기능이 없을 수 있다. 사용량에 따라 요금이 부과될 수 있다. svg나 canvas 같은 도화지에 지도부터 그린다면?장점 - 그려지는 모든 요소를 컨트롤할 수 있고, d3 같은 시각화 라이브러리를 사용하면 동적인 그래픽을 만들 수 있다.단점 - 더 많은 코드와 더 많은 상태 관리가 생긴다. 지도 데이터 준비아무튼 지도를 직접 그리기로 했다면 지도 데이터에 대해 알아보자.GeoJSON, TopoJSON 특징GeoJSONTopoJSON데이터 구조단순한 지리적 구조 (점, 선, 다각형)토폴..
2024.10.01
no image
Spring Data JPA - Cascade, orphanRemoval 차이
관련 포스팅2023.07.13 - [Spring/JPA] - 스프링) JPA Entity option 지연 로딩/영속성 전이/고아 entity삭제 (23-07-12) 스프링) JPA Entity option 지연 로딩/영속성 전이/고아 entity삭제 (23-07-12)velog에서 이전한 글 입니다. 2023.07.13 - [spring] - 스프링) JPA Entity 연관관계 - 외래 키 주인 (23-07-11) 지난 포스팅에 이어 JPA Entity Option FetchType EAGER/LAZY (지연 로딩) public @interface ManyToOne{ ... FetchType fetccornpip.tistory.com지우고자 하는 데이터가 다른 테이블에서 FK로 사용 중이라면 지울 수..
2024.09.24