Spring Batch 특정 Job만 실행하기
Spring Batch 환경을 구성할때 Job이 여러개 있고 이것을 실행시켰을때 어떤 결과가 나올까? 정답은 "모든 Batch Job이 실행이 된다. " 이다. 내가 만든 Job 중 특정 Job만 실행을 시키고 싶다면 어떻게 해야 할..
키자드에 등록된 총 280개의 포스트를 확인하실 수 있습니다.
Spring Batch 환경을 구성할때 Job이 여러개 있고 이것을 실행시켰을때 어떤 결과가 나올까? 정답은 "모든 Batch Job이 실행이 된다. " 이다. 내가 만든 Job 중 특정 Job만 실행을 시키고 싶다면 어떻게 해야 할..
A bean with that name has already been defined ~ 관련 오류 *************************** APPLICATION FAILED TO START *************************** Description: The bean 'sampleChunkJob', defined in clas..
Spring Framework의 개발환경이 Springboot 기반으로 변함에 따라 Spring Batch의 개발방식도 이전과는 많이 달라졌다. 필자가 전에 쓴 Spring Batch에 관한 글은 Springboot 기반이 아니라서 Batch Job을 작성하..
지난 글에서 다뤘던 Springboot Batch Chunk Example에서 소스들을 살펴 볼때 Listener도 살짝 나왔다. 우리가 정의한 Job이나 Step 실행 전 후로 필요한 공통 작업을 기술하기 위해 주로 사용되며 사용된다. 이..
Chunk 방식은 정형화된 방식이라면 Tasklet 방식은 비교적 자유로운 방식이다. 따라서 실제로 batch를 사용할때 적어도 내가 경험해본 프로젝트에서는 Tasklet 방식을 훨씬 선호하였다. 이것도 Chunk와 마찬가지로..
지난 포스팅으로 Chunk 방식과 Tasklet 방식의 Spring Batch에 대해 알아보았다. 이제는 이 방식을 조금 응용하여 이를 병렬처리하는 방법에 대해 알아보겠다. Chunk와 Tasklet과 마찬가지로 이것도 매우 직관적이..
Spring Batch의 기본적인 기능들을 지난 포스팅들을 통해 알아보았다. 이번에 알아볼 Skip/Retry도 Spring Batch에서는 기본적으로 제공을 하는 기능이다. 간단한 예제를 통해서 알아보자. us-500.csv (웹에서 쉽..
Minio를 이것저것 설정하고 되랏! 하며 기동을 시키면 다음과 같이 오류가 나는 경우가 있다. Unable to initialize server switching into safe-mode: Unable to initialize sub-systems: Unable to initialize..
A, B라는 서버가 있고 A라는 서버의 특정 폴더를 B서버로 옮기고 싶을때 사용하는 방법이다. A라는 서버에서 FTP로 파일을 받아서 그걸 B서버에 전송을 해줄수도 있지만 SCP를 이용하면 훨씬 간편하게 진행할 수..
MSA 프로젝트를 준비하며 여러가지 준비사항이 있지만 느슨한 결합을 위해 MQ (Message Queue) 가 필요하다. 여러가지 이런 메세징 기능이 있는 툴이 있지만 RabbitMQ를 일단 사용해보려한다. 어떻게 설치하는지..
지난 포스팅으로 RabbitMQ를 설치하는 방법에 대해서 알아보았다. 이 설치한 RabbitMQ와 management를 띄워놓고 Springboot를 연동하여 비동기통신을 하는 간단한 샘플을 만들어보자. 설치에 앞서 간단한 개념을..
Docker image를 빌드하고 다음에 또 사용하고 싶은 경우가 있다. 그럴때 어떻게 하는지에 대해서 알아보자. 사전준비 일단 빌드를 하는 과정은 건너뛰고 간단하게 보여주기 위해 아무거나 Docker Hub로 pull을 받..
docker-compose는 조금 더 docker를 편하게 사용할수 있도록 해주는 도구이다. Docker 플러그인 같은 개념이라고 생각하면 이해가 편하다. 근데 뭘 조금 더 편하게 해줄까? docker에서 수행되는 일련의 작업(eg. b..
IT 기술이 급변하면서 많은 회사들이 이를 따라가기 위해 열심히 노력을 하고 있다. (아닌곳도 있고..) 필자는 아키텍트 직군이다. 아키텍트도 일반적으로 여러 기준(TA, AA, SA, DA 등등)으로 나뉘어져 있는데 Ku..
CSV파일은 지금은 많이 안쓰이지만 그래도 종종 사용이 된다. 여러가지 OSS가 이를 지원해주고 있지만 그중 간단하게 CSV파일을 파싱할 수 있는 방법을 소개한다. 일단 univocity-parsers dependency 추가가 필요..
springboot는 이게 정말 왜 되지? 할 정도로 내장되어 있는 편리한 기능들이 많이 있다. 이번에 소개할 내용도 그렇다. 내부 로직을 까보지 않아서 정확한 동작원리는 파악하지 못했지만 그래도 급하게 DB 연동해..
엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하는..
Pipeline으로 Job을 실행하고 실행결과에 따라 분기처리를 하고 싶은 경우가 생겼다. 예를 들면 a라는 job이 실행이 되었고 이 job이 성공을 하면 b라는 job을 수행하고 실패를 하면 c라는 job을 수행하도록 하고..
Monolitic 어플리케이션을 여러개의 서비스로 나누다 보니 서비스도 많아지고 그에 따라 인스턴스의 개수도 엄청나게 늘어난다. 또한 오토스케일링 기술을 사용하며 동적으로 ip가 바뀌기도 한다. 그래서 기존과..
지난 시간에 Eureka Server와 Eureka Client를 구성해 봄으로써 Service Registry, Discovery에 대해서 알아보았다. MSA처럼 여러개의 API Service 들을 생성하고 그것을 Eureka에 regist까지 해봤다. 이제 이 Eur..
Eureka를 사용하면서 application.properties (application.yml) 에서 설정값에 대한 공부를 자세히 하고싶은데 자료를 찾는것이 쉽지 않다. 대부분의 포스팅은 매번 사용하는 비슷한 설정만 사용하고 그 외의 자..
하는김에 Eureka application.properties Configuration 번역에 이어 Zuul도 해놓으려고 한다. 번역의 정확도는 구글 번역에 문의를 해보길.. Name default Desc zuul.add-host-header false 프록시가 호스트 헤더..
MSA를 하면 당연히 어플리케이션 개수가 많아지고 그에 따라 어플리케이션마다 있는 설정 파일도 많아진다. 이렇게 되면 관리의 어려움이 생기고 이번에도 이런 관리의 어려움을 해결해주기 위해 Spring Cloud 형..
springboot application을 기동하니 기동하자마자 로그 몇줄 찍히고는 바로 terminated 상태가 되어버린다. 오류도 나오지 않는다.. logging.level을 debug로 내리니 그래도 몇줄 더 보인다. 그리고 맨 마지막에는..
현재까지 Service Discovery, API Gateway, Configuration Externalization 등을 통해 MSA 수박 겉을 핥아보고 있다. 간단하게 현재까지 이런저런 기능을 구현했었는데 장애가 발생하는 경우에 대해서는 다룬적이..
성능테스트를 하는 방법은 여러가지가 있지만 가장 간단하게 할수 있는 도구중 하나인 Apache JMeter에 대해 알아보자. Apache JMeter는 오픈 소스 소프트웨어로 무료로 사용할 수 있고 JAVA Application이다. 설..
Hystrix가 무엇인가? 에 대한 내용은 지난 시간에 다루었다. 열심히 이 method, 저 method에 @HystirxCommand를 달아 놓고 이게 잘 동작하고 있는지 직접 확인을 하는건 작은 프로젝트에서는 가능할지 몰라도 서비..
세션 클러스터링 관련 테스트를 해야 할 일이 생겼다. 이런 테스트를 하기 위해 서버 환경과 비슷하게 web 서버를 설치해야 했다. web 서버로 선택한것은 nginx. 내 로컬 윈도우에 설치를 해보자. nginx: download..
지난번에 간단하게 nginx 설치를 해봤다. 설치를 했으면 써먹어보자. 일단은 was와 연동을 하는 작업을 해보자. 보통은 web-was 연동을 해서 was라고 표현을 했지 프록시 서버 역할을 할거라 연결할 수 있는 무엇..
springboot는 내장 톰캣을 사용하기에 server.xml 이라던지 context.xml 등등의 xml 설정파일이 없다. 하지만 이런 설정파일을 java config로 대체할 수 있다. 기존에 server.xml 에서 tomcat 간 session clusteri..
Springboot 내장 톰캣을 사용할때 session clustering에 대해서 글을 썼는데 역순으로 글을 쓰는것 같다. 이 글을 쓸때 이미 구성되어 있는 Tomcat server.xml 의 clustering 부분을 가져다가 썼는데 그것에 대해..
tomcat을 사용하다보면 종종 다음과 같은 오류가 발생한다. # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 134217728 bytes f..
오래된 프로젝트의 배포환경을 구성해달라는 요청을 받았다. ant 로 빌드스크립트를 작성하고 빌드를 수행했는데 다음과 같은 오류메세지가 나오면서 빌드가 정상적으로 되지 않았다. build-project: [javac] Comp..
FHD (1920*1080) 영상을 FFmpeg을 이용하여 여러가지 사이즈의 동영상으로 인코딩을 해 보았다. 그리고 아주 적은 표본이긴 하지만 대략적인 테스트한 결과를 적어본다. 테스트 환경 CPU (2Core) : Intel Xeon Sil..
MSA (Micro Service Architecture) 가 이쪽 업계에서는 아주 뜨겁다. JD를 봐도 MSA 경험자 찾는 회사들이 엄청나게 많아진걸 보면 대세가 되어가고 있는듯 하다. 조금 공부를 해보니 그렇게 될 수밖에 없는듯 하..
이클립스에서 Maven project를 import를 하면 다음과 같이 No marketplace entries found to handle maven-compiler-plugin:3.8.1:compile in Eclipse. 오류가 발생을 하는 경우가 있다. 이것은 필자의 경우는 ST..
예전에 파일 업로드를 위한 서버를 구성을 한적이 있었다. 들어온 요청(파일)을 특정 경로에 저장시켜주는 역할을 하는 하나의 JSP 파일을 가진 초간단 파일 업로드 서버였다. 이정도 역할만 해주면 되어서 더이..
성능테스트를 할때 이슈가 발생을 하였다. 성능이 생각만큼 나오지 않아서 원인을 찾다가 한가지 흥미로운 사실을 발견했다. MSSQL은 DataType에 따라서 우선순위가 존재하는데 NVARCHAR가 VARCHAR보다 더 높은 우..
지난번에 MinIO를 공식홈페이지에서 나온대로 설치를 해보니 불편한점이 있었다. 실행, 중지에 대한 별도의 script를 제공하지 않아서 MinIO에 대해서 잘 모르는 사람들은 이를 기동하기 힘들수도 있다는 생각이..
MinIO를 설치하면 최초의 계정은 minioadmin/minioadmin 이다. 최초 minio를 실행하면 정상적으로 실행이 되고 지정한 위치에 data 폴더가 생긴다. 그리고나서 두번째 실행을 하면 처음에 실행했던 방법으로는 되..
linux를 사용하며 자주 사용하는 명령어에 대해 정리한다. zetawiki.com/를 참조하였다. 리눅스 종류 확인 $ grep . /etc/*-release 다른 계정으로 전환 - testuser 계정으로 전환 $ su - testuser 특정 명령어 ro..
MinIO 설치를 해보고 로그인까지 성공을 했으면 그다음은 사용을 하는 방법을 알아야 한다. 사실 인터페이스가 너무너무 직관적이라 따로 글을 쓸 필요도 없지만 그래도 hoxy 모를 사용자를 위해 글을 써본다. Mi..
영상을 다뤄야 하는 업무가 주어졌다. FFmpeg 이라는 처음 들어보는 프로그램을 사용해서 인코딩 및 디코딩 등의 업무를 해야 한다길래 조금 알아보니 이건 멀티미디어쪽에서는 엄청나게 유명한 프로그램이었다...
지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용하는것은 앙꼬없는 찐빵같은 것이다. 어플리케이션과 연..
MinIO JAVA API 사용하는법 예제를 통해 쉽게 알아보기 지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용..
minio를 실행시킬때 처음에는 잘 되는데 두번째부터는 이와 같은 메세지를 경험할 수 있다. "Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately" 최초..
이번 프로젝트는 의사소통수단으로 slack을 사용한다. slack을 사용하는 목적은 의사소통 뿐만 아니라 webhook을 이용해서 다양한 모니터링 도구와의 연동에 있다. slack에 들어가면 채널(채팅방이라고 생각하면..
기존에 rpm을 통해 설치한 package가 있는데 이를 지우고 싶은 경우가 있다. 가령 다음과 같은 상황이다. 사정상 더 낮은 버전의 zabbix를 설치해야 하는데 이미 최신버전이 깔려있어서 설치를 할 수 없다. 그래..
지난번에는 rpm으로 설치한 package에 대해 삭제를 했는데 이번에는 yum으로 설치한 package를 삭제하는 방법에 대해 알아보겠다. yum 으로 설치된 package 목록을 확인한다. $ yum list installed | grep [설치한..
CentOS에 zabbix 설치를 해보자. zabbix는 zabbix를 하나 딱 설치하고 끝나는 것이 아니라 apache, php, mysql 등 여러가지를 같이 설치를 해주고 연동해줘야한다. 그만큼 설치난이도는 높은 편이다. 설치한 환경..
설치를 다 마치고 Zabbix Setup 화면을 띄웠다면 90프로 이상은 다 한것이라고 보면 된다. 남은 부분을 얼른 마무리를 하고 모니터링을 하러 가보도록 하자. Welcome to Zabbix! 그간의 피로를 씻게 해주는 화면..
지난시간까지는 Zabbix Collector (Server) 에 대한 설치 및 설정을 했다면 이제 이 Server에 붙일 Zabbix Agent에 대한 설치 및 Zabbix Server와의 연동을 설정을 할 차례다. Zabbix Agent 설치 모니터링을 할 서..
전시간에는 Zabbix Agent 설치 및 Collector 서버와의 연동, 호스트 생성 등을 진행했다. 이제 이렇게 만들어진 Host를 바탕으로 Dashboard를 구성하여 본격적으로 모니터링 작업을 해보자. 일단 frontend에 접속..
Jenkins가 설치되어 있는 서버가 외부와의 통신이 되는 환경이면 좋겠지만 그렇지 않은 환경이 여지껏 더 많았다. 따라서 Jenkins를 설치할때도 이미 많이 사용하고 있는 플러그인들을 다 가지고 있는 Jenkins를..
우리가 아는 jenkins의 익숙한 모습이다. 물론 과거 hudson부터 써온지라 이정도 디자인만 되어도 참 훌륭하다고 생각한다. 하지만 뭔가 개발은 하기 싫고 이런걸 꾸미고 싶은 날도 있다. 어제는 티스토리 코드블..
Docker를 설치하고 기분좋게 시작을 하려고 하는데 발생하는 오류가 있다. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? docker 돌고 있는거 맞냐? 라는..
docker를 사용하려면 기본적으로 외부망(인터넷이 되는 환경)이 되는 환경이어야 하는데 폐쇄망에서 docker를 설치해야 하는 경우도 있다. 이럴 경우 어떻게 docker를 어떻게 설치하는지 알아보자. 폐쇄망 Docker..
폐쇄망에 docker 설치를 마쳤다면 이제 Image를 설치해보자. 그냥 안되는걸 알면서 hello-world 되나 한번 쳐본다.. 역시 안된다. 인터넷이 되는 곳에서 가지고 와야 한다. 그럼 어떻게 가지고 올까? 이방법 저..
지난번에는 linux 환경에 docker를 설치해서 이런저런 container 들을 등록하고 실행도 시켜봤었다. 이제 Windows10 환경에서 docker를 설치하고 사용해야 하는 상황이 되었다. Windows에 설치하려고 보니 제약이..
Docker를 사용하면서 가장 많이 사용하게 될 명령어들을 소개하고자 한다. 이전에 Docker에 관련된 글을 쓰면서 조회, 실행 방법은 소개가 되었지만 정리 차원에서 한번 더 다루고자 한다. Container 실행 $ docke..
지난번에 Docker의 Container를 컨트롤 하는 방법에 대해서 알아봤었고 이제 image 를 조회하고 추가하고 삭제하는 방법에 대해서 알아보겠다. Docker image 추가 $ docker pull tomcat docker 의 image를 가지고..
docker image를 변경한 뒤 재배포를 위해 build를 시도했다. unable to prepare context: unable to evaluate symlinks in Dockerfile path: CreateFile C:\Users\User\Dockerfile: The system cannot find the f..
이전 포스팅까지는 Thymeleaf 의 문법을 위주로 보았다면 이번에는 layout 을 구성하는 방법에 대해서 알아보겠다. 기존에는 tiles를 활용하여 이런 layout을 구성하고는 했는데 Thymeleaf를 사용해서도 가능하다...
우리가 보통 사용하던 Spring MVC + RDBMS 패턴은 Blocking IO 방식이다. Blocking IO 방식이라는 것은 요청을 처리하기 전까지는 다른 작업을 수행할 수 없는 상태라는 것을 말한다. 동시에 여러 요청을 처리하기..
properties 파일을 구성할때 암호화가 필요한 부분들이 존재한다. 가장 대표적인 예가 datasource의 username, password 부분이다. 이것들은 정말 다양한 방법을 통해서 암호화가 되고 있지만 요즘 추세는 datasou..
Jasypt를 사용해서 암호화를 하는 방법은 지난번에 포스팅을 했다. Spring properties 파일의 내용 암호화하기 (with Jasypt) properties 파일을 구성할때 암호화가 필요한 부분들이 존재한다. 가장 대표적인 예가..
Host에 있는 파일을 Docker Container로 복사를 해야할 상황이 생겼다. 방법은 간단했다. Host -> Container Copy $ docker cp /source/* contanier_name:/target/ 이런식으로 docker cp 명령어를 활용해서 하면..
Zabbix를 사용하는 곳이 점차 늘고 있다. 사용을 해보니 왜 많은 곳에서 사용하고 있는지 알것 같다. 이제는 사용자의 입장에서 설치하고 연결하고 모니터링하는 역할을 수행해야 하기에 확실히 알고 넘어가야 할..
log4j는 한때 위용을 떨쳤던 강력한 logging framework였다. 하지만 세월이 흐르고 기술은 발전하여 더 나은 logging framework들이 등장했다. 성능적인 측면이나 기능적인 측면에 더욱 발전하여 전환은 선택이 아..
이전까지 작업을 통해 소스코드를 git에 올리고 또 이클립스에서는 어떻게 branch의 소스를 mergy 하는지에 대해서 알아보았다. branch와 mergy를 하는것이 3편이었는데 branch를 생성하는것이 3편이다.. 사실 작..
전에는 Jennifer 같은 유료 모니터링 솔루션을 거의 다 썼다면 요즘엔 오픈소스 모니터링 솔루션을 많이 사용한다. 그 중 LG CNS에서 만들어서 배포하는 오픈소스 APM (application performance monitoring) 을 설..
Scouter Client (Viewer) 를 실행하면 다음과 같이 오류가 나오는 경우가 있다. Failed to create the part's controls 오류가 크게 있어서 눈에 확 띄지만 그것보다 중요한것은 이라고 표시된 부분이다. 이 오류..
일전에 이클립스에서 클래스 파일 디컴파일을 하기 위해 JadClipse를 이용하는 방법에 대해 포스팅한적이 있다. 이클립스용 Java Decompiler JadClipse 설치방법 Jad는 Decompiler 이다. 다음 링크를 통해 Jad를..
상용 WAS 들이 생각나지 않을만큼 강력한 Tomcat에서 아쉬운점은 admin console 역할을 하는 GUI 가 없다는 것이다. 아니다. 사실은 있다. Tomcat Manager 라고 불리는데 기능은 상용 WAS 에서 제공하는 것만은 못..
새로운 Maven 프로젝트를 생성했을때 다음과 같은 오류를 종종 만나볼 수 있다. Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar-plugin:3.2.0 or one of its dependencies could no..
springboot 로 기존의 app을 converting 하며 가장 충격?적이었던 말은 'JSP는 더이상 권고하지 않는다. Thymeleaf나 Freemaker, Jade4j 와 같은 template engine 사용을 권고한다.' 라는 것이었다. PHP를 사용하..
비교적 최근에 나온 기술답게 thymeleaf 도 메뉴얼이 아주 훌륭하다. Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for b..
이번에는 생각해서 작성한 내용 없이 Thymeleaf 공식 홈페이지에서 지원하는 API 목록 을 쭉 긁어왔다. 왜냐면 공식사이트가 너무 느려서 한번씩 찾아볼때마다 울화통이 터진다.. 출처 : https://www.thymeleaf.or..
Spring에서 외부 환경변수의 값을 가지고 오는 방법은 다양하다. 그중 하나가 PropertyPlaceholderConfigurer 를 통해서 가져오는 방법이다. 가장 일반적인 방법이다. 사용법은 다음과 같다. classpath*:/config/t..
git을 그동안은 누군가가 만들어 놓은 git을 이용하기만 했지 내가 직접 git 프로젝트를 생성해본적은 없었다. 새로운 프로젝트를 생성해야 하는 상황이 되었고 한번 해보자! 일단 git이 local에 호옥시 설치가..
git을 local에 설치한 이유는 gitlab에서 직접 프로젝트를 등록하기가 어렵다. 또한 git을 사용하기 위해서는 CLI 환경에 익숙해지기도 해야한다. 그래야지 다양한 git의 기능을 십분 활용할수 있다. 일단은 local..
일단은 이 둘을 연결하기 전에 webhook이라는 개념부터 알고 넘어가자. webhook이란 간단히 말해 서버(이글로 치면 gitlab)에서 어떤 이벤트가 발생했을때 클라이언트(jenkins)에게 알릴수 있는 메커니즘이라고 이..
이 오류는 웹 프로젝트를 진행하다보면 흔히 만날수 있는 오류이다. web.xml에서는 Dynamic Web Module이라는것을 3.0으로 정의를 했는데 이것과 project facet 의 version이 다르다는 것이다. project facet 이..
org.apache.catalina.loader.WebappClassLoaderBase modified 가 나오면서 어플리케이션이 수정되지 않았는데도 무한으로 서버가 재기동되는 현상이 발생했다. 이 현상은 여러가지 원인이 있지만 내가 찾은 해결..
요즘 docker를 사용해서 서버를 구성하고 있다. 확실히 편리하다. 개념만 조금만 더 잡으면 서버를 구성하는데 훨씬 빠르게 편리하게 할 수 있을것 같다. 사람들이 많이 쓰는데는 다 이유가 있다. 사용하다 보니..
이 카테고리에 linux에 여러가지 app (svn, gitlab, sonarqube... )을 설치를 했었다. 하지만 요즘 유행하는 docker에 설치를 한다면 먼저 설명했던 설치방법보다 훨씬 간단하게 설치할 수 있고 관리도 용이하다...
docker 설치가 완료 되었다면 이제 container를 구성해보자. Docker Official images 확인 docker에서는 쉽게 container를 만들 수 있도록 docker hub에서 official image를 제공을 해주고 있다. Docker Hub hub.d..
docker를 써보면서 image를 run 해서 설치 및 실행을 해봤다. 하지만 이건 docker 내부 Container 에 설치가 되는 것이기 때문에 host에서 설치된 내용에 대해 찾아봐도 찾을수가 없다. (설치 시 디렉토리 마운트..
nexus 초기 구성을 할때 3rd party library를 올리기 위한 공간도 생성을 해두는 것이 좋다. release에 두고 쓸수는 없으니 말이다. 생성을 하는 방법은 간단하다. 맨 위의 설정을 누르고 Repositories > Create..
꼭 docker에 국한된건 아니고 vim 이 설치가 되지 않은 OS에서 설치하고 실행하는 방법을 가이드한다. 뭐 이런 오류가 난다. 이유는 간단하다. vim 이 설치되지 않았기 때문이다. 설치하면 된다. 설치하는 방법은..
이클립스 환경에서는 Window > Preperences > Maven > User Settings 에서 settings.xml 파일의 위치를 지정할 수 있었다. 그럼 linux에서는 어디에서 할까? 바로 이곳에서 한다. $ vi /maven 설치경로/maven/conf..
springboot 로 프로젝트를 구성하고 배포환경을 구성하였다. 이제 실행 스크립트만 작성을 하면 되는데 문제가 생겼다. 내장 was를 사용하기에 springboot 실행/중지 파일 (start.sh/stop.sh) 을 직접 만들어줬고..
web/was 세팅을 마치고 브라우저에서 잘 연결이 되는지 확인을 하려고 nginx에 설정한 도메인을 딱 치는순간! 왜 이런 오류가 날까? 원인을 파악해 보니 web서버에서 was서버로 (물리적으로 다른 서버) 연결을 하..
docker로 sonarqube를 설치하고 script를 작성하고 돌려보았다. "No quality profiles have been found, you probably don't have any language plugin installed" 이라는 오류가 떨어지면서 fail 이 발생했다...
maven project를 수행할때 필요한 settings.xml 파일은 보통은 MAVEN_HOME/conf 밑에 존재한다. 이곳은 전역 설정을 위한 곳이고 /USER_HOME/.m2/settings.xml 이렇게 지역설정을 할 수 있다. 하지만 이런 설정들..
Quartz scheduler란? 거의 모든 Java 응용 프로그램에 통합 할 수 있는 풍부한 기능의 오픈 소스 작업 스케쥴 라이브러리이다. 보통 배치작업이나 변경된 정보를 주기적으로 reload 해주기 위해 사용한다. 대략..
springboot로 기존에 있던 프로젝트를 전환을 하고 화면개발을 시작하는데 JSP 파일을 수정하고 아무리 새로고침을 해보고 캐시도 날려보고 요란법석을 떨어도 반영이 되지 않았다. 서버를 재기동해야만 이게 반영..
앞서 설명한 Chunk 방식을 사용하지 않는 경우 Tasklet 방식의 Batch를 사용한다고 했었다. 두 방식 모두 많이 쓰이는데 장단이 있다. 생각나는대로 말해보면 Chunk 방식은 포맷이 딱 정해져 있어서 그에 맞게 코..
기존 log를 관리하기 위한 구현체로써 log4j가 사용되었다. 그러나 보다 안정성이 높고 편리하게 log를 관리하기 위해 Logging framework인 Slf4j(Simple Logging Façade for Java)와 그 구현체로써 Logback이 고..