1. 이론은 대해서는 생략한다. 2. MySQL은 index에서 full text 검색을 지원해서 index를 full text로 설정하고 검색 대상이 될 컬럼을 지정해서 인덱스를 만들면 된다. 3. PostgreSQL은 약간 다른데 특정한 데이터 타입의 컬럼을 추가하여 그 컬럼을 지정해서 검색하는 방식이다. 4. 내용이 별거 없어서 아래 참고하면 된다. 5. 사실 스프링을 사용하면 Hibernate에서 full text search를 지원하는데, Apache Lucene 엔진을 사용한다. 하지만, 설정이 필요하고 파일시스템에 저장하는 방식을 사용하기 때문에 간편함을 추구하다가 더 불편해 질 수도 있다. 개인적으로는 데이터베이스에서 지원하는 것을 사용하는 것을 선호하는데 결국 선택의 문제다. # 자연어 ..
이 부분은 언제나 봐도 혼란스러워 적어 놓는다 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 설정 ..
1. 이 포스트는 스프링 부트 3에서의 보안 설정에 관한 내용으로 세부적인 것보다는 전반적인 것을 설명한다. 2. 이 포스트를 적는 이유는 스프링 보안이 세부적으로 들어가면 상당히 복잡해 보이는데 실제로는 그렇지 않다. 3. 세부적인 내용을 설명하는 포스트는 많지만 개괄을 제대로 설명하는 글이 없어서 적어본다. 4. 스프링 보안의 가장 기본은 FilterChainProxy와 DelegatingFilterProxy이다. 4. 보안 처리 요청은 실제 DelegatingFilterProxy는 등록된 FilterChainProxy을 사용하여 실제 보안 처리를 수행하게 된다. 아래의 delegate가 Filter를 구현한 FilterChainProxy를 저장하는데 이 proxy를 통해서 FilterChain내의 ..
1. H2는 스프링 부트에서 기본적으로 지원하는 메모리 기반 데이터베이스이다. nodejs의 sqlite와 유사한데 데이터 파일이 로컬에 생성되지는 않는다. 2. 스프링 부트에서 h2를 사용은 간단하다. 예전에는 그냥 pom.xml에 의존성만 추가하면 사실 동작하였다. 하지만 최근의 스프링 부트에서는 그렇게 하면 웹으로 데이터를 볼 수가 없다. 3. 스프링 부트 3.0.1을 기준으로 3-1 최근 버전의 Spring Security는 기본적으로 보안의 이유로 iframe을 지원하지 않는다. 그래서 추가적인 설정이 필요하다. 3-2 우선 일반적으로 하듯 아래처럼 application.yml에 아래처럼 spring h2 설정한다. logging: level: org.springframework.security..
'어떻게 자바 클래스를 생성하는 것이 좋은방법일까'에 대한 내용이다. WS는 사용해 볼 기회가 거의 없어 그렇게 경험과 지식이 많지 않음을 이해하기 바란다. 1. 가장 최신 버전의 스프링 부트를 사용한다.현재 3.0.1이 최신이다. 스프링 부트 web service starter에는 spring ws가 포함되어 있는데 JAVA WS 구현이 포함되어 있다 .그래서 최신버전의 경우는 jakarta로 시작하는 ws 패키지를 볼 수 있다. Spring boot 2.6까지는 jaxb 모듈이 jakarta 표준을 따르지 않고 예전 버전을 사용하기 때문에 jaxb 2.3.1버전을 사용하여 javax.xml.bind 같이 javax로 시작하는 패키지를 포함해야 한다. 2. 다시 말하면 스프링에서 사용하는 jakarta..
자바와 같은 static 타입 시스템은 개발할 때 편의성이 높지만 메시지를 주고 받는 것에 있어서는 불편한 점이 많다. 모든 메시지의 타입이 미리 지정이 되어 있어야 컴파일 오류가 생기지 않기 때문이다. nodejs로 개발한 것과 비교하면 차원이 다른 불편함이다. 아래는 자바스크립트(타입스크립트)로 작성된 예약정보를 가지고 오는 구문이다. fetchBooking이 서비스 이름이고 내부적으로는 _fetchBooking을 실행하여 동작한다. request에 들어갈 데이터를 만드는 부분을 보면 _setFetchBooking인데 아주 단순하다. 그냥 자바스크립트 객체를 자유롭게 만들면 된다. 그리고 만들어진 데이터를 _fetchBooking에서 보듯 함수에 넣어 보내면 된다. 더 황당한 부분은 client.ad..
Web Service는 xml이라는 것 때문에 쉽지가 않다. 그리고 자바의 JAXB라이브러리가 XML를 마샬링 할 때 발생하는 오류와 그로 인한 영향 때문에 처음에 세팅하는 것이 굉장히 까다롭다. SOAP Header가 있는 경우는 스프링을 아주 잘하지 않는 이상 며칠을 고생할 수도 있다. 클라이언트 개발은 서버로 보내지는 구문이 정상적인지 확인하는 것이 가장 중요하기 때문에 개발은 아래처럼 하면 된다. 1. 어떤 것이 실행되는 검증된 Request구문을 찾는다. 이것은 서비스를 제공하는 곳에서 같이 제공하는 것이 일반적이다. 2. 현재 자바에서 어떻게 xml로 변환되어 보내지고 있는지를 확인한다. 3. 되는 구문과 안되는 구문의 차이점을 찾아내어 자바에서 보내는 xml 구문을 수정하면서 디버깅 한다. ..
0. 여기에서는 Spring Cloud Gateway를 생성한다. 0-1 Gateway를 확장해서 다양한 filter를 생성하거나 캐시를 이용한 인증 같은 것들을 부가적으로 구현할 수 있겠지만 0-2 여기는 아주 간단한 Gateway를 만든다. 0-3 나중에 로그인과 가입을 제외한 나머지 호출에 JWT를 검증하는 필터를 작성하겠지만 0-4 복잡성을 줄이기 위해 Routing을 위해 predicate, filter는 application.properties에서 정의하는 방식으로 작성한다. 1. Gateway의 기능은 말 그대로 외부에서 오는 request를 유레카 서버의 등록된 서비스 정보를 가지고 서비스를 검색한다. 1-1 특징을 나열해 보면 1-2 Spring WebFlux기반이라서 Reactive P..
- 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
- Validation
- form
- login
- mapping
- Security
- 스프링부트
- crud
- 하이버네이트
- spring boot
- hibernate
- Many-To-Many
- RestTemplate
- Spring Security
- 상속
- MYSQL
- 매핑
- jsp
- one-to-many
- 스프링
- 로그인
- Rest
- 설정하기
- 설정
- one-to-one
- 자바
- Spring
- XML
- WebMvc
- Angular
- 외부파일