라이브러리 8

Spring Boot에서 API 개발 시 Response 반환 형식 문제 해결 방법

이 글은 Spring Boot를 사용하여 API를 개발할 때 발생한 response 반환 형식과 관련된 문제와 해결 방법에 대해 다룹니다 문제 상황 Spring Boot를 사용하여 개발 중인 백엔드 서버에서 특정 API에서 사용되는 값에 대한 DTO를 생성하였습니다. DTO에서는 각 변수에 @JsonProperty("TEST")와 같이 어노테이션을 사용하여 반활 될때의 이름을 명기하여 주었습니다. 이렇게 구성 후 API 통신을 테스트하는 과정에서, 프론트엔드(클라이언트) 측에서 반환된 데이터에 TEST와 test는 두 개의 키가 반환되는 문제가 발생했습니다. 해결 시도 1 첫 번째로 고려된 해 방법은 컨트롤러의 @ResponseBody를 제거하여 정상 작동하게끔 하는 방법입니다. 그러나 이 경우 @Jso..

Application.yml Profiles를 활용한 환경 별 DB 설정

Spring Boot에서 application.yml의 Profiles를 설정해 실행 시 할당되는 profile.active 값에 따라서 각각의 디비 정보로 연결할 수 있도록 하는 방법을 소개합니다. 문제 상황 개발 환경(dev), 테스트 서버(use-testServer), 운영 환경(use)에서 각각 다른 데이터베이스에 연결하는 설정 정보를 application.yml에서 작성했습니다. 그런데 실행 시 dev 상태임에도 운영 데이터베이스에 연결되는 현상이 발생했습니다. 비슷하게 use 상태에서는 'use-testServer' 데이터베이스에 연결되는 경우도 발견했습니다 원인 분석 및 해결 방법 문제가 발생한 원인은 모든 프로일 설정에 'profiles: active: 상태 값'을 지정했기 때문이었습니다...

Spring Boot Web Server Log 저장 문제

* 문제점 개발중인 기존 프로그램에서는 특정 기능을 수행 할 시 모든 로그(오류로그 제외)를 공통 데이터 테이블 에 저장했습니다. 또한 5초간격으로 자동 리프레시를 수행하는 기능이 존재하여 병원마다 5초간격으로 로그가 쌓이는데 이 부분이 하나의 병원일때는 별문제가 없는거 같지만 만약 100곳에서 동시에 자동리프레쉬 기능을 수행하면 한번에 100개의 로그가 디비 row에 저장되기 때문에 다른 로그를 찾아보기 어려울 뿐더러 다음과 같은 문제가 발생할 수도 있습니다. * 상황 개발 중인 프로그램에서 기존에는 Spring 서버에 Interceptor에서 로그를 쌓고있었는데 그 방식을 보면 Interceptor의 preHandler()메서드에서 로그에 대한정보 (ex ip, 키값 등)을 (전역) map에 저장한 ..

(Vue2) Ag-grid 선택 row포커스 유지

Ag-grid를 사용하는 프로그램에서 그리드의 row를 사용자가 선택한 후 영역 바깥쪽을 클릭해도 해당 포커스가 남아있도록 하는 기능을 구현해야 했습니다. 이 기능을 수행하기 위해서는 gridApi를 사용해야 하는데 해당 기능을 사용하기 위해서는 gridOptions.api를 할당해주어야 합니다. 저는 vue의 라이프사이클 중 하나인 mounted에서 this.gridApi = this.gridOptions.api; 와 같이 넣어주었습니다. 만약 여러개의 그리드를 사용한다면 변수를 여러 개 만들어서 넣어주면 되는데 this.gridApi = this.필요한그리드의 gridOptions로 넣은 값의 이름.api; 와 같은 형태입니다. 코드로 예를 보자면 ex) template 에서

라이브러리/Vue 2022.09.14

(Vue2) el-input 선택영역(드래그) 문자열 정보 추출

지난 번 메모기능에서 우클릭 시 날짜 정보를 입력하게 해달라는 요청에서 우클릭 시 드롭메뉴를 사용하여 날짜 넣기, 복사, 붙여넣기 기능을 수행할 수 있도록 해달라는 추가요청이 있었습니다. 해당 메모 부분에서는 기본 브라우저의 복사, 붙여넣기 기능을 나타나지 않게 하고있었는데 드롭메뉴를 뜨게해서 복사 붙여넣기 기능도 사용하게 해달라는 내용이었습니다. 1. 복사 붙여넣기 기능을 수행할 때 해당 input 영역을 전체 복사 할 수도있지만 실제 사용자가 복사 붙여넣기 기능을 사용하는 경우 드래그한 글자만 복사하기 때문에 드레그한 값을 가져오는 부분이 필요했습니다. 해당 기능을 찾아보니 document.execCommand('copy')을 사용하면 선택영역에 대한 복사를 수행한다. 라고 하여 해당 함수를 사용해보..

라이브러리/Vue 2022.09.13