413 request entity too large 오류 기존 윈도우 서버에서 구동중이던 웹서버를 apache에서 nginx 로 교체하는 작업을 진행 후 몇가지 테스트를 진행하다 아래와 같은 오류를 맞이하게 됩니다. 413 request entity too large413 요청 엔터티가 너무 큽니다 2개의 서버에 같은 nginx 를 설치했는데 2개의 서버가 넘겨주는 메시지도 하나는 영어, 하나는 한글인데 왜인지 파악해보아야 겠습니다. 해당 오류를 찾아보니 클라이언트의 요청 사이즈가 제한에 걸려서 발생하는 문제인데 주로 첨부파일 업로드시 발생하는 부분이었습니다.아래와 같이 nginx 공식문서에서 해당 오류가 발생하는 경우를 설명해두었는데요 client_max_body_size 값일 수정해 클라이언트 요청..
들어가며 mysql에서 select 쿼리 결과를 JSON형태로 뽑아주는 함수가 있습니다. JSON_ARRAY, JSON_OBJECT, JSON_QUOTE 사용법은 공식 문서를 통해 확인할 수 있으며 MYSQL 5.7 버전 이상에서만 지원되는 함수입니다. https://dev.mysql.com/doc/refman/8.0/en/json-creation-functions.html MySQL :: MySQL 8.0 Reference Manual :: 12.17.2 Functions That Create JSON Values 12.17.2 Functions That Create JSON Values The functions listed in this section compose JSON values from co..
https://quantrader.tistory.com/176 [Node.js] Express 프레임워크로 Rest API 서버 만들기 node.js 와 express를 통해 API 서버를 만들어 기존 레거시 서버와 연동 개발을 진행했던 부분을 기록으로 남기려 합니다. SpringFramework Server Node.js + express API 서버, 두 서버 사이에 rest api 통신을 위한 quantrader.tistory.com https://quantrader.tistory.com/177 [Node.js] Express Rest API 서버 - mysql2 sequelize 연동 기존 Express 프레임워크로 API 서버 뼈대를 구축했었는데 이번에는 mysql DB 연동을 진행해보려 합니다..
기존 Express 프레임워크로 API 서버 뼈대를 구축했었는데 이번에는 mysql DB 연동을 진행해보려 합니다. 이번에 추가된 모듈은 dotenv, morgan, mysql2, sequelize, sequelize-cli 총 5개인데요. dotenv 는 환경변수를 .env 파일로 관리할 수 있도록 서포트해주는 모듈입니다. https://www.npmjs.com/package/dotenv dotenv Loads environment variables from .env file. Latest version: 16.3.1, last published: 2 months ago. Start using dotenv in your project by running `npm i dotenv`. There are 3..
node.js 와 express를 통해 API 서버를 만들어 기존 레거시 서버와 연동 개발을 진행했던 부분을 기록으로 남기려 합니다. SpringFramework Server Node.js + express API 서버, 두 서버 사이에 rest api 통신을 위한 서버 개발입니다. DB와 기타 복잡한 것들 보다는 API 기능에 충실한 기본을 만들고 확장해 나가려고 합니다. NPM(Node Package Manager)이 설치되어 있다는 가정하에 프로젝트 폴더 아래에 신규 프로젝트 폴더로 quant_api 폴더를 생성했습니다 .해당 폴더에서 터미널을 실행해 npm init 명령어로 node.js 프로젝트를 생성합니다. 다른 설정은 모두 그대로 두고 엔터키를 연타해서 기본 프로젝트로 생성하면 되는군요 PS..
스프링부트 환경에서 PWA(프로그레시브 웹 앱) 구성 테스트를 해보던 중 ngrok라는 것을 알게 되었습니다. 외부에서 내부 특정 포트로 포워딩 해주는 링크를 만들어주는 서비스로 집에서도 회사에서도 외부테스트 진행시 유용하게 사용이 가능하네요 아래 공식사이트에서 서비스를 제공하고 있으며 nrgok 프로그램을 다운받아서 사용하셔야 합니다. https://ngrok.com/ ngrok Ted Chou Product Manager, HENNGE Connect ngrok.com Mac OS, Windows, Linux 등 다양한 OS 플랫폼을 지원하며 도커와 기타 플랫폼도 지원하고 있습니다. 저는 윈도우 환경하에서 테스트를 진행할거라서 Windows 탭에서 제공하는 압축파일을 다운받고 압축해제해서 테스트를 진행..
작업개요 전자정부 스프링 프레임워크로 개발된 레거시 프로젝트를 상위 버전으로 마이그레이션 작업을 하게 되었습니다. 스프링 부트로 옮겨가고 싶었으나 스프링 3.0.5 버전으로 작성된 오래된 버전이어서 일단은 4.x 대로 올리는 작업을 우선하게 되었으며 제법 많은 시행착오를 거치면서 진행했기에 시간을 많이 할애하게 되었습니다.전자정부 프레임워크 공식 사이트에서 버전간 마이그레이션 가이드 문서가 제공되고 있으니 해당 문서를 참고해서 작업 하시는걸 추천드립니다. 첨에 이 문서를 제대로 보지 않고 진행해서 더 헤맸던것 같습니다. 제가 작업한 전자정부프레임워크 실행환경 버전은 중구난방이어서 딱히 버전을 몇으로 올렸다라고 말하기 힘드네요. 최신 실행환경의 버전이 4.1인데 스프링 버전은 5.3.20을 쓰고 있는걸 보..
전자정부 스프링프레임워크 하에 개발을 진행중이시라면 프론트엔드 쪽은 jsp 페이지로 구성할텐데요. 최근에 스프링부트 마이그레이션 진행하면서 타임리프를 쓴다는걸 배웠으나 러닝커브가 가파르다는 얘기를 듣고 jsp를 버리기는 어렵겠구나 하는 생각을 해보았습니다. 새로운 언어의 문법을 익히는 데에도 시간이 소요되며 마이그레이션을 진행한다해도 어느 세월에 완료될지 알 수 없기에 그대로 jsp 를 고수하면서 개발을 진행하기로 합니다. 그러던 와중에 'is exceeding the 65535 bytes limit' 이러한 오류 문구를 발견하게 됩니다. 찾아보니 톰캣 서버가 jsp 페이지를 허용하는 크기를 넘어섰을 때 나타내는 오류 문구였습니다. 쉽게 말해 JSP 페이지 용량초과, 다른 말로 풀어낸다면 한페이지에 너무..
앞서 springboot 프로젝트에 액츄에이터를 활성화 시켜서 docker 에 올리는 작업을 진행했습니다. 이제 프로메테우스(prometheus)와 그라파나(grafana)를 설치해 스프링부트 서버 모니터링 환경을 구성해보려 합니다. 프로메테우스는 스프링부트에서 제공해주는 메트릭스 정보를 수집하는 서버이고 그라파나는 이 데이터를 시각화 해서 보여주는 시각화툴입니다. 프로메테우스(prometheus) 설치 먼저 프로메테우스를 설치하기 위해 config 파일을 작성해줍니다. prometheus.yml 파일을 만들어 아래 내용을 작성해줍니다. 전역으로 15초 인터벌로 데이터를 수집하도록 설정이 되었으며 scrape_configs 내 접근 대상 정보를 기입해줍니다. job_name 으로 프로메테우스와 스프링액츄..
카카오봇 UDP 서버를 도커에 올렸는데 서버 시간이 맞지 않아서 이상동작을 하는 것을 확인했습니다. 확인해보니 서버 시간이 9시간 전으로 잡혀있더군요. 타임존을 셋팅해주지 않아서 디폴트로 다른 ZONE 시간대로 설정된 것으로 파악하였습니다. 서버 시간을 변경하는 방법은 직접 도커 컨테이너에 접속해서 시간 설정을 변경해주면 됩니다. 하지만 이렇게 하게 될 경우 이렇게 하게 될 경우 컨테이너를 재생성하거나 재실행 시 또 시간을 바꿔주어야 하는 문제가 발생합니다. 그래서 위 방법은 서버를 재실행하기 어려운 상황에서 임시방편으로 사용할 수 있는 방법입니다. 그래서 1회성이 아닌 도커 컨테이너 실행 시점부터 정상적인 시간대로 맞춰주기 위해 때 TIMEZONE 정보를 넣어주고 도커 이미지를 생성해주면 됩니다. 서버..
앞서 카카오톡 메신저봇 챗봇 서버를 돌리기 위해 윈도우11에 docker desktop 환경을 구축했었습니다. [docker] docker desktop 설치, 챗봇 서버 이미지 배포 테스트 윈도우에 WSL2 docker 설치 후 테스트 서버로 시운전까지 마쳐주고 설치해준 도커 서버는 삭제를 해주었습니다. 좀 더 편리한 환경을 위해 Docker Desktop을 설치해서 운용해보기로 합니다. 먼저 Docker D quantrader.tistory.com 이제 추가적으로 모든 개발 환경을 docker 에 올리기로 합니다. 단일 tomcat 을 띄워서 구동하는 방식보다 여러모로 장점이 있는 듯 합니다. 아직은 더 경험해보아야 하는 부분이지만 일단 한번 시작한 스터디는 끝을 봐야 할듯 합니다. spring bo..