한 프로젝트에서 통계 쿼리를 누군가 sql 쿼리를 직접 사용하여 작성을 했다. 아마 queryDsl에서는 unionAll을 제공하지 않아서 그런것 같다. (@Query 어노테이션을 사용하여, nativeQuery = true) 이 쿼리의 문제점은 1. 가독성이 떨어져서 보기 싫다. 띄어쓰기가 만약 잘못되어있다면?😖 2. 오라클의 경우 스키마명을 명시를 해주어야하는데, 운영과 개발의 스키마명이 달라 컴파일을 각각 2번 해줘야한다는 것이다. 너무 불편하다. 3. 나중에 이 내용을 모르는 사람이 수정 없이 배포 한 경우, 해당 테이블이 존재하지 않는다는 황당한 일이 발생 할 수도.. 따라서 아래의 쿼리를 queryDSL을 사용하여 변경하려고 한다. @Transactional @Query( value = "SE..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cdZ8dx/btsgTiqxMNF/ihcgpAciSkgxEjjYDKEjG0/img.png)
#url 의 #쿼리스트링 에 다음과 같은 문자는 허용되지 않는데, 만약 [\\]^`{|} 같은 문자가 쿼리스트링에 들어가는 경우 #tomcat 자체의 에러가 떨어진다. 서버 콘솔에는 이런 에러가 나온다. Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986. #Tomcat8.0 부터 #RFC3986 규격이 적용되어 영어문자, 숫자, 몇개의 예약 문자만 허용된다. 따라서 '[' 같은 특수문자를 허용하려면, 톰캣 버전을 다운그레이드 시키던지, 허용 문자를 별도로 추가해주면 된다. import org.springframework.boot.web.embedded.tomcat.To..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cmpZbW/btskZYobWLi/NzMzHf3Bx3NWFsZe4gdPFK/img.png)
-DeaiConfigRoot는 ApacheTomcat 서버에서 실행할 때 사용되는 옵션 중 하나다. 이 옵션은 Tomcat이 웹 애플리케이션의 설정 파일을 찾는 위치를 지정하는 데 사용된다. 일반적으로 #Tomcat은 웹 애플리케이션에 대한 설정 파일을 WEB-INF 디렉토리 아래에 있는 web.xml 파일에서 읽는데 DeaiConfigRoot 옵션을 사용하면 Tomcat이 웹 애플리케이션의 설정 파일을 다른 위치에서 찾을 수 있도록 변경할 수 있다. 해당 옵션을 사용하면 웹 애플리케이션의 배포 구조를 유연하게 관리하고 다양한 설정 파일의 위치를 지정 할 수 있다는 장점이 있다. setenv.sh 파일을 생성하면 구동시에 옵션을 직접 주지 않아도, 톰캣이 해당 파일에서 설정값을 읽어간다. vi /톰캣경로..
동일한 #도메인 으로 요청을 하는데 이상한 점이 발생했다. local pc에서 요청하는 경우 아이피가 100.200.1.1(예시) 로 요청하여 정상적인 결과를 받아오는데 #linux server 에서 요청하는 경우 200.200.2.1(예시) 로 요청을 시도하여 Connect timeout이 떨어졌다. 도메인으로 #http 요청시 #DNS를 확인하여 IP를 가지고 오는데…왜 그럴까? 확인해보니 linux의 경우 #nameserver 에서 IP를 확인 하기 전에 #/etc/hosts 에 작성되어있는 도메인을 먼저 확인을 한다고 한다. Linux server에 200.200.2.1로 잘못등록이 되어있었고, 그 결과 해당 도메인으로 요청시 200.200.2.1로 요청을 하여 timeout 이 떨어졌던 것이다...
[상황] 다섯대의 서버가 L4로 연결이 되어있고, 각각의 tomcat에 L4도메인의 인증서를 적용해놓고 8090포트로 서비스를 실행시켰다. 그런데 https://L4 도메인:8090 으로 접속하는 경우 연결이 되지 않는 현상이 발생했다. 처음에는 당연히 SSL 인증서 문제라고 생각했다. 그런데 이 인증서는 다른 서비스에서도 쓰고 있는 거기 때문에 SSL 인증서 자체의 문제는 아니고 내가 Tomcat에 등록을 잘못했다고 생각을 했다. 아래는 내가 문제점을 찾기 위해 확인 했던 것들이다. 1. tomcat 인증서 확인 - 인증서를 잘못 등록했는가? -> 아님 2. 8090 포트에 대한 방화벽이 안뚫렸나? -> 각 서버의 방화벽이 오픈 되어있는 것을 확인 * 참고로 방화벽이 열렸는지 확인하려면 아래의 명령어를..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcGo1s/btsk1z2phsE/a0wtyRWAt75k4AVQ7dGw00/img.png)
SSL의 인증서를 적용 한 경우 https로 접속을 해야한다. http로 접속을 한 경우에는 안전하지 않음이라는 경고가 url 옆의 창에 표시된다. 그러나 우리는 보통 url로 접속하는 경우 프로토콜을 명시해주는 경우가 거의 없이 www.naver.com 이런식으로 입력하여 접속한다. 프로토콜을 입력하지 않고 url만 입력해도 자동으로 https로 리다이렉트를 시켜주자. 1. web.xml 설정 추가 HTTPSOnly /* CONFIDENTIAL 2. 톰캣 server.xml 수정 tomcat하위의 conf 폴더의 server.xml을 열어 아래와 같이 수정해준다. vi /tomcat/conf/server.xml 8080 포트로 들어오는 경우 443포트로 리다이렉트 시켜준다. 나는 리눅스에서 iptabl..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/z9Zjk/btrWismMaI7/c5YiHB0k8ChjvyrYeaHl00/img.png)
1. docker로 centos 환경 구성하기🐳 * --priviliged와 /sbin/init 옵션을 주지 않는 경우 systemctl명령어를 사용 할 때 아래와 같은 에러가 발생한다. Failed to get D-Bus connection: Operation not permitted #docker image 다운로드 docker pull centos:7 #centos:7 컨테이너 실행 #실행 시 --priviliged와 /sbin/init 옵션을 주어야 root권한을 획득 할 수 있다. docker run -itd --name centos7 --priviliged centos -p 80:80 /sbin/init #컨테이너 내부 접속 docker exec -it centos7 /bin/bash 2. i..
- Total
- Today
- Yesterday
- java
- mysql
- 쿠버네티스
- 아파치카프카
- 스프링
- Docker
- Kubernetes
- 전자정부프레임워크
- 자바
- springboot
- javascript
- 자바코테
- 코딩테스트
- centos
- 현대코테
- Linux
- 리액트
- 자바스크립트
- 현대
- softeer java
- react
- 오토에버코테
- java 코테
- Spring
- 톰캣
- 현대오토에버
- 도커
- 코테
- tomcat
- softeer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |