반응형

DEV 46

전자정부 spring framework 4.3.2 업그레이드 방법

작업개요 전자정부 스프링 프레임워크로 개발된 레거시 프로젝트를 상위 버전으로 마이그레이션 작업을 하게 되었습니다. 스프링 부트로 옮겨가고 싶었으나 스프링 3.0.5 버전으로 작성된 오래된 버전이어서 일단은 4.x 대로 올리는 작업을 우선하게 되었으며 제법 많은 시행착오를 거치면서 진행했기에 시간을 많이 할애하게 되었습니다.전자정부 프레임워크 공식 사이트에서 버전간 마이그레이션 가이드 문서가 제공되고 있으니 해당 문서를 참고해서 작업 하시는걸 추천드립니다. 첨에 이 문서를 제대로 보지 않고 진행해서 더 헤맸던것 같습니다. 제가 작업한 전자정부프레임워크 실행환경 버전은 중구난방이어서 딱히 버전을 몇으로 올렸다라고 말하기 힘드네요. 최신 실행환경의 버전이 4.1인데 스프링 버전은 5.3.20을 쓰고 있는걸 보..

DEV/미분류 2023.07.12

JSP 런타임 오류 - is exceeding the 65535 bytes limit

전자정부 스프링프레임워크 하에 개발을 진행중이시라면 프론트엔드 쪽은 jsp 페이지로 구성할텐데요. 최근에 스프링부트 마이그레이션 진행하면서 타임리프를 쓴다는걸 배웠으나 러닝커브가 가파르다는 얘기를 듣고 jsp를 버리기는 어렵겠구나 하는 생각을 해보았습니다. 새로운 언어의 문법을 익히는 데에도 시간이 소요되며 마이그레이션을 진행한다해도 어느 세월에 완료될지 알 수 없기에 그대로 jsp 를 고수하면서 개발을 진행하기로 합니다. 그러던 와중에 'is exceeding the 65535 bytes limit' 이러한 오류 문구를 발견하게 됩니다. 찾아보니 톰캣 서버가 jsp 페이지를 허용하는 크기를 넘어섰을 때 나타내는 오류 문구였습니다. 쉽게 말해 JSP 페이지 용량초과, 다른 말로 풀어낸다면 한페이지에 너무..

DEV/미분류 2023.07.04

[이클립스] 메이븐 Local Repository 폴더 위치 변경 방법

전자정부 프레임워크 버전이 너무 오래된 관계로 업그레이드 작업을 진행했습니다. 굉장히 많은 시행착오를 거쳤는데 스프링 프레임워크에 대한 이해가 부족한 무지에서 온 삽질의 연속이었습니다. 표준 프레임워크 업그레이드 가이드 문서가 있었음에도 검색능력의 부족으로 문서존재조차 몰라 맨땅에 헤딩하면서 진행했지만 결국 업그레이드에 성공하긴 했습니다. 스프링 프레임워크 3.x 버전에서 4.x 로 올리면서 전자정부 프레임워크도 업그레이드를 진행했는데 아래 가이드 문서를 참고하시면 좋을듯 합니다. 오늘은 프레임워크 업그레이드 작업중에 리포지토리 변경하는 작업이 필요했었는데 그 절차를 포스팅해보려 합니다. 아파치 메이븐 공식 홈페이지에 이미 소개되어 있는 방법이며, 이클립스 환경설정에서 진행이 가능합니다. 전자정부 프레임..

DEV/IDE 2023.07.03

[docker] 프로메테우스와 그라파나로 스프링부트 모니터링 환경 구성하기

앞서 springboot 프로젝트에 액츄에이터를 활성화 시켜서 docker 에 올리는 작업을 진행했습니다. 이제 프로메테우스(prometheus)와 그라파나(grafana)를 설치해 스프링부트 서버 모니터링 환경을 구성해보려 합니다. 프로메테우스는 스프링부트에서 제공해주는 메트릭스 정보를 수집하는 서버이고 그라파나는 이 데이터를 시각화 해서 보여주는 시각화툴입니다. 프로메테우스(prometheus) 설치 먼저 프로메테우스를 설치하기 위해 config 파일을 작성해줍니다. prometheus.yml 파일을 만들어 아래 내용을 작성해줍니다. 전역으로 15초 인터벌로 데이터를 수집하도록 설정이 되었으며 scrape_configs 내 접근 대상 정보를 기입해줍니다. job_name 으로 프로메테우스와 스프링액츄..

DEV/미분류 2023.07.01

[docker] 도커 컨테이너 서버 시간 변경하기

카카오봇 UDP 서버를 도커에 올렸는데 서버 시간이 맞지 않아서 이상동작을 하는 것을 확인했습니다. 확인해보니 서버 시간이 9시간 전으로 잡혀있더군요. 타임존을 셋팅해주지 않아서 디폴트로 다른 ZONE 시간대로 설정된 것으로 파악하였습니다. 서버 시간을 변경하는 방법은 직접 도커 컨테이너에 접속해서 시간 설정을 변경해주면 됩니다. 하지만 이렇게 하게 될 경우 이렇게 하게 될 경우 컨테이너를 재생성하거나 재실행 시 또 시간을 바꿔주어야 하는 문제가 발생합니다. 그래서 위 방법은 서버를 재실행하기 어려운 상황에서 임시방편으로 사용할 수 있는 방법입니다. 그래서 1회성이 아닌 도커 컨테이너 실행 시점부터 정상적인 시간대로 맞춰주기 위해 때 TIMEZONE 정보를 넣어주고 도커 이미지를 생성해주면 됩니다. 서버..

