Home
Na's Collected Garbages
Cancel

Referer기반의 서비스별 권한 통제

어떤 웹 어플리케이션의 관리자 시스템이 있다고 가정하자. 관리자 시스템이기 때문에 관리자의 권한을 엄격하게 통제하는 것이 중요할 것이다. 그런데 대부분의 시스템에서는 화면단위로 권한을 통제하는 경우가 많다. 그런데 화면단위로 권한을 통제하는 것은 권한이 낮은 사용자가 직접 URL을 조합하여 서비스를 호출할 수 있는 문제가 있다. 그래서 화면보다 더 세...

Springboot에서 유용한 스크립트

Springboot는 Legacy Springframework 보다는 여러면에서 편의성이 더 뛰어나다. 하지만, 몇 안되는 불편한 점이 있는데, 실행스크립트를 직접 작성해야 한다는 점이다. Legacy Springframework의 경우에는 VM에다가 tomcat을 설치한 후에 배포파일만 잘 넣어두고 tomcat에서 기본제공하는 start.sh, sh...

리눅스에서 자주 사용하는 스크립트

임의의 새로운 리눅스VM을 만들었다고 가정할 때, 해당 VM의 목적과는 상관없이 거의 대부분의 케이스에서 필요한 설정이 있다. 대표적으로는 로그가 무한하게 쌓이지 않도록 정기적으로 삭제 또는 백업하거나, VM이 재실행 됐을때 어플리케이션이 자동으로 시작하게 하는 것 등이 있다. prometheus처럼 어플리케이션 레벨에서 데이터 보관기간을 설정할 수 ...

React Springboot로 운영서버 구축과 Ssl인증서 적용

이전 까지는 스프링으로 된 레거시 프로젝트만 하다가 최근에 React와 Springboot로 새로운 프로젝트를 수행하게 되었다. 지금은 프로젝트가 거의 마무리 되는 시점이라 운영서버를 준비하다가 겪은 시행착오를 정리하려고 글을 작성한다. Requirements 일단 React로 화면을 만들고 Springboot로 백엔드를 구성하여 개발을 했고, Sp...

더미데이터 생성 스크립트

프로젝트 개발 단계에서는 DB에 데이터가 별로 많지 않아서 쿼리를 거지같이 짜놔도 1초 안에 결과가 나오기 때문에 쿼리가 잘 작성되어 있는지 판단하기 어렵다. 그래서 개발 단계에서 DB에 충분한 더미데이터를 생성하여 쿼리의 성능을 쉽게 파악하는 것을 목표로 더미데이터 생성 스크립트를 준비해보기로 했다. 테이블 하나당 프로시저 하나 씩 만들면 너무 번...

Lb To Httpd 서버가 연결이 안될 때

새로운 서버를 구성해야 할 일이 있었는데, 분명 설정은 멀쩡한 것 같은데 이상하게 연결이 잘 안되는 문제가 있었다. 서버 구성은 이런식이다. 일단 의심스러운 부분은 WAF → LB 와 LB → WEB 이다. 그러던 도중에 LB설정에 빨간 불이 들어와 있는 것을 발견하게 되어, 이 것부터 고쳐보기로 했다. 기존의 httpd.conf내용은 다음...

Httpmessageconverter와 Swagger Openapi Service

새로운 프로젝트를 시작한다고 하면, 그 프로젝트에 필요한 도구를 챙기고 설정을 할 것이다. 하지만 Spring을 사용한다고 하면 대부분의 프로젝트에 범용적으로 자주 사용되는 것 들이 있다. 대표적으로 SpringBoot, Tomcat, JPA, MyBatis, Lombok 등이 있다. 프레임워크나 라이브러리는 자주 사용하는 것을 그냥 dependen...

Springboot 설정파일의 변수읽는 방법

개발을 하다보면 개발 로컬환경과 운영환경에 다른 값을 사용하거나 운영 환경이라도 다른 값을 설정하는 경우가 있다. 예를 들면 이중화가 구성된 상황에서 일일 정산작업을 할때 양 쪽 WAS에서 동일한 작업을 하면 데이터 무결성 문제가 발생할 수 있으므로 한쪽 WAS에만 정산을 맡기기 위하여 WAS1과 WAS2에 구분되는 값을 하나 지정하여 정산 여부를 판...

Db의 물리적인 성능 판단

어플리케이션을 만들어서 여러 서버에 설치하는 경우, 각 지역별 사용량에 따라서 DB상의 데이터 크기와 성능이 달라지는 경우가 있다. 그런데 DB가 스키마도 같고, 색인도 같고, 실행계획도 같고, 테이블 크기도 비슷한데 유난히 한두개의 지역에서 너무 느리다고 계속 민원이 들어오는 현상이 발생했다. 당시에는 노후화된 하드웨어의 영향이 클 것으로 생각했는...

Jpa Oracle사용시 임시테이블 비활성화하는 방법

SpringBoot로 JPA를 통해 DB에 연결할때 다른 RDBMS는 괜찮은데 유난히 오라클에서만 임시테이블을 만드는 경우가 있다. CREATE SEQUENCE SEQ INCREMENT BY 50 START WITH 1 MAXVALUE 9999999999999999; @Entity @Getter @Table(name = "USERS") publi...