본문 바로가기
반응형

IT/Spring17

반응형
[Spring] 톰캣 재시작 없이 Java 파일 변경 적용하기 - Spring Loaded [Maven] 톰캣으로 스프링 프로젝트를 개발하면서 은근 시간을 많이 잡아먹는 톰캣 재부팅.. JAVA 소스 한글자만 수정해도 반영되려면 톰캣을 재부팅 해야반영된다. 새로운 기능 개발을 하면서 이것저것 테스트할 때 수십법 재부팅을 해야하는데.. ​ 이게 개인 프로젝트 급이면 재부팅 머 10~30초 이내라지만, 기업급 프로젝트는 재부팅도 꽤나 많은 시간을 차지한다..재부팅 눌러놓고 커피나 뽑으러 가거나 했었지만 이게 은근 흐름을 끊고 그 몇분을 다 모아보면 꽤나 많은 시간이 허비 된다는 것을 느꼈다 ㅋㅋ... ​ 그래서 java파일 변경 후 톰캣 재부팅이 필요없는 Spring Loaded 적용하는 법을 알아보자. 1. Spring Loaded 설치 https://mvnrepository.com/artifact/org.s.. 2021. 5. 3.
[WAS 이슈 해결 #2] MAT 힙 덤프 분석으로 JAVA 메모리 누수(Memory Leak) 잡기 - 톰캣 힙메모리 증가 문제 / Out of Memory 저번 포스팅에서 CPU사용량, 힙메모리 사용량이 순간적으로 치솟아 서버가 다운되는 현상에 대해서 포스팅 했다. 이번에는 이 문제의 원인을 어떻게 밝혀냈고 해결했는지에 대해서 알아보자. https://extsdd.tistory.com/257 [WAS 이슈 해결 #1] java.lang.OutOfMemoryError: GC overhead limit exceeded 로 인한 Tomcat 서버 다운 / CPU 사용량 최근 운영중인 웹서비스가 비규칙적으로 다운되는 현상이 있었는데, 발생했던 문제와 그 문제를 해결하는 과정에 대해서 포스팅을 해보려고 한다. 서버 운영을 하는 실무자들에게 도움이 되었 extsdd.tistory.com 1. 힙메모리(Heap Memory) 덤프 -XX:+HeapDumpOnOutOfM.. 2021. 4. 30.
[WAS 이슈 해결 #1] java.lang.OutOfMemoryError: GC overhead limit exceeded 로 인한 Tomcat 서버 다운 / CPU 사용량 폭증 최근 운영중인 웹서비스가 비규칙적으로 다운되는 현상이 있었는데, 발생했던 문제와 그 문제를 해결하는 과정에 대해서 포스팅을 해보려고 한다. 서버 운영을 하는 실무자들에게 도움이 되었으면 좋겠다. 문제 발생 ​ 첫 발생이 3월 초쯤 이었던가?.. 운영중인 웹 서비스가 종종 다운되는 현상을 겪었다. 운영 서버에 요청을 보내면 처리되지 않다가 결국 몇 분 뒤 Tomcat 서버가 죽어 위처럼 Service Unavailable 메시지를 띄었다. 보통 부하 분산과 장애에 대비해 WAS를 이중화 해놓기 때문에 WAS하나가 죽어도 다른 WAS가 처리해 줄껀데, 브라우저가 응답대기 상태도 아니고 Service Unavailable 을 띄운걸로 봐서는 WAS두개가 모두 죽은 것 같았다. ​ 어떤 문제가 있었던걸까? 여태.. 2021. 4. 5.
[Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK 자 메이븐 빌드를 했는데 위처럼 JRE대신 JDK를 써보라는 오류가 발생했다. 원인은 간단하다. JRE로 빌드를 못한다는거다. JDK로 경로를 다시 잡아주면 된다. 1. Installed JREs 재설정 이클립스 상단 윈도우 버튼(1)을 누른뒤 Preferences버튼을(2) 눌러주자! 1. 자바 탭을 누른다. 2. Installed JREs 탭을 누른다. 3. 여기를 보면 지금 Path가 JRE로 잡혀있다.. 분명... 나랑 환경설정하면서 JDK도 설치했는데 왜..! JRE로 잡고 있는거야 ㅡㅡ.... 그래서.. 수동으로 Path를 잡아줘야한다. 4. Add 버튼을 눌러주자. 1. 창이나오면 Standard VM으로 나와있을텐데 그냥 두면된다. 2. 바로 Next를 눌러 넘어가주자. 1. 자 여기서 J.. 2020. 6. 3.
[Spring/eGov] #10 DB 조회 쿼리 및 결과 Console 창에 출력하기 / Log4j2.xml 수정 / 콘솔 로그 https://extsdd.tistory.com/114 [Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그 https://extsdd.tistory.com/113 [Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자.. extsdd.tistory.com 자 우리가 저번까지 DB에서 데이터를 조회해보고 잘 되는지 확인헀다. 하지만 쿼리를 조회하더라도 Console창에 찍히는게 없어서, 실제로 어떤 구문이 실행됐는지, 결과는 나왔는지 알 .. 2020. 5. 31.
[Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그 https://extsdd.tistory.com/113 [Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / https://extsdd.tistory.com/102 [Spring/eGov ] #6 웹 서비스 만들기 2.. extsdd.tistory.com 자 저번시간까지 우리가 만든 마리아 DB를 내 스프링 프로젝트와 연동했고, 테스트로 데이터도 넣고, 컨트롤러에서 select까지 해보면서 포스팅을 마쳤다. 오늘 알아볼껀 실제로 어떻게.. 2020. 5. 31.
[Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / 원리 / 구조 / Sql.xml https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / https://extsdd.tistory.com/102 [Spring/eGov ] #6 웹 서비스 만들기 2 / 요청 URL 파라미터 가져오기 / Debug 방법 / 디버깅 하는법 / @Model extsdd.tistory.com 자 우리가 마지막으로 했던게 사용자 요청 URL.. extsdd.tistory.com 자 저번 시간까지 이클립스와 Maria DB를 MyBatis라는 친구로 연동을 시켰다. 아. 전에 MyBatis가 먼지 설명을 안했는데 간단하게 설명하자면 과거에 JAVA코드로 쿼리로 DB에 있는 데이터를 조회하려고.. 2020. 5. 31.
[Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / 기본 Sample 프로젝트 완전히 내 프로젝트로 만들기 https://extsdd.tistory.com/102 [Spring/eGov ] #6 웹 서비스 만들기 2 / 요청 URL 파라미터 가져오기 / Debug 방법 / 디버깅 하는법 / @Model extsdd.tistory.com 자 우리가 마지막으로 했던게 사용자 요청 URL에서 데이터를 가져오는 것을 했다. 가져온 값의 데이터가 1이면 네이버, 2면 다음, 모두 아니면 구글페이지로 넘겨줬다. 대략 위와같은 코드로 마무리 했는데, 저렇게 어떤 변수의 값이 대놓고 찍혀있는것을 우리가 하드코딩이라고 한다. 하드코딩 hard coding 자 하드코딩의 사전적 의미를 보면 데이터를 코드 내부에 직접 입력하는 것 이라고 한다. 즉.. 저 naver.com, daum.net, google.com 이런 값들이 코드.. 2020. 5. 31.
[Spring/eGov ] #6 웹 서비스 만들기 2 / 요청 URL 파라미터 가져오기 / Debug 방법 / 디버깅 하는법 / @ModelAttribute / searchVO https://extsdd.tistory.com/101 [Spring/eGov ] #5 웹 서비스 만들기 1 / 컨트롤러 생성 / VO 생성 / Controller / 다른 URL 페이지 포워딩 하� https://extsdd.tistory.com/100 [Spring/eGov] #4 스프링 Sample 기본 예제 프로젝트, 패키지 이름 바꾸기 / 파일 찾기 extsdd.tistory.com 저번 시간에 드디어 예제 프로젝트의 정체성을 완전히 내걸로 만들어놨.. extsdd.tistory.com 저번시간에 사용자가 URL요청을 하면, 서버가 다른 페이지로 넘겨주는 기능을 구현했다. 그런데 만약 여러 주소중 알맞은 주소로 포워딩 시켜준다고 하면 reqUrlNaver.do , reqUrlDaue.do, re.. 2020. 5. 24.
[Spring/eGov ] #5 웹 서비스 만들기 1 / 컨트롤러 생성 / VO 생성 / Controller / 다른 URL 페이지 포워딩 하기 https://extsdd.tistory.com/100 [Spring/eGov] #4 스프링 Sample 기본 예제 프로젝트, 패키지 이름 바꾸기 / 파일 찾기 extsdd.tistory.com 저번 시간에 드디어 예제 프로젝트의 정체성을 완전히 내걸로 만들어놨다 ㅎㅎ이제 진짜 내프로젝트다. 이제 진짜 간단한 웹서비스를 만들어 볼껀데, 만드려는 서비스는 웹페이지를 포워딩 시켜주는 서비스 이다. 포워딩이란 다른곳으로 안내해준다는 건데, 사용자가 특정 URL로 접근하면 사용자가 가진 데이터를 확인해서 어디로 보내줘야할지 서버가 판단해주는 역할을 수행할 예정이다. 잔말 말고 컨트롤러를 추가해보자!! 1. Controller 추가 일단 저번에 우리가 이 포워딩 기능을 담당하는 패키지가 fwd(fowarding).. 2020. 5. 23.
[Spring/eGov] #4 스프링 Sample 기본 예제 프로젝트, 패키지 이름 바꾸기 / 파일 찾기 https://extsdd.tistory.com/99 [Spring/eGov] #3 스프링 기본 구조 / Sample 예제 프로젝트 분석 / 원리 / 전자정부프레임워크 / 컨트롤� extsdd.tistory.com 저번시간에 기본적인 스프링 프로젝트가 어떤식으로 돌아가는지 알아보았다. 막판에 카페 닫을시간이 되서 급히 마무리한 감이있는데, 오늘도 열심히 진도를 빼보자! 오늘 해볼일은 바로 전자정부 예제로 들어있는 Sample 예제 프로젝트를 내 프로젝트로 바꿔보려고 한다. 이게 무슨말이냐고!? 자 우리가 셈플 프로젝트를 생성하면 패키지 디렉토리의 이름들이 egovframework.example 로 되어있고, 이름들이 sample 머시기로 되어있으니까 아무리 생각해도 간지가 안난다. 내 프로젝트는 따로 이.. 2020. 5. 23.
[Spring/eGov] #3 스프링 기본 구조 / Sample 예제 프로젝트 분석 / 원리 / 전자정부프레임워크 / 컨트롤러 Controller / 서비스 Service / @RequestMapping https://extsdd.tistory.com/98 [Spring/eGov] #2 아파치 톰캣 설치 및 스프링 프로젝트 연동 / 셈플 예제 / WAS 구동 / 이클립스-톰캣 �� 저번시간까지 스프링 예제에 대해서 알아보았다. 이젠 이걸 실제로 구동을 시켜야 함으로 아파치 톰캣 8.0 위에 올릴 예정이다. 혹여나 아직도 아파치 톰캣에대한 개념이 잡히지 않았다면 https:// extsdd.tistory.com 자 우리가 저번시간까지 전자정부프레임워크에서 만들어놓은 기본 예제를 실행시켰다. 일단. 이프로젝트가 저번에 실행시켜서 보아하니 간단한 게시판 웹 페이지를 구현해 놓은 것같다. 이제 우리가 웹 서비스를 만들꺼니 당연히 구조를 알아야한다. 하지만 나도 어릴때부터 컴퓨터를 공부했지만, 아무것도 모르는 노.. 2020. 5. 21.
[Spring/eGov] #2 아파치 톰캣 설치 및 스프링 프로젝트 연동 / 셈플 예제 / WAS 구동 / 이클립스-톰캣 연동 / URL PATH 수정 / 동적 웹페이지 저번시간까지 스프링 예제에 대해서 알아보았다. 이젠 이걸 실제로 구동을 시켜야 함으로 아파치 톰캣 8.0 위에 올릴 예정이다. 혹여나 아직도 아파치 톰캣에대한 개념이 잡히지 않았다면 https://extsdd.tistory.com/79?category=853192 [아마존 AWS EC2] #2 웹 서비스 구축하기 / 아파치 vs 톰캣 차이점 / 서버란? / WEB서버 vs WAS서버 / Apache https://extsdd.tistory.com/78 [아마존 AWS EC2] #1 EC2 서버 접속하기 / PUTTY 다운 및 설치 / PEM→PPK 변환 / Server refused our key https://extsdd.tistory.com/77 [아마존 AWS 무료 EC2 서버 생성하기.. exts.. 2020. 5. 19.
[Spring/eGov] #1 새 프로젝트 생성 / 스프링 / 전자정부프레임워크 / cannot change version of project facet dynamic web 스프링 관련 포스팅을 마지막으로 쓴게 2019년 8월 말이라니..ㅋㅋ 벌써 1년이 다되가는 시간이 흘러버렸다..ㅋㅋㅋ 이번에 만들어볼 웹 서비스는 특정 URL을 요청하면 다른 URL로 자동 포워딩해주는 서버를 구축하려고 한다. 1. 개발 환경 설정 https://extsdd.tistory.com/49?category=851852 [스프링/전자정부 프레임워크 입문] #3 개발환경 셋팅 / JDK1.8 / 전자정부 프레임워크 설치 1. JDK 설치 2. 전자정부 프레임워크 설치 1. JDK 설치 1. JDK 설치 비전공자들을 위해 JDK가 무엇인지 간단하게 알아보자. 전편 글들을 읽으면 분명 우리가 사용하려고하는 프레임워크는 JAVA 플랫폼 �� extsdd.tistory.com 개발 환경 설정은 내가 작년.. 2020. 5. 18.
[스프링/전자정부 프레임워크 입문] #3 개발환경 셋팅 / JDK1.8 / 전자정부 프레임워크 설치 1. JDK 설치 2. 전자정부 프레임워크 설치 1. JDK 설치 1. JDK 설치 비전공자들을 위해 JDK가 무엇인지 간단하게 알아보자. 전편 글들을 읽으면 분명 우리가 사용하려고하는 프레임워크는 JAVA 플랫폼 기반이라고 했다. 여기서 알 수 있듯이 분명 JAVA라는 프로그래밍 언어를 쓴다는 것을 알 수 있다. ​ JDK 는 Java Development Kit의 약자로써, JAVA언어로 프로그래밍을 할 수 있도록 도와주는 역할을 한다. 즉, 스프링이던 전자정부 프레임워크던 JAVA언어로 우리가 프로그래밍을 하면 최종적으로 JDK라는 놈이 이걸 프로그램으로 바꿔준다는 이야기다. JDK = JAVA코드를 프로그램으로 바꿔줌 다시 본론으로 돌아와서 JAVA JDK는 1.8을 설치해야한다. 뭣 모르고 버전.. 2020. 4. 21.