본문 바로가기

Back33

컨트롤러에서 Enum 타입 @RequestParam @PathVariable로 매핑하기 상황 컨트롤러 단에서 Get Mapping 시, Enum 타입의 코드 값을 넘겨주고 받도록 코드를 구현했다. 그런데 해당 api 호출 시에 에러를 뱉었다. /api/enum-test?enumType=T 로 호출 시 에러 발생 (enum 타입의 코드 값으로 호출하면 에러 발생) /api/enum-test?enumType=TITLE 로 호출 시 정상 동작 도입 알고보니 @RequestParam @PathVariable를 통해 파라미터를 넘길 때 정수형 혹은 문자열 타입으로만 제한하여 사용할 수 있다고 한다. 따라서 Enum의 코드 타입을 변환시켜줄 수 있도록 별도의 구현이 필요하다. 일단 내가 작성한 코드를 살펴보자. ✏️EnumType.java @Getter @AllArgsConstructor public.. 2024. 4. 15.
@RequestBody DTO json데이터가 null일 때 문제 상황 ajax로 JSON 데이터를 BODY에 담아 POST API로 전달할 때, controller 단에 매핑하는 객체DTO의 값이 계속 null 인 상황이 발생했다. 넘겨줄 JSON 데이터 { "seq" : "1", "name" : "홍길동" } 받을 DTO 클래스 @Getter// lombok 사용 public class insertDto { private Long seq; private String name; } 위 코드를 확인해보아도, RequestBody 매핑하기 위한 규칙을 모두 지킨 것을 볼 수 있다. 1. 객체의 필드명과 Json 데이터의 이름이 동일하다. 2. Getter와 기본생성자가 DTO 클래스에 있다. 📣참고! Spring Boot가 JSON을 매핑하는 구현체로 Jackson.. 2024. 2. 7.
[Linux] 메모리 사용량 확인 상황 프로젝트 진행 중 운영계에서 메모리 사용량 모니터링 요청이 들어왔다. 명령어는 자주 쓰지 않으면 잊어 버리기 쉽기 때문에, 기록해두려 한다. 메모리 사용량 모니터링 방법에 대해 알아보자. 방법 ✔️ top 명령어 실행 후 shift + m 📌참고! - shift + m은 메모리 사용률 내림차순 보기 - VIRT: 프로세스가 사용하고 있는 가상 메모리 전체 용량 - RES: 현재 프로세스가 사용하고 있는 물리 메모리 용량 2023. 12. 20.
[Tomcat] 특정 IP 접근 제한하기 상황 관리자 페이지(CMS)는 특정 IP만 열어주어 접근 가능하도록 기능이 필요하다. 이를 Tomcat에서 특정 IP는 막거나 열어줄 수 있다. 1. /conf/server.xml 파일을 vi 편집기로 열어 설정을 할 수 있다. 저 설정의 위치는 (이곳!) 사이에 넣어준다. ✔️접근 허용 IP 설정 ✔️접근 제한 IP 설정 2. 정규식으로도 적용이 가능하다 대표적인 예시 몇개만 살펴보자. 2023. 12. 20.
[JPA] 이전글, 다음글 조회(native query, QueryDSL 사용) 상황 게시판 구현을 하다보면 상세페이지에서 이전글, 다음글 바로가기를 쉽게 볼 수 있다. MSSQL, Oracle이 DB 벤더이면, 이전 행의 값을 찾거나 다음 행의 값을 찾기 위해서 사용하는 LAG, LEAD 함수로 쉽게 구현이 가능하다. 하지만 현재 JPA를 이용하여 이전글, 다음글을 구현해야 하는 상황인데 JPA는 LAG, LEAD와 같은 함수를 지원하지 않는다. 이전글, 다음글을 구현하는 방법 중 내가 찾은 방법은 두가지! 그리고 각각의 방법이 지닌 한계도 있으니 참고하여 상황에 맞는 방법을 선택하면 좋을 것 같다. 적용 ✔️1. Native Query로 구현하기 📌설명: Native Query 사용 시, Entity가 아닌 Return값을 반환받기 위해서는 Interface based Proje.. 2023. 12. 19.
[SpringBoot] 외장 tomcat에 JNDI 설정 (+war) 상황 WAS에 데이터베이스 정보를 설정하고 연결하는 방식으로 개발해달라는 요청이 들어왔다. 이번 기회를 통해 tomcat에 JNDI 설정을 하는 방법을 정리해보았다. 실행환경 및 버전 OS : Ubuntu 20.04.3 LTS build tool : Gradle IDE : Intellij 유료버전 JDK : open JDK 11 Spring Boot : 2.7.9 Tomcat : 9.0.71 ✔️1. 먼저 external tomcat에서 war 로 빌드 가능한 환경 세팅하기 📌 이 게시글은 외장 톰캣에 war로 빌드하여 배포하는 환경이 갖추어져 있다는 전제하에 진행되므로, 아래 포스팅을 참고하여 미리 세팅이 갖추어져 있는지 확인 바란다. 2023.10.11 - [Back/Spring Boot] - [Sp.. 2023. 10. 23.