no image
headers-more-nginx-module docker image
headers-more-nginx-modulenginx에서 특정 헤더에 값을 수정할 수 있는 모듈이다.nginx에 포함되지 않은 third-party 모듈로 별도 설치가 필요하다. 도커로 nginx를 사용할 때 외부 모듈을 사용하려면, 모듈이 설치된 도커 이미지를 만들어야 한다.고맙게도 nginx 공식 repo에서 작성해 둔 Dockerfile이 있다.https://github.com/nginxinc/docker-nginx/tree/master/modules docker-nginx/modules at master · nginxinc/docker-nginxOfficial NGINX Dockerfiles. Contribute to nginxinc/docker-nginx development by creati..
2024.12.21
no image
nginx reverse proxy로 CORS 해결하기
내용 들어가기 전 용어 정의Domain최상위 도메인(TLD: Top-Level Domain) : 인터넷 주소를 분류하는 역할을 한다.ex) .com, .org, .net, .edu, .kr, .jp, .uk  2차 도메인(SLD: Second-Level Domain) : 조직 또는 웹사이트의 고유 이름을 나타낸다.ex) goole, naver, tistory, youtube 서브 도메인 : 주 도메인의 하위 영역을 나타낸다. 루트 도메인 : 도메인의 기본 주소로, 보통 SLD + TLD 조합으로 이루어진다. SOP (Same-Origin Policy)웹 브라우저가 보안을 위해 출처가 같은 리소스에 대해서만 요청을 허용하는 정책이다.동일 출처는 프로토콜, 도메인, 포트가 모두 동일한 경우를 의미한다. A ..
2024.12.03
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
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
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
no image
Spring Security Session 인증 - REST API login
VersionSpring boot 3.3.3Spring Security 6.3.3JWT 와 Session구현에 따라 다를 수 있지만 일반적으로 아래와 같이 의미한다. JWT는 stateless다. 서버가 인증 상태를 가지고 있지 않는다.Session은 stateful이다. 서버가 인증 상태를 가지고 있는다. 많은 다중 접속이 있는 서비스라면, 서버가 인증 상태를 가지고 있는 것이 부담이지만,접속하는 사람이 정해져 있다면(관리자, 현장 작업자 등) Session 방식을 채택해도 적절할 수 있다.Security Session REST API Login 구현Spring Security로 Session Login을 구현해보자.Filterchain 흐름이 다음 블로그에 잘 정리되어있다.https://gngsn.t..
2024.09.07
no image
Spring Stomp로 보는 직렬화/역직렬화
Spring Stomp로 보는 직렬화/역직렬화위와 같은 프로젝트 구성에서 Stomp 직렬화 역직렬화 예시를 보자.테스트 환경은 서버가 시작할 때 StompClient를 생성하고 연결한다.//StompClientConnect.java@Component@Slf4j@RequiredArgsConstructorpublic class StompClientConnect implements ApplicationRunner { @NonNull private CustomStompSessionHandler customStompSessionHandler; @Override public void run(ApplicationArguments args) throws Exception { WebSo..
2024.07.05