1. 이론은 대해서는 생략한다. 2. MySQL은 index에서 full text 검색을 지원해서 index를 full text로 설정하고 검색 대상이 될 컬럼을 지정해서 인덱스를 만들면 된다. 3. PostgreSQL은 약간 다른데 특정한 데이터 타입의 컬럼을 추가하여 그 컬럼을 지정해서 검색하는 방식이다. 4. 내용이 별거 없어서 아래 참고하면 된다. 5. 사실 스프링을 사용하면 Hibernate에서 full text search를 지원하는데, Apache Lucene 엔진을 사용한다. 하지만, 설정이 필요하고 파일시스템에 저장하는 방식을 사용하기 때문에 간편함을 추구하다가 더 불편해 질 수도 있다. 개인적으로는 데이터베이스에서 지원하는 것을 사용하는 것을 선호하는데 결국 선택의 문제다. # 자연어 ..
기능을 구현하려는데 라이브러리를 사용하려는 뭔가 복잡하고, 이해하기 힘든다는 생각이 들면, 그 라이브러리 탓이지 사용하는 개발자 문제가 아니다. 기본적으로 프로그램은 은닉성이 중요한데, 내부 동작을 알고 작업해야 한다는 것은 그 프로그램의 심각한 결함이 있다는 말이다. circuit breaker는 그냥 호출하는 서비스가 죽었을 때 대처하는 방법을 우아하게 한 것 뿐이다. 예전에 try catch 에서 다 하던 거라 별 것 없다. 1. io.github.resilience4j:resilience4j-spring-boot3 의존성 사용하여 구현한다면 웬만하면 이 설정 부분 만큼은 자바 쓰는 게 낫다. 설정 많이 추가해서 코클린 컴파일 하는 것 보다 default interface를 자바로 구현하는 것이 안..
같은 증상이 발생하면 해보기 바란다. 현재 스프링 부터 3.2.2 버전을 사용하고 있다. Security는 6.2.2 1. 이 문제는 고질적인 문제이다. Spring Cloud 환경에서 React와 Spring Boot 개발할 때 생기는 문제로 아무리 Spring Cloud Gateway 설정을 만져봤자 브라우저에서는 Origin이 없다고 호출을 차단해 버린다. 즉 아래 설정 같은 거 아무리 만줘 봤지 동작하지 않는다. gateway 서버가 그냥 헤더를 무성히하게 반환한다. sporing: cloud: gateway: default-filters: - DedupeResponseHeader=Access-Control-Allow-Origin Access-Control-Allow-Credentials glob..
1. CORS 브라우저가 접속한 클라이언트의 서버와 서비스를 받는 백엔드 서버가 다를 경우 생기는 문제이다. 그래서 브라우저에서 URL을 붙이면 결과가 나오는데 React로 실행하면 CORS 에러가 뜬다. 가장 대표적인 증상이다. 2. CORS 설정이 제대로 되지 않는 이상, Authroization이나 cookie 데이터를 브라우저와 서버가 주고 받을 수 없다. 막힌다. 3. Authroization 정보와 cookie 정보를 보내고 싶으면 3-1 서버에서 Cross Origin 설정을 해주어야 한다. 3-1-1 첫번째로 allowCredentials 를 true로 설정해야 한다. 3-1-2 두번째로 origin에 허용할 클라이언트 서버 도메인을 입력해야 한다. 여기에 예전처럼 * 하면 브라우저가 막아..
1. 시스템 개발시에 시간 저장은 상당히 골치 아픈 부분이다. 특정 국가 내에서만 사용되는 시스템이라면 어떤 것을 사용하더라도 상관없다. 2. 국제적인 서비스의 경우 시차가 존재하기 때문에 이것이 문제가 된다. 3. 국제적인 서비스를 위한 가장 쉬운 솔루션은 Timestamp이다. 이것은 어디에서나 동일하기 때문에 값을 필요에 따라 원하는 타입으로 변경 만하면 현지의 시간을 구할 수 있다. 3-1 문제는 UNIX 타임이라 대략 1970년 부터 저장되고 4바이트라 2038년 까지 만 저장된다. 4. 더 나은 방법은 8바이트를 사용하는 datetime 이다. 4-1 문제는 타임존 정보가 없기 때문에 시스템을 사용하는 지역 세팅에 따라서 그 지역의 시간이 저장된다. 4-2 하나 방법으로는 datetime을 U..
이 부분은 언제나 봐도 혼란스러워 적어 놓는다 1. Dependency는 spring-boot-starter-web 뿐이다. 2. Security 설정과는 아무 상관 없다. 설정이 없으면 다 열리고 있으면 설정되어 있으면 경로를 풀어줘야 접근가능하다. 3. spring-boot-starter-web 하나 설정하고 기동하면 3-1 기본적으로 src/main/resources 폴더 내의 public 이나 static 폴더 안에 있는 파일들은 기본접근 가능하다. 3-2 예시로 http://localhost:8080/base.jpg 라고 검색하면 src/main/resources/public/base.jpg 경로로 검색된다. 4. 임의로 경로 설정을 하고 싶은 경우가 대부분의 목적인데, WebConfig 설정 ..
일반적인 다른 폰과 다르게 샤오미 MI Ui를 사용하는 폰은 개발 시 Activity의 lifecycle이 조금 다르게 잡힌다. 1. 앱의 비활성화 시에 onPause, onStop이 호출되고 2. 다른 앱을 사용 시 process termination되어 버린다. 일반적인 디바이스에서는 onPause, onStop이 호출되고 복귀 시에 onRestart, onResume이 호출된다. 3. 다시 백그라운드의 앱을 실행해서 다시 앱을 활성화시키면 onCreate이 호출되면서 새로운 process가 생성된다. 3-1 이런 이상 증상은 아래 스크린 샷처럼 com.miui.hom에서 PeriodicCleaner가 다른앱으로 스위칭 될 경우 앱을 강제로 죽이는 것으로 보인다. 다른 상용앱에서는 이런 증상이 없는 ..
일반 이벤트 package net.pilseong.todocompose.ui.screen.task import android.annotation.SuppressLint import android.util.Log import android.widget.Toast import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib