전체 글(335)
-
[에러] Invalid character found in the request target [/api/product/search?searchKeyword=[te] ]. The valid characters are defined in RFC 7230 and RFC 3986
[Reason]만든 검색 api에 테스트로 '[', ']' 이 두 개의 특수 기호를 넣어서 호출시켜 보았더니 잘못된 문자가 포함되어있다는 에러가 발생하였다.검색해보니, SpringBoot는 내장 Tomcat(톰캣)을 사용하고 있으며, 이 Tomcat 의 특정 버전 이상에서 RFC 3986 규격이 적용되었다고 한다.RFC 3986에는 영어 문자(a-zA-Z), 숫자(0-9), -. ~4 특수 문자 및 모든 예약 문자만 허용된다.따라서 한글을 URL 쿼리스트링으로 변환하며 생기는 특수문자가 원인이다. 그런데 유독 다른 특수 기호들은 무사히 넘어오는 반면에 '[', ']' 이 두 가지의 특수 기호만이 심하게 허용되지 않아 발생된 이슈이다. [Solution]@Configurationpublic class T..
2024.07.03 -
[Spring Boot] Spring Profile 을 통한 개발 환경 분산 관리
Spring Boot에서 개발 완료 후 어플리케이션을 실행하여 테스트할 때 현재 개발 환경인지, 실제 운영 환경인지에 따라 설정되는 개발 환경이 다 다를 것입니다.이를 일일히 바꾸기에는 수고스럽기 때문에 이를 제어하기 위한 Spring Profile을 활용하여 편리하게 개발 환경을 변경해주는 작업을 해보겠습니다. # yml 파일로 Profile을 관리할 수 있지만 저는 properties 파일로 진행하였습니다. 우선, 앞서 말한 로컬 개발 환경, 운영 개발 환경 처럼 때에 따라 바뀌는 이러한 환경을 Spring Boot 에서는 Profile이라고 말합니다.이 Profile은 기본적으로 Spring Boot 프로젝트의 properties 파일을 통해 관리해줍니다. 기본적으로 application.prope..
2024.06.21 -
[C#] C# 프로그램 배포 방법
C# 개발을 완료하고 본격적으로 프로그램으로 만들어 배포하여 사용하는 방법을 정리해보겠습니다. 우선 프로젝트를 빌드하고 상단의 프로젝트 메뉴의 최하단에 존재하는 프로젝트 속성에 들어가줍니다. 애플리케이션 항목에서 시작 개체를 선택해줍니다.선택해주지 않고 기본 설정으로 시작해도 괜찮습니다.또한, 리소스 부분에서 프로그램 아이콘 이미지를 설정할 수 있습니다. 빌드 항목에서 구성을 설정해줍니다.구성 내용으로는 활성 (Debug), Debug, Release, 모든 구성이 존재합니다.각자 원하는 내용으로 구성을 설정해주면 됩니다. 저는 모든 방식으로 구성되게끔 하기 위해 모든 구성을 선택해주었습니다. 게시 항목에서 배포된 프로그램이 게시될 위치를 설정해줄 수 있습니다.저는 현 C# 프로젝트 내부의 '게시..
2024.06.19 -
[C#] C# 클래스 파일 추가
최근에 처음 C# 언어로 개발하다보니 단순한 클래스 파일을 추가하는 방법조차 알지 못하여 시간을 낭비했었던 경험을 하였습니다.오늘은 매우 간단한 C# 클래스 파일을 추가로 생성하는 방법에 대해서 간단하게 정리해보겠습니다. # Visual Studio 2022 개발 툴에서 진행하였습니다. C# 프로젝트를 개발하고 빌드를 하게 되면 위와 같이 솔루션 프로그램이 빌드됩니다. 프로그램 내부를 펼쳐보면 기존에 빌드되어 포함된 파일들을 확인할 수 있습니다.관건은 이미 빌드된 상태인 프로그램에 어떻게 클래스 파일을 추가하여 사용할 수 있느냐 였습니다. 추가하는 방법은 매우 간단했습니다.내부 빌드 프로그램에 오른쪽 마우스 클릭을 하여 나온 항목들 중 추가 항목을 선택하여 자기가 추가하고자 하는 파일이나 요소들을 ..
2024.06.19 -
[Linux] nohup.out 서버 로그 Logrotate 로 분산 관리
Spring Boot 프로젝트 빌드 파일을 리눅스와 같은 서버에 배포하여 무중단으로 배포하게 되었을 경우, 로그가 nohup.out 이라는 로그 파일이 생성되며, 모든 동작에 대한 로그 내용이 계속해서 쌓이게 되는데, 이것을 계속 유지할 경우 과하게 용량이 커지게 되어 서버 자체에 접속이 안되거나 운영을 할 수 없게 될 수 있습니다. 더군다나 Spring Boot의 경우 내장 톰캣으로 운영되기 때문에 별도로 이 Spring Boot의 로그를 커스텀하여 관리하기에는 어려운 일입니다.따라서, Spring Boot 어플리케이션을 리눅스에 배포하게 되었을 때에는 리눅스에서 자체적으로 지원해주는 logrotate를 사용하여 관리해줄 수 있습니다. 이 logrotate를 활용하여 날마다 쌓인 로그들을 압축하여 일..
2024.06.17 -
[Visual Studio {N}] 패키지 설치 방법
개발자들이 프론트엔드 개발을 위해 흔히 사용하는 Visual Studio Code 가 아닌 C#, C++ 언어 개발할 때 주로 사용하는 Visual Studio 개발 툴에서 어떻게 하면 패키지들을 설치하고 사용하는지에 대한 과정에 대해 정리해보겠습니다.다른 개발 툴들처럼 그리 어렵지 않고 간단한 작업 과정을 통해 설치하고 사용할 수 있습니다. [방법 1](1) Visual Studio 커맨드 터미널 실행Visual Studio 상단 메뉴들의 보기 -> 출력 항목에서 터미널을 실행할 수 있습니다. (2) Package 설치Install-Package {설치할 패키지 명} 명령어로 원하는 패키지를 설치합니다. (3) Using 문 선언using Newtonsoft.Json;방금 설치한 패키지의 기능을..
2024.06.12