DEV/미분류 2023.06.22

[docker] spring boot 도커 환경에 빌드 배포하기

앞서 카카오톡 메신저봇 챗봇 서버를 돌리기 위해 윈도우11에 docker desktop 환경을 구축했었습니다. [docker] docker desktop 설치, 챗봇 서버 이미지 배포 테스트 윈도우에 WSL2 docker 설치 후 테스트 서버로 시운전까지 마쳐주고 설치해준 도커 서버는 삭제를 해주었습니다. 좀 더 편리한 환경을 위해 Docker Desktop을 설치해서 운용해보기로 합니다. 먼저 Docker D quantrader.tistory.com 이제 추가적으로 모든 개발 환경을 docker 에 올리기로 합니다. 단일 tomcat 을 띄워서 구동하는 방식보다 여러모로 장점이 있는 듯 합니다. 아직은 더 경험해보아야 하는 부분이지만 일단 한번 시작한 스터디는 끝을 봐야 할듯 합니다. spring bo..

DEV/미분류 2023.06.21

[docker] docker desktop 설치, 챗봇 서버 이미지 배포 테스트

윈도우에 WSL2 docker 설치 후 테스트 서버로 시운전까지 마쳐주고 설치해준 도커 서버는 삭제를 해주었습니다. 좀 더 편리한 환경을 위해 Docker Desktop을 설치해서 운용해보기로 합니다. 먼저 Docker Desktop 를 다운받아서 설치해줍니다. 아래 링크를 통해 진행 가능하며 디폴트로 설치 진행해주었습니다. https://www.docker.com/products/docker-desktop/ Download Docker Desktop | Docker Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today! www.docke..

DEV 2023.06.19

[docker] 윈도우 OS WSL2 에 우분투, docker 설치

MS는 윈도우 OS 환경에서 리눅스를 구동 시킬 수 있도록 WSL2 라는 가상화 서비스를 제공해주고 있습니다. 불편하게 리눅스를 또 다른 PC에 설치하거나 듀얼 부팅 구조를 만들거나 하지 않아도 된다는 것입니다. 개발 환경과 운영 환경 구축을 위해 docker 를 써보려 했는데 wsl2를 통해 쉽게 이 문제를 해결 할 수 있었습니다. WSL2 설치 WSL2 란? WSL 2는 Linux용 Windows 하위 시스템 아키텍처의 새로운 버전으로, Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해줍니다. WSL 2의 주 목표는 파일 시스템 성능을 높이고전체 시스템 호출 호환성을 추가하는 것입니다. 이렇게 WSL2 에 대해서 설명을 해주고 있으며 윈도..

DEV 2023.06.16

리액티브 프로그래밍 스터디 요약

리액티브 시스템 - 비동기 메시지 기반 통신으로 동작해야 하고 높은 응답성을 지녀야함 선언현 프로그래밍 방식 명령형 프로그래밍 방식 데이터 소스의 변경이 있을때마다 데이터를 전파, 스트림 형태로 구독하는 방식 리액티브 프로그래밍 코드는 코드의 간결함과 가독성에 유리한 메서드 체인의 형태로 표현 목표 함수의 형태 Publisher : 입력으로 들어오는 데이터를 Subscriber에 제공하는 역할 Subscriber : Publisher 로부터 전달받은 데이터를 사용하는 역할 Data Source : Publisher 의 입력으로 전달되는 데이터를 의미 Operator : Publisher 와 Subscriber 중간에서 데이터를 가공하는 역할 업데이트 중

DEV 2023.06.09

[이클립스] Open Resource 검색시 target 폴더 제외하기

이클립스 사용중에 CTRL+ALT+R 단축키를 이용하면 파일명 검색을 할 수 있는 Open Resource 창이 뜹니다. 보통 여기서 찾고자하는 jsp, js, xml, .do java파일등을 검색하는데 가끔 여기서 파일을 찾아서 수정을 하고 반영을 시켜도 원래대로 돌아가는 현상이 발생하곤 합니다. 빌드된 target 폴더 내 동일 파일명에 접근해서 수정을 하는 바람에 이런 현상이 나타나는 거라서 미연에 방지함이 좋습니다. target 폴더 내에 검색되는 파일은 검색결과에서 제외될 수 있도록 설정을 변경해보겠습니다. 먼저 이 설정은 프로젝트 별로 설정이 되는 부분이라서 왼쪽 Project Explorer 내 프로젝트 타이틀에 마우스 우클릭 팝업 메뉴를 이용해 Properties 에 접근해줍니다. 아래와 ..

DEV/IDE 2023.06.08
반응형