oingdaddy의 등록된 링크

 oingdaddy로 등록된 티스토리 포스트 수는 280건입니다.

Nexus에 maven project deploy 시 Access denied to xxx.jar. 401, Unauthorized 오류 조치 [내부링크]

Maven project를 deploy 하는 과정에서 다음과 같은 오류가 발생할 수 있다. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------..

Springboot Static Resource 공통화 하기 [내부링크]

프로젝트에서 같은 성격의 여러개의 UI 서버가 생기게 되었다. 여러개의 UI 서버지만 UI 단의 공통은 하나로 가져가야 한다. 그래야지 n번의 재작업을 하지 않을테니까.. 공통화 하려고 하는 항목은 static resou..

gogs 기본 사용법 및 권한관리 방법 [내부링크]

지난번에는 gogs라는 자체 호스팅 git 서비스를 설치해 보았고 프로젝트를 만들어 보는것을 포스팅하였다. 이번시간에는 gogs를 어떻게 사용하는지에 대해서 알아보도록 하겠다. 결론부터 얘기를 하자면 gitlab을..

STS 다운로드 및 설치방법 [내부링크]

STS(Spring Tool Suite)는 이클립스 (or visual studio code or theai) 기반의 스프링에 최적화된 IDE이다. java로 프로젝트 하는 곳에서 Spring을 사용하지 않는 곳이 없으니 이 STS도 개발환경 구성의 필수 요소..

Windows10 에 gitlab 대신 gogs 설치하기, 그리고 간단 사용법 [내부링크]

Windows 환경에 임시 개발환경을 구성해야 할 일이 생겼다. SCM(Source Code Management) 으로 git을 사용하고 자체 호스팅 git 서비스로 무엇을 쓸까 고민을 했다. linux에서는 gitlab을 쉽게 설치해서 사용을..

Springboot Batch Jar 파일 생성 및 실행 [내부링크]

Springboot 환경이 보편화가 되고 많은 부분들이 편해졌고 필자는 Batch가 엄청나게 편해진것 같다. 많이 사용해서 그런것 같다. 왜 Springboot Batch가 좋은지에 대해서는 이 글에서 다룬적이 있다. 그리고 빌드..

spring properties 파일 yaml 파일로 변경하기 [내부링크]

Spring이 고도화되면서 점차 properties 파일은 사용되지 않고 yaml 파일을 사용하고 있다. 써보면 yaml 이 좋은점이라고 생각되는 점이 첫번째로는 가독성이 더 좋고 두번째로는 spring profiles 적용시 하나의..

Nexus settings.xml 파일 없이 3rd party library 가져오기 (mirror & repositories) [내부링크]

프로젝트를 하다 보면 3rd party library를 사용할 일이 빈번하게 있다. 이를 Nexus에 등록하는 과정은 지난번에 다룬적이 있다. (궁금하다면 이곳을 참조하도록 하자.) 지난번에는 등록하는 과정이었다면 이제는..

MyBatis The content of elements must consist of well-formed character data or markup 오류 조치 [내부링크]

개발을 하고 was를 기동할때 아래와 같은 메세지를 만날 수 있다. Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\oingdaddy\target\classes\~\oingServic..

Jenkins (Hudson) 재밌는 기능 [내부링크]

엄청 고인물일수도 있는데... 잠도 안오고 해서... Jenkins에 처음 접속하면 위와 같이 온화한 Jenkins아저씨가 반겨준다. 하지만! plugin manager에서 emotion 이라고 검색을 해보면 emotional-jenkins-plugin..

No converter found for return value of type 오류 조치 [내부링크]

[WARN ][o.s.w.s.m.s.DefaultHandlerExceptionResolver.logException:line199] - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type:..

415 unsupported media type 오류 조치 [내부링크]

API 통신을 할때 json으로 메세지를 보내면 다음과 같은 오류를 자주 접할 수 있다. 바로 Content Type이 맞지 않는다는 메세지이다. 위와 같이 message가 application/json not supported면 요청을 보낼 때 Head..

Docker 환경에서 MSSQL 설치 및 기본설정하기 [내부링크]

빠르게 MSSQL 환경을 구성해야 할 일이 생겼다. Docker가 있어서 이제 이런건 정말 간단하게 해결할 수 있다. Docker를 설치하는것은 이 글을 참조하도록 하자. Docker Windows 에 설치하기 지난번에는 linux 환경..

Springboot에서 MyBatis 설정을 application.yml 으로 하기 [내부링크]

MyBatis 진영에서 MyBatis-Spring-Boot-Starter 라는것을 내놓았다. 아니.. 나만 몰랐던것 같다. 누군가가 작성한 샘플을보니 mybatis-config.xml (MyBatis 설정파일) 파일에 보통 있어야 할 내용들이 없는데도 있..

[Spring Batch] Chunk Example (DB to File, Springboot based) [내부링크]

일전에 springboot base에서 File to DB Spring Batch 에 대한 예제를 포스팅했었다. 이번에는 DB to File Spring Batch에 대한 예제를 살펴보도록 하겠다. 대략적인 시나리오는 DB로부터 내용을 읽어서(JdbcCurso..

Spring Custom ReturnValueHandler 만들기 초간단 예제 [내부링크]

지난번에는 Custom ArgumentResolver를 만드는 예제를 해봤다. 이전에 다뤘던 ArgumentResolver가 Controller에 들어오는 파라미터를 가공 및 추가를 하는데 사용되었다면, RetunValueHandler는 리턴 타입으로 판..

Spring Custom ArgumentResolver 만들기 초간단 예제 [내부링크]

Spring을 사용하면서 ArgumentResolver라는것을 한번은 들어봤을 것이다. 이것은 Servlet 과 Controller 사이에서 전달되어진 값을 가공하거나 추가할 필요가 있을때 사용한다. AOP와 같이 중복 코드를 제거하는데..

RestTemplate에서 OpenFeign으로의 전환 및 사용법 [내부링크]

그동안 잘 사용하고 있던 RestTemplate이 곧 Deprecated가 된다고 한다. 그렇다고 못쓰는건 아니다. NOTE: As of 5.0 this class is in maintenance mode, with only minor requests for changes and bugs to be..

MinIO Object name contains unsupported characters 오류 조치 [내부링크]

MinioClient를 통해 putObject를 하는 과정에서 다음과 같은 오류가 발생하였다. io.minio.errors.ErrorResponseException: Object name contains unsupported characters. at io.minio.MinioClient.executeReq(Mi..

Java에서 File to MultipartFile , MultipartFile to File 변환하기 [내부링크]

File과 관련된 백엔드단 테스트가 필요한 경우가 종종 있다. File을 MultipartFile 형식으로 바꾸어서 처리를 해줘야 하는 경우가 있는데 어떻게 해야 하는지 난감하다. 그럴때는 아래와 같은 로직을 추가함으로써..

Spring cloud 사용시 ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata 오류 조치 [내부링크]

spring cloud openfeign 을 사용하기 위해 관련 dependency를 넣고 springboot 기동을 했는데 아래와 같은 오류가 발생했다. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.pro..

Openfeign 사용시 IllegalStateException: Method has too many Body parameters 오류 조치 [내부링크]

spring cloud openfeign 을 사용하는데 오류가 발생하였다. Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract byte[] com.example.demo.testFeign.encryption(..

Springboot에서 API Docs (Springdoc) 사용하는 방법 (2) [내부링크]

지난 시간에는 Springdoc을 사용하는 한 사이클에 대해서 봤다면 이번시간에는 어떻게 상세하게 내가 원하는대로 설정을 할 수 있는지에 대해서 알아보겠다. OpenAPI 설정 지난시간에 application.yml 파일에 spri..

Springboot에서 API Docs (Springdoc) 사용하는 방법 (1) [내부링크]

지난번에 JavaDoc이라던지 JSDoc을 사용하는 방법에 대해서 다룬적이 있었다. 이와 마찬가지 맥락으로 API Docs을 생성하는 방법도 있다. MSA가 유행을 하며 이로 구성된 시스템은 수많은 API Service를 관리해야..

Eclipse에서 Git Pull 할때 충돌 간단히 해결하기 [내부링크]

이클립스에서 git을 사용하면 여러가지 문제와 직면하게 된다. 그중 가장 골치가 아픈것이 충돌(Conflict) 문제인데 이에 대해 간단하게 해결하는 방법에 대해 소개하고자 한다. Pull Conflict pull 을 받고 comm..

Eclipse version 별 호환 JDK version 정리 [내부링크]

개발환경을 구성해야 하는 입장에서 Eclipse와 JDK의 호환성 여부는 꼭 알고 있어야 한다. 한동안 jdk version 8에 머물고 있어서 편했는데 이제 또 챙겨야 하는 시점이 왔다. eclipse version jdk version Eclips..

Eclipse (STS) JVM is not suitable for this product 오류 조치 [내부링크]

Eclipse(STS)를 구동시킬때 openjdk 11을 사용하다가 어떠한 이유로 jdk 1.8을 사용해야 할 일이 생겼다. 그래서 SpringToolSuite4.ini (eclipse.ini) 파일에서 vm을 jdk 1.8 이 설치된 위치로 변경시키고 기동을..

spring-boot-starter, parent 로 dependency 관리하기 [내부링크]

springboot에 대해 이론적으로 열심히 공부를 해보지는 않았지만 사용해보면서 기존 spring과 가장 많이 다르다고 느낀점은 크게 두가지가 있다. 하나는 embedded was를 사용하여 간단히 구동을 시켜볼 수 있다(St..

Spring Validation Message properties 파일을 통해 관리하기 [내부링크]

들어오는 Data에 대한 검증은 어디에서나 필요하다. @Data public class MemberDto { @NotNull(message="name must not be null") private String name; ... 후략 ... } 위와 같은 방식으로 DTO에 message를 하드..

Eclipse Java properties 파일 한글 깨짐 현상 조치 [내부링크]

한글은 위대하지만 우리나라가 IT 업계를 선도하지 못해서 우리나라 개발자는 이런 인코딩과 관련된 문제를 많이 겪고 있다. 인코딩에 관련된 공수만 아꼈어도 더욱 발전된 우리나라 IT의 모습이 있었을것 같다...

Spring에서 h2 database 간단 사용법 [내부링크]

이전에 springboot와 hsqldb를 연동해서 간단히 프로토타입을 만들기 위한 준비를 했었다. Springboot + embedded hsqldb 로 간단히 샘플 프로젝트 만들기 springboot는 이게 정말 왜 되지? 할 정도로 내장되어 있..

JavaScript를 JavaDoc처럼 생성해주는 JSDoc 설치 및 사용방법 [내부링크]

Eclipse에서 Java 파일들에 대해 JavaDoc을 생성하는 방법은 지난 포스팅에서 살펴보았다. 하지만 이건 말그대로 Java 파일들에 대해서 할 수 있다. JavaScript라서 혹시 되나 해봤는데 역시 안된다. 하지만 역시..

Eclipse 에서 JavaDoc 생성하기 [내부링크]

JavaDoc은 자바 소스를 문서화를 하는 방법을 말한다. 개발 표준을 잡거나 인수인계 등등의 작업을 할때 JavaDoc을 생성하여 배포하기도 한다. 어떻게 JavaDoc 을 생성하는지 살펴보자. /** * Boot Class * * * Co..

Tomcat 기동시 The specified Tomcat installation directory does not exist 오류 [내부링크]

이클립스에서 Tomcat을 기동시 The specified Tomcat installation directory does not exist 오류가 발생하는 경우가 있다. 오류의 원인은 명확하다. Tomcat이 설치된 위치를 못찾는것이다. 해결방법 이클립스..

Eclipse 주석 설정 (with Code Template) [내부링크]

Eclipse를 사용하며 주석을 설정하는 방법에 대해 알아보자. 위와 같이 아무 클래스 선언부 위에 /** 라고 입력하고 엔터를 쳐보자. 그럼 우측과 같이 @author 가 나오면서 주석을 입력할 수 있는 공간이 생긴다...

MyBatis Mapping 방식 (Query ID vs Interface) [내부링크]

MyBatis를 활용해서 여러가지 프로젝트를 하다보면 같은 MyBatis인데도 다른 경우가 있다. 바로 제목에 나온것처럼 Mapping 방식의 차이가 있을수 있기 때문이다. Query ID Mapping 방식 vs Mapper Interface 방식..

윈도우 공유폴더(파일서버) 로그아웃 방법 [내부링크]

A라는 공유폴더에 E라는 계정으로 붙어 있는데 F라는 계정으로 변경을 해야 하는 상황이다. 이럴 경우 로그아웃을 하고 새로운 계정으로 로그인을 해야 하는 방법에 대해 기술한다. 윈도우의 검색 > cmd 라고 입..

Logback 출력 로그 색상 변경하기 (with clr) [내부링크]

중요한 일은 아니지만 개발환경을 만드는 입장에서 어떻게 하면 조금 더 로그를 가독성이 좋게 보여줄 수 있을까 고민을 했고 출력 로그의 색상을 바꿔보기로 하였다. 바쁜 사람을 위해 결론부터 말하면 색상을 변..

Logback include 사용하여 가독성 높이기 [내부링크]

필자는 일단 이 글을 쓰면서도 이 include를 사용하여 가독성을 높이는게 더 나은 방법일까? 라는 의문을 계속 가지고 있다. 답은 어느정도 정해져있다. 내가 관리를 할때 파일을 여러개로 쪼개서 가독성을 높이는..

KeyCloak Session, Token Timeout 설정하기 [내부링크]

Keycloak을 사용하면 세션, 쿠키 및 토큰 시간 제한을 자유롭게 설정할 수 있다. 설정방법에 대해 알아보자. 전역설정 (Realm 단위) KeyCloak Session, Token에 대한 Timeout 설정은 Realm Settings > Tokens 에..

Springboot 에서 @ComponentScan 설정 및 사용법 [내부링크]

이전 Xml Config 방식에서 ComponentScan을 사용하는 방법은 다음과 같았다. applicationContext를 구성할때 이렇게 명시적으로 내가 읽어들여야하는 component들이 있는 package를 넣어줬다. 하지만 Springboot에..

JasperException : security/tags cannot be resolved in either web.xml or the jar files deployed with this application 오류 [내부링크]

Spring Security tag를 사용하다 보면 이런 오류가 발생하는것을 볼 수 있다. [ERROR][o.a.c.c.C.[.[.[.[dispatcherServlet].log:line175] - Servlet.service() for servlet [dispatcherServlet] in context with..

KeyCloak OAuth2를 활용해서 SSO 로그인 하기 (google) [내부링크]

KeyCloak은 쓰면 쓸수록 매력적인 솔루션인것 같다. 잘 다룰줄만 알면 인증, 권한 관련해서는 어느정도 경지에 오를수도 있을것 같다는 생각이 든다. 요즘같이 OSS가 각광받는 시대에는 꼭 알고 있어야 할 OSS라고..

Jenkins로 Windows 서버에 자동배포하는 모든과정 [내부링크]

지금은 거의 사용되지 않는(아직도 많이 사용할수도 있겠지만..) Jenkins + Ant + SVN + Windows서버 조합으로 자동배포하는 포스팅을 하려고 한다. Hudson이 껴있었으면 딱 again 2010년쯤 유행했던 기술셋인거..

maven project pom.xml : unknown error line 1 오류 [내부링크]

잘 되던 어플리케이션이었는데 오랫만에 보니 갑자기 pom.xml 에 오류가 떠있다. x 표시 위에 마우스를 올려봐도 아무런 힌트도 안나오고 무작정 알수 없는 에러란다. Overview를 봐도 마찬가지고 problem을 봐..

Jenkins 권한관리 KeyCloak 연동해서 하기 (2) : openid-connect [내부링크]

지난 포스팅으로로 Jenkins 권한관리를 KeyCloak과 연동해서 하는 방법에 대해 다뤘었는데 이것만으로는 성에 차지 않을 수 있다. 왜냐면 글로벌한 설정이기 때문이다. 대형 프로젝트 같은것을 하는 경우 각 파트..

IntelliJ 처음 사용해본 아주 짧은 후기 [내부링크]

SI 업계에서 IntelliJ를 사용하는곳은 극히 드물다. 왜냐!? 모든것을 다 비용으로 생각하고 비용을 줄이고 줄이고 줄여서 이윤을 가장 많이 남기는것이 가장 잘 한다고 칭찬을 받는게 이 업의 특징이기 때문이다...

Jenkins 문제 생겼을때 설정파일 직접 수정하기 (설치파일 경로 포함) [내부링크]

Jenkins와 KeyCloak을 openid 방식으로 연결을 하다가 로그인이 안되고 KeyCloak 오류화면으로 리다이렉트 되는 현상이 발생을 했다. http://localhost:8180/auth/realms/Oingdaddy/protocol/openid-connect/auth?..

Jenkins Window 10에 설치하기 [내부링크]

Jenkins에 대한 주제를 많이 다루면서 설치하는 방법에 대해서는 포스팅을 안했었다니... 마침 새로운 PC에 Jenkins를 설치할 일이 있어서 겸사겸사 포스팅도 해본다. Jenkins download and deployment Jenkins –..

Jenkins 권한관리 KeyCloak 연동해서 하기 (1) [내부링크]

지난 포스팅에서는 Jenkins를 KeyCloak을 이용해서 로그인하는 방법에 대해서 알아보았다. 단순 로그인만 통합로그인으로 하는것에서 그치지 않고 이번에는 KeyCloak의 권한(ROLE)에 따라 Jenkins의 사용권한을 통..

Jenkins 로그인 KeyCloak으로 하기 [내부링크]

프로젝트를 관리하다보면 여러개의 솔루션을 각각 계정관리를 해야 하는데 KeyCloak을 사용하면 어느정도 통합해서 관리를 할 수 있다. Jenkins도 KeyCloak을 통해서 통합로그인을 할 수 있다. 기본적으로 Jenkins..

Spring Security CORS 설정하기 [내부링크]

예전에 CORS(Cross-Origin Resource Sharing)를 filter를 사용해서 설정하는것에 대해 포스팅을 한적이 있다. Spring Security를 사용하면 이렇게 별도의 filter를 만들지 않고 간단하게 CORS 설정을 할 수 있다...

Windows 10 에서 Redis 암호 설정 [내부링크]

Redis를 설치하고 redis-cli 에서 다음과 같이 test를 했었다. 이 뿐만 아니라 get yellow 이런식으로 값을 부르면 다 가지고 온다. 여기에 암호를 설정해 보자. Redis는 접근제한을 두가지 방법으로 할 수 있는..

MinIO Distributed mode (Cluster) 구성하기 [내부링크]

MinIO는 고가용성을 확보하기 위해 Distributed mode를 지원한다. 그래서 운영환경에서 MinIO를 사용하기 위해서는 Distributed mode가 필요하다. 이를 구성하기 위해 별다른 복잡한 기술이 필요한게 아니라 기존..

Linux (CentOS) Service 등록하기 및 재기동시 자동 실행하기 [내부링크]

linux의 실행파일이 자주 사용되어지고 또 재기동시 자동으로 시작되어야 한다면 실행파일을 Service에 등록을 하고 사용한다. Systemd를 통해서 Service를 등록할수도 관리할수도 있다. 이 모든 작업을 할때는 ro..

Springboot + Redis 연동하는 초간단 샘플 만들어보기 [내부링크]

지난 시간에는 간단히 Window 환경에 Redis를 설치해 보았다. Windows 10 환경에 Redis 설치해보기 Monolithic 환경에서 점점 벗어나고 MSA 지향적인 환경으로 변화함에 따라 기존의 세션 방식을 사용하기가 어려..

ORA-01775 : 동의어가 순환 고리 유형으로 정의되어 있습니다 (looping chain of synonyms) 오류 조치 [내부링크]

종종 application을 기동하다 보면 볼수 있는 오류다. 원인 바라보고 있는 테이블이 삭제되었거나 테이블에 대한 권한이 없을때 발생 해결책 테이블을 다시 생성하거나 synonym을 drop 후 새로 생성, 아니면 테..

Jenkins REST API 호출로 Job 생성/실행/결과조회 하기 [내부링크]

Jenkins의 기능은 무궁무진한것 같다. 아직 빙산의 일각밖에 모른다는 생각도 든다. 이번에 포스팅할 내용은 Jenkins에서 제공하는 REST API를 사용해 Jenkins의 Job을 생성, 실행, 삭제, 결과조회 등을 해보는 것..

AES256 암호화 적용시 Invalid AES key length 오류 조치 [내부링크]

JWT payload (claims, body) 부 암호화 및 복호화 방법 JWT를 사용하는것 자체가 암호화된 json 문자열로 전송을 하는건데 무슨 암호화 및 복호화를 또 하느냐!? 암호화가 된다 하더라도 jwt.io 에서 알고리즘만..

Spring properties 사용시 UnsatisfiedDependencyException: Could not resolve placeholder 오류 조치 [내부링크]

Spring을 사용하면서 외부 설정 파일(properties or yml)은 필수적으로 사용된다. 하지만 이를 읽어오지 못하는 문제는 자주 직면하게 된다. 예를 들면 다음과 같은 오류다. org.springframework.beans.factory.Un..

Jenkins에서 Git Publisher 사용시 returned status code 128 오류 [내부링크]

Jenkins에서 빌드한 산출물에 대해 Tagging을 하기 위해 Git Publisher를 사용한다. 하지만 Tagging을 할때 아래와 같은 오류가 발생하며 Jenkins Job이 실패를 했다. using credential gitlab_build > git tag -..

JWT payload (claims, body) 부 암호화 및 복호화 방법 [내부링크]

JWT를 사용하는것 자체가 암호화된 json 문자열로 전송을 하는건데 무슨 암호화 및 복호화를 또 하느냐!? 암호화가 된다 하더라도 jwt.io 에서 알고리즘만 알고 있다면 다시 복호화된 값으로 볼수 있다. 그래서 보..

Jenkins와 Slack 연동하기 - 빌드결과 알림받는 방법 [내부링크]

Jenkins의 다양한 기능중 이번에는 Slack과 연동해서 배포 실패 시 또는 배치 수행중 문제가 생겼을 경우 알림을 보내주는 기능에 대해 알아보겠다. 내가 직접 Jenkins에서 빌드 버튼을 눌러서 실패를 하는 경우에..

Slack workspace 생성 및 기본 사용법 [내부링크]

기업에서 slack을 사용하는곳이 점차 늘고 있다. 사용을 해보니 장점은 별도의 프로그램을 설치하지 않고 web에서 바로 실행시킬수도 있고 여기에서 채팅을 할때 사진이나 엑셀의 표, 파일등 여러가지 형태의 컨텐..

Spring 설정 Xml Config에서 Java Config로 바꾸는 방법 (요령) [내부링크]

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml spring 프로젝트에서 springboot 프로젝..

OpenSSL이란? CentOS 7에 OpenSSL 설치하기 (update) [내부링크]

OpenSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판이다. C 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현..

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config [내부링크]

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml spring 프로젝트에서 springboot 프로젝트로 migration 하기..

Springboot static resource ERR_ABORTED 404 오류 [내부링크]

springboot를 사용해서 web 개발을 하면 초반에 ERR_ABORTED 404를 심상치 않게 만나볼 수 있다. 404는 알다시피 경로에 있는 파일을 못찾는 경우이다. 즉 잘못된 경로를 입력했다는 것이다. 필자의 static resou..

java.lang.IllegalStateException: No thread-bound request found 오류 [내부링크]

XML로 설정되어 있던 spring web application context를 Java Config 로 변환하는 과정에 오류가 발생하였다. java.lang.IllegalStateException: No thread-bound request found: Are you referring to request at..

Windows 10 환경에 Redis 설치해보기 [내부링크]

Monolithic 환경에서 점점 벗어나고 MSA 지향적인 환경으로 변화함에 따라 기존의 세션 방식을 사용하기가 어려워졌다. 여러가지 방안이 나왔고 세션을 사용하는 방식 중 가장 많이 쓰이고 있는건 바로 Redis를 활..

Springboot 기동시 Failed to scan : FileNotFoundException *.jar 오류 [내부링크]

프로젝트 변경사항이 있어서 BootApplication.java (springboot main class)의 위치를 변경하였다. 변경하고 나니 다음과 같은 오류가 발생을 했다. WARNING: Failed to scan [file:/C:/Users/tester/.m2/reposito..

Springboot 기동시 The Class-Path manifest attribute 오류 [내부링크]

Springboot 기동시 콘솔의 아래와 같은 메세지가 나오고 시작이 정상적으로 되지 않는 경우가 있다. The Class-Path manifest attribute in [path]/xxxx.jar referenced one or more files that do not exist 어플..

git push할때 RFC failed; 413 Request Entity Too Large 오류 해결 [내부링크]

gitlab에 새로운 프로젝트를 push를 하는데 에러가 난다. RFC failed; 413 Request Entity Too Large 위에는 Request Entity Too Large 라는 오류가 나타나지는 않지만 이 push 를 이클립스에서 해보면 이..

Sonarqube Custom Ruleset 등록 및 특정 프로젝트에만 적용하기 [내부링크]

지난 시간에 아래와 같은 과정을 거치면서 Custom Ruleset을 만들었다. Sonarqube Custom Rule 6.7 to 8.5 migration 기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 v..

Kubernates Pod 생성부터 삭제까지 모든 과정 알아보기 (펌) [내부링크]

Pod 살펴보기 Pod 생성 쿠버네티스의 모든 리소스는 YAML 형태의 선언형 정의서 (declarative description)으로 표현될 수 있습니다. 먼저 다음과 같이 Pod template을 만들어 보겠습니다. --dry-run, -o yaml..

Scouter 기본 사용법 및 모니터링 항목 구성하기 [내부링크]

지난 시간에 scouter 설치와 application과의 연동을 알아보았다. 이제 이렇게 연동된 application과 server에 대한 정보를 가지고 모니터링을 해야 한다. 우선 scouter client를 구성하기 앞서 설정을 할 부분이..

SonarLint와 Sonarqube 이클립스에서 연동하는 방법 [내부링크]

SonarLint를 설치했다면 SonarLint에서 제공하는 기본 Ruleset만 사용이 가능하다. 개인적으로 사용하며 조금 더 나은 품질을 추구한다면 이렇게 사용해도 되지만 엔터프라이즈 환경에서는 이정도 Ruleset으로는..

Docker 사설망 접근시 no route to host 오류 해결방법 [내부링크]

내부망에 구축된 Docker에 login을 시도했다. 하지만 오류가 발생하였고 다음과 같은 메세지가 나왔다. > Error response from daemon: Get https://docker.privatearea.com/v2/: dial tcp 172.17.xxx.xxx:443: co..

The Project Analysis is in progress 나오며 Ruleset 반영이 되지 않을때 [내부링크]

Sonarqube Custom Ruleset 파일을 정의하고 드디어 적용을 하려는 순간이다. 하지만 Restore를 하고 나서 한참을 기다려봐도 아래와 같은 메세지가 상단에 나타나며 적용이 되지 않는다. 분석중이라는데 생각보다..

Spring Batch 오류시 exitCode 설정하여 Jenkins에서 실패로 인식하도록 하는 방법 [내부링크]

일전에 Spring Batch가 수행을 하다가 실패를 해도 Jenkins에서는 SUCCESS를 찍는 문제가 있다고 글을 쓴적이 있다. Jenkins Log Parser 사용해서 Application 오류 처리하기 엄청나게 편리한 Jenkins이지만 불편..

Eclipse에서 SonarLint 설치 및 사용법 [내부링크]

소스의 정적분석을 도와주는 대표적인 솔루션은 Sonarqube이다. 보통은 이 Sonarqube를 서버에 별도로 설치를 하고 소스를 이곳으로 보내 분석을 한다. 그렇기 때문에 개발자는 소스를 모두 deploy하고 Sonarqube..

Sonarqube Custom Ruleset 정의의 기준 (with 행자부 보안취약점 대응, OWASP top 10 2020) [내부링크]

현 Sonarqube 버전에 맞는 Ruleset을 재정의를 하라는 작업을 받았다. 전에 작성했던 글과 연장선상에 있는 글이다. 새로 나온 수많은 Sonar way를 다 사용할수는 없다. 이중에서 골라서 사용을 해야 한다. 하지만..

Ant Build (build.xml) 기본 사용법 with Jenkins [내부링크]

Ant Build는 이제는 잘 쓰이지 않지만 종종 maven이나 gradle이 아닌 일반적인 Dynamic Web Project로 프로젝트를 구성하는 경우 사용된다. 일을 하며 많은 시간을 이 Ant Build를 사용했고 그중 가장 일반적인 모..

Jenkins에서 jacoco.exec 파일 수집하기 (with sshpass) [내부링크]

jacoco를 사용하여 소스코드에 대한 동적 분석을 한 결과물의 이름을 jacoco.exec로 사용하고 있다. 이 파일은 빌드서버인 jenkins가 설치된 곳으로 이동이 되어서 분석이 되어야 한다. jacoco의 분석은 sonarqube..

Sonarqube Custom Rule 6.7 to 8.5 migration [내부링크]

기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 version으로 올리면서 기존의 Custom Rule + Sonarqube 8.5에 추가된 Sonay way를 선별해서 반영해야 한다. 결론부터..

대용량 파일 업로드시 nginx 504 Gateway Time-out 오류 조치 [내부링크]

대용량 파일을 업로드할때 업로드하는 시간이 2분을 넘어가자 nginx 504 Gateway Time-out 이 발생하며 안되는 문제가 발생을 하였다. 이것에 대한 원인과 해결책은 다음과 같다. 문제점 : nginx의 기본 timeout..

SVN 계정별로 프로젝트 접근권한 설정하기 [내부링크]

하나의 SVN 저장소에 여러개의 프로젝트가 올라가 있는 경우 각 프로젝트 별로 업무 연관성이 있는 개발자만 접근하여 사용을 해야 하는 상황이다. 이렇게 oingdaddy라는 저장소에 현재 A-project, B-project가..

Windows에 SVN 설치 및 설정, 그리고 이클립스에 연결하기 [내부링크]

일전에는 linux 환경에 SVN을 설치해보았다. 보통은 linux에 올려놓고 쓰지만 서버가 들어오지 않은 상황에 임시로 잠깐 사용할 용도로 로컬 PC의 Windows에 설치를 해야 했다. linux와 거의 유사하게 설치할 수..

Spring Security + JWT 인증 초간단 연동 예제 [내부링크]

Monolithic Architecture에서 Micro Service Architecture까지는 아니더라도 많은 부분이 API로 분리가 되고 이에 대한 인증의 필요성이 생겼다. Spring Security와 JWT를 이용하면 이런 API 서버간의 인증을 간단..

Eclipse(STS)에 SVN 연결하기 (with SVN Connector 설치) [내부링크]

이클립스(STS)에는 기본적으로 SVN Repository Perspective가 설치되어 있지 않다. 하지만 이클립스에서 SVN을 사용하고 싶을때 다음과 같이 간단하게 구성할수 있다. 이클립스 상단의 Help > Eclipse Marketpla..

Sonarqube Scanner 사용해서 특정 파일만 검사하기 (use inclusions, exclusions) [내부링크]

예전에 Sonarqube와 Jenkins를 연동해서 사용하는법에 대해서 다룬적이 있었다. Jenkins에 Sonarqube 연동하기 Jenkins와 Sonarqube 연동을 하려면 일단 Jenkins와 Sonarqube가 설치가 되어 있어야 한다. 각각의..

Linux SSH keygen 사용해서 암호 대신 SSH key로 인증하기 [내부링크]

A Server에서 B Server로 SSH를 이용하여 파일을 전송하거나 작업을 할 경우가 있다. 가장 대표적인것은 SCP이다. SCP로 이렇게 파일을 전송하려고 했을때 대상서버의 비밀번호를 물어본다. 비밀번호 넣어주고 해..

MyBatis란? 기본설정 및 사용방법 [내부링크]

개요 JAVA에서 DB 프로그래밍을 하기 위해서 JDBC가 제공되었다. JDBC는 RDB 사용을 위한 다양한 API를 제공하지만, DB가 방대해지고 각 data간 관계가 복잡해짐에 따라 다수의 메소드를 호출하고 관련 객체를 해..

Jenkins에서 application log를 tail -f (실시간)로 보기 [내부링크]

프로젝트에서는 보통 서버에 들어가서 작업을 할수 있는 사람과 서버에 대한 접근권한이 없는 개발자들이 있다. 개발자들이 개발서버에 어플리케이션을 올렸을때 로그를 확인하고 싶어하는 경우가 있다. 그럴때 매..

자주쓰는 Kubernates 명령어 정리 (with Docker 명령어) [내부링크]

Kubernates를 사용하며 자주 사용하는 기본명령어 (사실 이것밖에 모른다.)를 그래도 조금 익숙한 Docker 명령어와 비교해서 정리를 해본다. Kubernates 명령어 Docker 명령어 Desc kubectl run eg) kubectl run..

[MSA 시작 #6] 분산 로그 Tracing (with Sleuth, Zipkin) [내부링크]

MSA로 구성을 하면 어려워지는 기능 중 로그추적 기능이 있다. 기존의 Monolithic 구조에서는 로그 추적을 쉽게 할수 있었는데 app이 분산됨에 따라 어려워졌다. 하지만 훌륭한 로그 추적 솔루션들이 생기기 시작..

Springboot application.yml 파일의 값 가져오기 (feat. @Value is null) [내부링크]

아주 기본적인건데 삽질을 많이 했다. 나름 spring과 오랜 시간을 보내며 조금 안다고 생각을 했는데 한참 부족한것 같다. 지난번에 Springboot Batch Tasklet에 대해 글을 쓰며 두가지 방식에 소개를 했었는데 이..

Linux Server to Server 파일 전송간편하게 하는법(with scp) [내부링크]

A, B라는 서버가 있고 A라는 서버의 특정 폴더를 B서버로 옮기고 싶을때 사용하는 방법이다. A라는 서버에서 FTP로 파일을 받아서 그걸 B서버에 전송을 해줄수도 있지만 SCP를 이용하면 훨씬 간편하게 진행할 수..

Minio Unable to initialize config system: Invalid credentials [내부링크]

Minio를 이것저것 설정하고 되랏! 하며 기동을 시키면 다음과 같이 오류가 나는 경우가 있다. Unable to initialize server switching into safe-mode: Unable to initialize sub-systems: Unable to initialize..

[Springboot Batch] Skip/Retry Simple Example (JAVA Config) [내부링크]

Spring Batch의 기본적인 기능들을 지난 포스팅들을 통해 알아보았다. 이번에 알아볼 Skip/Retry도 Spring Batch에서는 기본적으로 제공을 하는 기능이다. 간단한 예제를 통해서 알아보자. us-500.csv (웹에서 쉽..

[Springboot Batch] Parallel(병렬처리) Example (Chunk, Tasklet) [내부링크]

지난 포스팅으로 Chunk 방식과 Tasklet 방식의 Spring Batch에 대해 알아보았다. 이제는 이 방식을 조금 응용하여 이를 병렬처리하는 방법에 대해 알아보겠다. Chunk와 Tasklet과 마찬가지로 이것도 매우 직관적이..

[Springboot Batch] Tasklet Example (JAVA Config) [내부링크]

Chunk 방식은 정형화된 방식이라면 Tasklet 방식은 비교적 자유로운 방식이다. 따라서 실제로 batch를 사용할때 적어도 내가 경험해본 프로젝트에서는 Tasklet 방식을 훨씬 선호하였다. 이것도 Chunk와 마찬가지로..

[Springboot Batch] Listener Example (Job, Step) [내부링크]

지난 글에서 다뤘던 Springboot Batch Chunk Example에서 소스들을 살펴 볼때 Listener도 살짝 나왔다. 우리가 정의한 Job이나 Step 실행 전 후로 필요한 공통 작업을 기술하기 위해 주로 사용되며 사용된다. 이..

[Springboot Batch] Chunk Example (File to DB, JAVA Config) [내부링크]

Spring Framework의 개발환경이 Springboot 기반으로 변함에 따라 Spring Batch의 개발방식도 이전과는 많이 달라졌다. 필자가 전에 쓴 Spring Batch에 관한 글은 Springboot 기반이 아니라서 Batch Job을 작성하..

Spring Batch 실행시 발생하는 여러가지 에러 모음 [내부링크]

A bean with that name has already been defined ~ 관련 오류 *************************** APPLICATION FAILED TO START *************************** Description: The bean 'sampleChunkJob', defined in clas..

Spring Batch 특정 Job만 실행하기 [내부링크]

Spring Batch 환경을 구성할때 Job이 여러개 있고 이것을 실행시켰을때 어떤 결과가 나올까? 정답은 "모든 Batch Job이 실행이 된다. " 이다. 내가 만든 Job 중 특정 Job만 실행을 시키고 싶다면 어떻게 해야 할..

Jenkins Job Build 후에 Multiple Post-Build 수행하기 [내부링크]

Parameterized Trigger를 사용하면 다양한 Job간의 연계작업을 할 수 있다. 전에 살펴본대로 후속 job으로 parameter 값도 넘길 수 있고 후속 job으로 여러가지 job 동시에 실행시키는것도 가능하다. Parameterize..

Jenkins Job에서 Job으로 Parameter 전달하기 [내부링크]

Parameterized Trigger 를 사용하면 후속 작업을 지정 및 수행할 수 있을뿐만이 아니고 현재 job의 param값, 넘기고 싶은 변수값도 넘겨줄 수 있다. 다음은 bjob에서 cjob으로 param값을 넘기는 예제이다. Paramet..

Jenkins Failed Job Post Build 수행하기 (with Parameterized Trigger) [내부링크]

Jenkins를 사용하다가 실패한 Job에 대해서는 어떻게 처리를 하는게 가장 좋을까 고민을 하고 있다. 전에 다뤘던 pipeline을 사용해서 실패한 job에 대한 처리를 하는 방법도 있지만 이건 pipeline job을 한셋 더..

Jenkins 현재 실행한 Job 결과값 가지고 와서 분기처리하기 (with Pipeline) [내부링크]

Pipeline으로 Job을 실행하고 실행결과에 따라 분기처리를 하고 싶은 경우가 생겼다. 예를 들면 a라는 job이 실행이 되었고 이 job이 성공을 하면 b라는 job을 수행하고 실패를 하면 c라는 job을 수행하도록 하고..

Jenkins Log Parser 사용해서 Application 오류 처리하기 [내부링크]

엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하는..

Springboot + embedded hsqldb 로 간단히 샘플 프로젝트 만들기 [내부링크]

springboot는 이게 정말 왜 되지? 할 정도로 내장되어 있는 편리한 기능들이 많이 있다. 이번에 소개할 내용도 그렇다. 내부 로직을 까보지 않아서 정확한 동작원리는 파악하지 못했지만 그래도 급하게 DB 연동해..

CSV 파일 Univocity Parsers 이용해 간단히 파싱하기 [내부링크]

CSV파일은 지금은 많이 안쓰이지만 그래도 종종 사용이 된다. 여러가지 OSS가 이를 지원해주고 있지만 그중 간단하게 CSV파일을 파싱할 수 있는 방법을 소개한다. 일단 univocity-parsers dependency 추가가 필요..

Kubernates 초간단 설치 (CentOS7, Windows10) [내부링크]

IT 기술이 급변하면서 많은 회사들이 이를 따라가기 위해 열심히 노력을 하고 있다. (아닌곳도 있고..) 필자는 아키텍트 직군이다. 아키텍트도 일반적으로 여러 기준(TA, AA, SA, DA 등등)으로 나뉘어져 있는데 Ku..

docker-compose 설치 및 yml 작성, 명령어 (with WordPress) [내부링크]

docker-compose는 조금 더 docker를 편하게 사용할수 있도록 해주는 도구이다. Docker 플러그인 같은 개념이라고 생각하면 이해가 편하다. 근데 뭘 조금 더 편하게 해줄까? docker에서 수행되는 일련의 작업(eg. b..

Docker image tagging 해서 Docker Hub에 push하기 [내부링크]

Docker image를 빌드하고 다음에 또 사용하고 싶은 경우가 있다. 그럴때 어떻게 하는지에 대해서 알아보자. 사전준비 일단 빌드를 하는 과정은 건너뛰고 간단하게 보여주기 위해 아무거나 Docker Hub로 pull을 받..

Springboot + RabbitMQ 연동 및 초간단 샘플 프로젝트 만들기 [내부링크]

지난 포스팅으로 RabbitMQ를 설치하는 방법에 대해서 알아보았다. 이 설치한 RabbitMQ와 management를 띄워놓고 Springboot를 연동하여 비동기통신을 하는 간단한 샘플을 만들어보자. 설치에 앞서 간단한 개념을..

Windows10에 RabbitMQ 빠르게 설치하기 (with Erlang), 그리고 RabbitMQ management 띄우기 [내부링크]

MSA 프로젝트를 준비하며 여러가지 준비사항이 있지만 느슨한 결합을 위해 MQ (Message Queue) 가 필요하다. 여러가지 이런 메세징 기능이 있는 툴이 있지만 RabbitMQ를 일단 사용해보려한다. 어떻게 설치하는지..

[MSA] Hystrix Dashboard + Turbine 이용해서 Hystrix 모니터링 환경 구성하기 [내부링크]

Hystrix가 무엇인가? 에 대한 내용은 지난 시간에 다루었다. 열심히 이 method, 저 method에 @HystirxCommand를 달아 놓고 이게 잘 동작하고 있는지 직접 확인을 하는건 작은 프로젝트에서는 가능할지 몰라도 서비..

Apache JMeter 설치부터 간단한 테스트까지 해보기 [내부링크]

성능테스트를 하는 방법은 여러가지가 있지만 가장 간단하게 할수 있는 도구중 하나인 Apache JMeter에 대해 알아보자. Apache JMeter는 오픈 소스 소프트웨어로 무료로 사용할 수 있고 JAVA Application이다. 설..

[MSA 시작 #5] Netflix Hystrix를 이용한 Circuit Breaker 쉽게 구현하기 [내부링크]

현재까지 Service Discovery, API Gateway, Configuration Externalization 등을 통해 MSA 수박 겉을 핥아보고 있다. 간단하게 현재까지 이런저런 기능을 구현했었는데 장애가 발생하는 경우에 대해서는 다룬적이..

springboot 기동 후 바로 종료되는 에러 [extShutdownHook] s.c.a.AnnotationConfigApplicationContext 해결방법 [내부링크]

springboot application을 기동하니 기동하자마자 로그 몇줄 찍히고는 바로 terminated 상태가 되어버린다. 오류도 나오지 않는다.. logging.level을 debug로 내리니 그래도 몇줄 더 보인다. 그리고 맨 마지막에는..

[MSA 시작 #4] Spring Cloud Config + Github 을 이용한 설정 변경 동적으로 반영하기 [내부링크]

MSA를 하면 당연히 어플리케이션 개수가 많아지고 그에 따라 어플리케이션마다 있는 설정 파일도 많아진다. 이렇게 되면 관리의 어려움이 생기고 이번에도 이런 관리의 어려움을 해결해주기 위해 Spring Cloud 형..

Zuul application.properties Configuration 번역 [내부링크]

하는김에 Eureka application.properties Configuration 번역에 이어 Zuul도 해놓으려고 한다. 번역의 정확도는 구글 번역에 문의를 해보길.. Name default Desc zuul.add-host-header false 프록시가 호스트 헤더..

Eureka application.properties Configuration 번역 [내부링크]

Eureka를 사용하면서 application.properties (application.yml) 에서 설정값에 대한 공부를 자세히 하고싶은데 자료를 찾는것이 쉽지 않다. 대부분의 포스팅은 매번 사용하는 비슷한 설정만 사용하고 그 외의 자..

[MSA 시작 #3] Spring Cloud Netflix Zuul 을 이용해 API Gateway 구성해보기 [내부링크]

지난 시간에 Eureka Server와 Eureka Client를 구성해 봄으로써 Service Registry, Discovery에 대해서 알아보았다. MSA처럼 여러개의 API Service 들을 생성하고 그것을 Eureka에 regist까지 해봤다. 이제 이 Eur..

[MSA 시작 #2] Service Discovery (Eureka) Server, Client 간단하게 구성해보기 [내부링크]

Monolitic 어플리케이션을 여러개의 서비스로 나누다 보니 서비스도 많아지고 그에 따라 인스턴스의 개수도 엄청나게 늘어난다. 또한 오토스케일링 기술을 사용하며 동적으로 ip가 바뀌기도 한다. 그래서 기존과..

No marketplace entries found to handle maven-compiler-plugin:3.8.1:compile in Eclipse. 오류 [내부링크]

이클립스에서 Maven project를 import를 하면 다음과 같이 No marketplace entries found to handle maven-compiler-plugin:3.8.1:compile in Eclipse. 오류가 발생을 하는 경우가 있다. 이것은 필자의 경우는 ST..

[MSA 시작 #1] MSA 개념 아주 쉽게 이해하기 [내부링크]

MSA (Micro Service Architecture) 가 이쪽 업계에서는 아주 뜨겁다. JD를 봐도 MSA 경험자 찾는 회사들이 엄청나게 많아진걸 보면 대세가 되어가고 있는듯 하다. 조금 공부를 해보니 그렇게 될 수밖에 없는듯 하..

FFmpeg 사용하여 동영상 해상도별, 시간별, 병렬처리 인코딩 테스트 [내부링크]

FHD (1920*1080) 영상을 FFmpeg을 이용하여 여러가지 사이즈의 동영상으로 인코딩을 해 보았다. 그리고 아주 적은 표본이긴 하지만 대략적인 테스트한 결과를 적어본다. 테스트 환경 CPU (2Core) : Intel Xeon Sil..

Ant build 시 error : unmappable character for encoding UTF-8 해결방법 [내부링크]

오래된 프로젝트의 배포환경을 구성해달라는 요청을 받았다. ant 로 빌드스크립트를 작성하고 빌드를 수행했는데 다음과 같은 오류메세지가 나오면서 빌드가 정상적으로 되지 않았다. build-project: [javac] Comp..

Tomcat 기동시 메모리 부족(Out of Memory Error) 관련 오류 해결방법 [내부링크]

tomcat을 사용하다보면 종종 다음과 같은 오류가 발생한다. # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 134217728 bytes f..

WAS 이중화에 따른 Tomcat Session Clustering [내부링크]

Springboot 내장 톰캣을 사용할때 session clustering에 대해서 글을 썼는데 역순으로 글을 쓰는것 같다. 이 글을 쓸때 이미 구성되어 있는 Tomcat server.xml 의 clustering 부분을 가져다가 썼는데 그것에 대해..

Springboot embedded tomcat Session Clustering (JAVA config) [내부링크]

springboot는 내장 톰캣을 사용하기에 server.xml 이라던지 context.xml 등등의 xml 설정파일이 없다. 하지만 이런 설정파일을 java config로 대체할 수 있다. 기존에 server.xml 에서 tomcat 간 session clusteri..

[nginx 기초] was 연결 및 http 로드밸런싱 설정하기 (초간단) [내부링크]

지난번에 간단하게 nginx 설치를 해봤다. 설치를 했으면 써먹어보자. 일단은 was와 연동을 하는 작업을 해보자. 보통은 web-was 연동을 해서 was라고 표현을 했지 프록시 서버 역할을 할거라 연결할 수 있는 무엇..

1분만에 Windows에 nginx 설치하기 [내부링크]

세션 클러스터링 관련 테스트를 해야 할 일이 생겼다. 이런 테스트를 하기 위해 서버 환경과 비슷하게 web 서버를 설치해야 했다. web 서버로 선택한것은 nginx. 내 로컬 윈도우에 설치를 해보자. nginx: download..

Slack에서 webhook 사용하기 (incoming-webhook) [내부링크]

이번 프로젝트는 의사소통수단으로 slack을 사용한다. slack을 사용하는 목적은 의사소통 뿐만 아니라 webhook을 이용해서 다양한 모니터링 도구와의 연동에 있다. slack에 들어가면 채널(채팅방이라고 생각하면..

MinIO "Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately" 오류 [내부링크]

minio를 실행시킬때 처음에는 잘 되는데 두번째부터는 이와 같은 메세지를 경험할 수 있다. "Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately" 최초..

MinIO API 사용하여 file upload 구현하기 [내부링크]

MinIO JAVA API 사용하는법 예제를 통해 쉽게 알아보기 지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용..

MinIO API 사용하는법 예제를 통해 쉽게 알아보기 [내부링크]

지난번까지 MinIO를 설치하고 어떻게 사용하는지에 대해서 살펴보았다. 물론 그냥 MinIO Browser 자체를 사용하는 사람도 있을거라 생각하지만 이것만 사용하는것은 앙꼬없는 찐빵같은 것이다. 어플리케이션과 연..

FFmpeg 사용해서 빠르게 인코딩 해보기 [내부링크]

영상을 다뤄야 하는 업무가 주어졌다. FFmpeg 이라는 처음 들어보는 프로그램을 사용해서 인코딩 및 디코딩 등의 업무를 해야 한다길래 조금 알아보니 이건 멀티미디어쪽에서는 엄청나게 유명한 프로그램이었다...

MinIO bucket 생성 및 파일 업로드 해보기 [내부링크]

MinIO 설치를 해보고 로그인까지 성공을 했으면 그다음은 사용을 하는 방법을 알아야 한다. 사실 인터페이스가 너무너무 직관적이라 따로 글을 쓸 필요도 없지만 그래도 hoxy 모를 사용자를 위해 글을 써본다. Mi..

linux 자주 쓰는 명령어 모음 [내부링크]

linux를 사용하며 자주 사용하는 명령어에 대해 정리한다. zetawiki.com/를 참조하였다. 리눅스 종류 확인 $ grep . /etc/*-release 다른 계정으로 전환 - testuser 계정으로 전환 $ su - testuser 특정 명령어 ro..

MinIO config.json을 통해 계정 초기화하는 방법 [내부링크]

MinIO를 설치하면 최초의 계정은 minioadmin/minioadmin 이다. 최초 minio를 실행하면 정상적으로 실행이 되고 지정한 위치에 data 폴더가 생긴다. 그리고나서 두번째 실행을 하면 처음에 실행했던 방법으로는 되..

MinIO 실행(start), 중지(stop) script 만들기 [내부링크]

지난번에 MinIO를 공식홈페이지에서 나온대로 설치를 해보니 불편한점이 있었다. 실행, 중지에 대한 별도의 script를 제공하지 않아서 MinIO에 대해서 잘 모르는 사람들은 이를 기동하기 힘들수도 있다는 생각이..

MSSQL에서 DataType Issue 성능개선 (VARCHAR type의 NVARCHAR type으로의 형변환 문제) [내부링크]

성능테스트를 할때 이슈가 발생을 하였다. 성능이 생각만큼 나오지 않아서 원인을 찾다가 한가지 흥미로운 사실을 발견했다. MSSQL은 DataType에 따라서 우선순위가 존재하는데 NVARCHAR가 VARCHAR보다 더 높은 우..

CentOS (linux) 에 MinIO (Object Storage) 설치하기 [내부링크]

예전에 파일 업로드를 위한 서버를 구성을 한적이 있었다. 들어온 요청(파일)을 특정 경로에 저장시켜주는 역할을 하는 하나의 JSP 파일을 가진 초간단 파일 업로드 서버였다. 이정도 역할만 해주면 되어서 더이..

폐쇄망에 Docker image (tarball) 설치 (save, load) [내부링크]

폐쇄망에 docker 설치를 마쳤다면 이제 Image를 설치해보자. 그냥 안되는걸 알면서 hello-world 되나 한번 쳐본다.. 역시 안된다. 인터넷이 되는 곳에서 가지고 와야 한다. 그럼 어떻게 가지고 올까? 이방법 저..

폐쇄망에서 Docker 설치하기 (CentOS) [내부링크]

docker를 사용하려면 기본적으로 외부망(인터넷이 되는 환경)이 되는 환경이어야 하는데 폐쇄망에서 docker를 설치해야 하는 경우도 있다. 이럴 경우 어떻게 docker를 어떻게 설치하는지 알아보자. 폐쇄망 Docker..

Docker 설치 후 is the docker daemon running 오류 [내부링크]

Docker를 설치하고 기분좋게 시작을 하려고 하는데 발생하는 오류가 있다. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? docker 돌고 있는거 맞냐? 라는..

Jenkins에 테마(스킨) 적용하기 [내부링크]

우리가 아는 jenkins의 익숙한 모습이다. 물론 과거 hudson부터 써온지라 이정도 디자인만 되어도 참 훌륭하다고 생각한다. 하지만 뭔가 개발은 하기 싫고 이런걸 꾸미고 싶은 날도 있다. 어제는 티스토리 코드블..

Jenkins 폐쇄망에서 plugin 설치하기 [내부링크]

Jenkins가 설치되어 있는 서버가 외부와의 통신이 되는 환경이면 좋겠지만 그렇지 않은 환경이 여지껏 더 많았다. 따라서 Jenkins를 설치할때도 이미 많이 사용하고 있는 플러그인들을 다 가지고 있는 Jenkins를..

[Zabbix 시작 #5] Dashboard 구성 및 모니터링 해보기 [내부링크]

전시간에는 Zabbix Agent 설치 및 Collector 서버와의 연동, 호스트 생성 등을 진행했다. 이제 이렇게 만들어진 Host를 바탕으로 Dashboard를 구성하여 본격적으로 모니터링 작업을 해보자. 일단 frontend에 접속..

[Zabbix 시작 #4] Zabbix Agent 설치 및 Zabbix Server 연동 [내부링크]

지난시간까지는 Zabbix Collector (Server) 에 대한 설치 및 설정을 했다면 이제 이 Server에 붙일 Zabbix Agent에 대한 설치 및 Zabbix Server와의 연동을 설정을 할 차례다. Zabbix Agent 설치 모니터링을 할 서..

[Zabbix 시작 #3] Zabbix Application Setup 및 비밀번호 초기화 방법 [내부링크]

설치를 다 마치고 Zabbix Setup 화면을 띄웠다면 90프로 이상은 다 한것이라고 보면 된다. 남은 부분을 얼른 마무리를 하고 모니터링을 하러 가보도록 하자. Welcome to Zabbix! 그간의 피로를 씻게 해주는 화면..

[Zabbix 시작 #2] CentOS에 Zabbix 설치하기 (zabbix + apache + php + mysql) [내부링크]

CentOS에 zabbix 설치를 해보자. zabbix는 zabbix를 하나 딱 설치하고 끝나는 것이 아니라 apache, php, mysql 등 여러가지를 같이 설치를 해주고 연동해줘야한다. 그만큼 설치난이도는 높은 편이다. 설치한 환경..

linux yum 으로 설치한 package 삭제하기 [내부링크]

지난번에는 rpm으로 설치한 package에 대해 삭제를 했는데 이번에는 yum으로 설치한 package를 삭제하는 방법에 대해 알아보겠다. yum 으로 설치된 package 목록을 확인한다. $ yum list installed | grep [설치한..

linux rpm으로 설치한 package 삭제하기 [내부링크]

기존에 rpm을 통해 설치한 package가 있는데 이를 지우고 싶은 경우가 있다. 가령 다음과 같은 상황이다. 사정상 더 낮은 버전의 zabbix를 설치해야 하는데 이미 최신버전이 깔려있어서 설치를 할 수 없다. 그래..

[Zabbix 시작 #1] Zabbix란 무엇인가? Zabbix에서 사용하는 용어 설명 [내부링크]

Zabbix를 사용하는 곳이 점차 늘고 있다. 사용을 해보니 왜 많은 곳에서 사용하고 있는지 알것 같다. 이제는 사용자의 입장에서 설치하고 연결하고 모니터링하는 역할을 수행해야 하기에 확실히 알고 넘어가야 할..

Docker Container에서 Host로 파일 Copy 하기 [내부링크]

Host에 있는 파일을 Docker Container로 복사를 해야할 상황이 생겼다. 방법은 간단했다. Host -> Container Copy $ docker cp /source/* contanier_name:/target/ 이런식으로 docker cp 명령어를 활용해서 하면..

Jenkins에서 Jasypt 암호화 Job 만들기 [내부링크]

Jasypt를 사용해서 암호화를 하는 방법은 지난번에 포스팅을 했다. Spring properties 파일의 내용 암호화하기 (with Jasypt) properties 파일을 구성할때 암호화가 필요한 부분들이 존재한다. 가장 대표적인 예가..

Spring properties 파일의 내용 암호화하기 (with Jasypt) [내부링크]

properties 파일을 구성할때 암호화가 필요한 부분들이 존재한다. 가장 대표적인 예가 datasource의 username, password 부분이다. 이것들은 정말 다양한 방법을 통해서 암호화가 되고 있지만 요즘 추세는 datasou..

Spring WebFlux는 무엇인가? 사용법은 어떻게 되나? [내부링크]

우리가 보통 사용하던 Spring MVC + RDBMS 패턴은 Blocking IO 방식이다. Blocking IO 방식이라는 것은 요청을 처리하기 전까지는 다른 작업을 수행할 수 없는 상태라는 것을 말한다. 동시에 여러 요청을 처리하기..

[Thymeleaf 시작 #4] Thymeleaf Layout 적용하기 [내부링크]

이전 포스팅까지는 Thymeleaf 의 문법을 위주로 보았다면 이번에는 layout 을 구성하는 방법에 대해서 알아보겠다. 기존에는 tiles를 활용하여 이런 layout을 구성하고는 했는데 Thymeleaf를 사용해서도 가능하다...

Docker build 시 Dockerfile : The system cannot find the file specified 오류 [내부링크]

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..

Docker image 조회, 추가, 삭제 방법 [내부링크]

지난번에 Docker의 Container를 컨트롤 하는 방법에 대해서 알아봤었고 이제 image 를 조회하고 추가하고 삭제하는 방법에 대해서 알아보겠다. Docker image 추가 $ docker pull tomcat docker 의 image를 가지고..

Docker Container 조회, 실행, 중지, 삭제 방법 [내부링크]

Docker를 사용하면서 가장 많이 사용하게 될 명령어들을 소개하고자 한다. 이전에 Docker에 관련된 글을 쓰면서 조회, 실행 방법은 소개가 되었지만 정리 차원에서 한번 더 다루고자 한다. Container 실행 $ docke..

Docker Windows 에 설치하기 [내부링크]

지난번에는 linux 환경에 docker를 설치해서 이런저런 container 들을 등록하고 실행도 시켜봤었다. 이제 Windows10 환경에서 docker를 설치하고 사용해야 하는 상황이 되었다. Windows에 설치하려고 보니 제약이..

[Thymeleaf 시작 #3] Thymeleaf 에서 지원하는 API (Base objects 및 Utility Objects) [내부링크]

이번에는 생각해서 작성한 내용 없이 Thymeleaf 공식 홈페이지에서 지원하는 API 목록 을 쭉 긁어왔다. 왜냐면 공식사이트가 너무 느려서 한번씩 찾아볼때마다 울화통이 터진다.. 출처 : https://www.thymeleaf.or..

[Thymeleaf 시작 #2] Thymeleaf 기본 사용법, 문법 예제 [내부링크]

비교적 최근에 나온 기술답게 thymeleaf 도 메뉴얼이 아주 훌륭하다. Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for b..

[Thymeleaf 시작 #1] Thymeleaf 사용하는 프로젝트 만들어보기 [내부링크]

springboot 로 기존의 app을 converting 하며 가장 충격?적이었던 말은 'JSP는 더이상 권고하지 않는다. Thymeleaf나 Freemaker, Jade4j 와 같은 template engine 사용을 권고한다.' 라는 것이었다. PHP를 사용하..

Could not calculate build plan : one of its dependencies could not be resolved 오류 해결하기 [내부링크]

새로운 Maven 프로젝트를 생성했을때 다음과 같은 오류를 종종 만나볼 수 있다. Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar-plugin:3.2.0 or one of its dependencies could no..

Tomcat Context Path가 / 인 경우 manager 접근방법 [내부링크]

상용 WAS 들이 생각나지 않을만큼 강력한 Tomcat에서 아쉬운점은 admin console 역할을 하는 GUI 가 없다는 것이다. 아니다. 사실은 있다. Tomcat Manager 라고 불리는데 기능은 상용 WAS 에서 제공하는 것만은 못..

Java Decompiler Eclipse Marketplace에서 받아 설치하기 [내부링크]

일전에 이클립스에서 클래스 파일 디컴파일을 하기 위해 JadClipse를 이용하는 방법에 대해 포스팅한적이 있다. 이클립스용 Java Decompiler JadClipse 설치방법 Jad는 Decompiler 이다. 다음 링크를 통해 Jad를..

Scouter <unknown> & Failed to create the part's controls 오류 해결 [내부링크]

Scouter Client (Viewer) 를 실행하면 다음과 같이 오류가 나오는 경우가 있다. Failed to create the part's controls 오류가 크게 있어서 눈에 확 띄지만 그것보다 중요한것은 이라고 표시된 부분이다. 이 오류..

CentOS (linux) 에서 Scouter 설치 및 Agent와 연동하기 [내부링크]

전에는 Jennifer 같은 유료 모니터링 솔루션을 거의 다 썼다면 요즘엔 오픈소스 모니터링 솔루션을 많이 사용한다. 그 중 LG CNS에서 만들어서 배포하는 오픈소스 APM (application performance monitoring) 을 설..

[git 시작 #4] branch 생성 / 삭제 / 변경 (CLI 환경) [내부링크]

이전까지 작업을 통해 소스코드를 git에 올리고 또 이클립스에서는 어떻게 branch의 소스를 mergy 하는지에 대해서 알아보았다. branch와 mergy를 하는것이 3편이었는데 branch를 생성하는것이 3편이다.. 사실 작..

log4j에서 slf4j + logback 으로 전환하기 [내부링크]

log4j는 한때 위용을 떨쳤던 강력한 logging framework였다. 하지만 세월이 흐르고 기술은 발전하여 더 나은 logging framework들이 등장했다. 성능적인 측면이나 기능적인 측면에 더욱 발전하여 전환은 선택이 아..

Jenkins + gitlab 연동 및 webhook 으로 연결하기 [내부링크]

일단은 이 둘을 연결하기 전에 webhook이라는 개념부터 알고 넘어가자. webhook이란 간단히 말해 서버(이글로 치면 gitlab)에서 어떤 이벤트가 발생했을때 클라이언트(jenkins)에게 알릴수 있는 메커니즘이라고 이..

[git 시작 #2] gitlab에 프로젝트 등록하기 [내부링크]

git을 local에 설치한 이유는 gitlab에서 직접 프로젝트를 등록하기가 어렵다. 또한 git을 사용하기 위해서는 CLI 환경에 익숙해지기도 해야한다. 그래야지 다양한 git의 기능을 십분 활용할수 있다. 일단은 local..

[git 시작 #1] local PC에 git 설치하기 [내부링크]

git을 그동안은 누군가가 만들어 놓은 git을 이용하기만 했지 내가 직접 git 프로젝트를 생성해본적은 없었다. 새로운 프로젝트를 생성해야 하는 상황이 되었고 한번 해보자! 일단 git이 local에 호옥시 설치가..

Spring PropertyPlaceholderConfigurer를 통해 불러온 값이 null이 나오는 현상 해결방법 [내부링크]

Spring에서 외부 환경변수의 값을 가지고 오는 방법은 다양하다. 그중 하나가 PropertyPlaceholderConfigurer 를 통해서 가져오는 방법이다. 가장 일반적인 방법이다. 사용법은 다음과 같다. classpath*:/config/t..

org.apache.catalina.loader.WebappClassLoaderBase modified 오류가 나며 무한재기동하는 현상 [내부링크]

org.apache.catalina.loader.WebappClassLoaderBase modified 가 나오면서 어플리케이션이 수정되지 않았는데도 무한으로 서버가 재기동되는 현상이 발생했다. 이 현상은 여러가지 원인이 있지만 내가 찾은 해결..

Cannot change version of project facet Dynamic Web Module to 3.0 오류 해결하기 [내부링크]

이 오류는 웹 프로젝트를 진행하다보면 흔히 만날수 있는 오류이다. web.xml에서는 Dynamic Web Module이라는것을 3.0으로 정의를 했는데 이것과 project facet 의 version이 다르다는 것이다. project facet 이..

Jenkins에서 maven settings.xml 정의하기 [내부링크]

maven project를 수행할때 필요한 settings.xml 파일은 보통은 MAVEN_HOME/conf 밑에 존재한다. 이곳은 전역 설정을 위한 곳이고 /USER_HOME/.m2/settings.xml 이렇게 지역설정을 할 수 있다. 하지만 이런 설정들..

Sonarqube 실행시 No quality profiles have been found, you probably don't have any language plugin installed. 오류 [내부링크]

docker로 sonarqube를 설치하고 script를 작성하고 돌려보았다. "No quality profiles have been found, you probably don't have any language plugin installed" 이라는 오류가 떨어지면서 fail 이 발생했다...

linux에서 nc (Netcat) 을 이용하여 방화벽 확인하기 [내부링크]

web/was 세팅을 마치고 브라우저에서 잘 연결이 되는지 확인을 하려고 nginx에 설정한 도메인을 딱 치는순간! 왜 이런 오류가 날까? 원인을 파악해 보니 web서버에서 was서버로 (물리적으로 다른 서버) 연결을 하..

linux (jenkins shell)에서 springboot project backgroud로 실행하기 [내부링크]

springboot 로 프로젝트를 구성하고 배포환경을 구성하였다. 이제 실행 스크립트만 작성을 하면 되는데 문제가 생겼다. 내장 was를 사용하기에 springboot 실행/중지 파일 (start.sh/stop.sh) 을 직접 만들어줬고..

linux 환경에서 maven repository settings.xml 설정하기 [내부링크]

이클립스 환경에서는 Window > Preperences > Maven > User Settings 에서 settings.xml 파일의 위치를 지정할 수 있었다. 그럼 linux에서는 어디에서 할까? 바로 이곳에서 한다. $ vi /maven 설치경로/maven/conf..

Docker 에서 "vi : command not found" 오류 해결 [내부링크]

꼭 docker에 국한된건 아니고 vim 이 설치가 되지 않은 OS에서 설치하고 실행하는 방법을 가이드한다. 뭐 이런 오류가 난다. 이유는 간단하다. vim 이 설치되지 않았기 때문이다. 설치하면 된다. 설치하는 방법은..

Nexus3 3rd party repository 생성 및 upload 하기 [내부링크]

nexus 초기 구성을 할때 3rd party library를 올리기 위한 공간도 생성을 해두는 것이 좋다. release에 두고 쓸수는 없으니 말이다. 생성을 하는 방법은 간단하다. 맨 위의 설정을 누르고 Repositories > Create..

Docker Container 접속해서 작업하기 ( with jenkins initialAdminPassword ) [내부링크]

docker를 써보면서 image를 run 해서 설치 및 실행을 해봤다. 하지만 이건 docker 내부 Container 에 설치가 되는 것이기 때문에 host에서 설치된 내용에 대해 찾아봐도 찾을수가 없다. (설치 시 디렉토리 마운트..

Docker Official images 목록 확인 및 설치 및 실행(run) [내부링크]

docker 설치가 완료 되었다면 이제 container를 구성해보자. Docker Official images 확인 docker에서는 쉽게 container를 만들 수 있도록 docker hub에서 official image를 제공을 해주고 있다. Docker Hub hub.d..

CentOS (linux) 에서 docker 설치하기 [내부링크]

이 카테고리에 linux에 여러가지 app (svn, gitlab, sonarqube... )을 설치를 했었다. 하지만 요즘 유행하는 docker에 설치를 한다면 먼저 설명했던 설치방법보다 훨씬 간단하게 설치할 수 있고 관리도 용이하다...

Docker "Is the docker daemon running?" 오류 조치 [내부링크]

요즘 docker를 사용해서 서버를 구성하고 있다. 확실히 편리하다. 개념만 조금만 더 잡으면 서버를 구성하는데 훨씬 빠르게 편리하게 할 수 있을것 같다. 사람들이 많이 쓰는데는 다 이유가 있다. 사용하다 보니..

linux에서 서버간 SSH 연결이 안될때 hosts.allow 설정 [내부링크]

배포환경을 구성하다보면 서버간 ssh 연결이 안되는 경우(거의 대부분)을 볼수 있다. 이럴 경우에는 방화벽으로 막혀 있는것이 아니라면 hosts.allow 설정으로 해결할 수 있다. 배포서버를 A, 개발서버를 B 라고..

CentOS (linux) 에서 git, gitlab설치하기 [내부링크]

개발서버에 git 을 설치해야 한다. 사용을 해본적은 있어도 설치는 해본적이 없었는데 역시 요즘 기술답게 설치는 어렵지 않았다. 간단하다. git 설치하기 가장 간단한 방법은 wandisco 사의 repo를 활용하는 것이..

CentOS (linux) 에서 SVN 설치하기 [내부링크]

git이 대세이고 흐름을 따라가야 하지만 일부 소규모 프로젝트에서는 svn을 고집하는 경우가 아직은 많이 있다. 그래서 이번엔 svn을 linux 환경에서 어떻게 설치하는지 알아보도록 하자. (사용자 계정으로 설치한..

Sonarqube 실행시 unable to start jvm permission denied (13) 오류 조치 [내부링크]

sonarqube를 설치하고 실행을 하면 unable to start jvm permission denied (13) 오류가 떨어지는 경우가 있다. 실행을 시켰을때는 바로 확인을 할수는 없고 /sonarqube 설치경로/logs/sonar.log 파일을 보면 다음..

CentOS (linux) 에서 Nexus 설치하기 [내부링크]

maven 방식의 프로젝트들이 많아짐에따라 nexus를 설치해야 하는 경우들도 많아졌다. 일단 nexus는 외부와 통신이 되는 서버에 놓는것이 맞다. 내부망에서도 사용은 가능하지만 없는 라이브러리 같은 경우는 직접..

CentOS (linux) 에서 JAVA 설치하기 (openjdk11) [내부링크]

CentOS에서 JAVA를 설치해보자. openjdk11 을 설치할것이기 때문에 이것부터 구해야 한다. Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously..

CentOS (linux) 에서 사용자 추가 및 폴더 권한 설정하기 [내부링크]

리린이(리눅스어린이)에게 서버 구성의 임무가 주어졌다. 리눅스를 많이 사용해보긴 했어도 남이 구성한 환경 위에서 기본적인 명령어나 shell script 정도 만들어서 동작시키고 하는것이 전부였는데 처음부터 구..

linux에 Apache Ant 설치하기 [내부링크]

지금은 많이 사용되지 않는 기술인 ant 이지만 언젠가는 다시 사용할수 있기에 설치방법을 정리해본다. (지금은 2020년인데 아직도 어느 프로젝트에서는 ejb 2.0을 사용하는 곳도 있기에...) 일단 ant 를 다운로드..

Logback 이란? 설정방법 및 사용방법 [내부링크]

기존 log를 관리하기 위한 구현체로써 log4j가 사용되었다. 그러나 보다 안정성이 높고 편리하게 log를 관리하기 위해 Logging framework인 Slf4j(Simple Logging Façade for Java)와 그 구현체로써 Logback이 고..

Spring Batch Tasklet Example with StepExecutionListener [내부링크]

앞서 설명한 Chunk 방식을 사용하지 않는 경우 Tasklet 방식의 Batch를 사용한다고 했었다. 두 방식 모두 많이 쓰이는데 장단이 있다. 생각나는대로 말해보면 Chunk 방식은 포맷이 딱 정해져 있어서 그에 맞게 코..

Springboot 환경에서 JSP 파일 재기동 없이 반영하기 [내부링크]

springboot로 기존에 있던 프로젝트를 전환을 하고 화면개발을 시작하는데 JSP 파일을 수정하고 아무리 새로고침을 해보고 캐시도 날려보고 요란법석을 떨어도 반영이 되지 않았다. 서버를 재기동해야만 이게 반영..

Spring + Quartz Scheduler 활용하여 자동실행하기 [내부링크]

Quartz scheduler란? 거의 모든 Java 응용 프로그램에 통합 할 수 있는 풍부한 기능의 오픈 소스 작업 스케쥴 라이브러리이다. 보통 배치작업이나 변경된 정보를 주기적으로 reload 해주기 위해 사용한다. 대략..

JSP에서 Custom Tag Library 만들어서 사용하기 [내부링크]

JSP를 사용하여 하나의 프로젝트를 하면 알게모르게 수많은 Tag Library를 사용하게 된다. Tag Library란? 자바 코드를 캡슐화 하여 JSP에서 간단하게 사용할 수 있게 해주는것을 말한다. 이런 수많은 Tag Librar..

windows 서버일때 Jenkins에서 ftp 사용하기 [내부링크]

windows 서버는 기본적으로 ssh를 지원을 하지 않는다. 따라서 windows 서버에 배포를 하기 위해서는 openssh 를 설치하거나 ftp로 배포를 해야 한다. 이중 ftp를 사용하여 배포하는것을 설명하려고 한다. 일단 wi..

Jenkins로 Windows Server tomcat start 하기 [내부링크]

Windows 서버로 진행을 하는 프로젝트를 몇번 진행을 해봤지만 우리 생활에 밀접하게 있는 OS라 친숙하면서도 SSH, FTP, 방화벽 등등 리눅스보다 다루기 어려운 부분들이 많이 있었다. 이 Windows 서버에 개발서버..

Apache에서 HTTP > HTTPS Redirect 하는 방법 [내부링크]

SSL을 설치를 해도 거의 대부분의 사람들은 URL을 통한 접근을 할 때 HTTP protocol로 입력을 하고 들어온다. 그렇다고 사용자들보고 꼭 우리 사이트는 HTTPS protocol을 사용하니 https://xxxx.xxxx 이렇게 들어..

Spring application.properties Util로 만들어 쉽게 값 가져오기 [내부링크]

spring의 환경변수를 정의하는 역할을 하고 있는 application.properties 파일의 내용을 가지고 오는 방법은 여러가지가 있다. 하지만 이 여러가지 방법들은 사용을 하기 번거로울수도 있고 또한 bean이 아닌 POJO..

Jenkins master slave 구조로 구성하기 [내부링크]

Jenkins에서 master-slave node로 구성하는건 분산 빌드라던지 원격지에서 원격지로의 배포 등 여러가지 용도로 사용될 수 있다. Jenkins를 사용한다면 실제 빌드는 모두 Jenkins가 위치한 서버에서만 가능한데 이..

spring + mysql datasource 설정 [내부링크]

spring에서 mysql datasource를 설정하는 방법이다. pom.xml 에서 mysql 연동을 위한 driver를 가지고 온다. mysql mysql-connector-java 8.0.20 applicationContext에서 datasource 설정을 다음과 같이 한다. (xm..

MyBatis 성능 향상시키는 방법 (with fetchSize, mapUnderscoreToCamelCase) [내부링크]

dataaccess를 혁신적으로 편하게 만들어준 MyBatis. SI를 수행하는 사람은 모르는 사람이 없는 스킬셋이다. 이 MyBatis를 사용할때 성능을 꽤 올릴수 있는 방법들이 있다. 대량데이터를 조회하는 query 설정에 fet..

Logback 오류 해결 - NoSuchMethodError: ch.qos.logback.classic.LoggerContext.removeObject(Ljava/lang/String;)V [내부링크]

springboot 1.4.2 를 사용하다가 2.x 로 versionup을 하였다. 오 생각보다 별 이슈 없이 잘 되네? 하며 종속성 에러를 다 잡고 서버를 기동하는 순간 다음과 같은 오류가 떨어졌다. 이 익숙한듯 익숙하지않은 익..

Springboot 2.x migration 시 ObjectPostProcessor not found 대처방법 [내부링크]

잘 돌아가던 springboot 1.x 기반의 웹프로젝트를 사용하다가 msa 관련 지원이 더 유연한 springboot 2.x 로 전환을 해야 했다. springboot 2.x 로 migration을 하려면 생각보다 많은 부분을 봐야 한다. 기본 spri..

MyBatis foreach를 이용하여 성능 개선하기 [내부링크]

batch 성 업무를 처리할때 동일한 쿼리에 바인딩할 값만 변경하여 계속 반복하며 처리해야 하는 상황이 있다. public void updateEmployee(List list) { for (Employee employee : list) { sqlSession.update("Emp..

Spring Transaction 오류시 체크사항 [내부링크]

프로젝트를 수행함에 있어 오픈시 가장 크리티컬한 문제이기도 하고 자주 문제가 발생하는 부분인 Transaction 오류에 관련된 내용을 정리해본다. Transaction이 잘 수행되다가 사용자가 몰리면 DB가 죽는경우 Spr..

JSP에서 Spring application.properties value 가지고 오기 [내부링크]

JSP에서 spring 설정 파일인 application.properties 안의 내용을 가지고 와야 할 경우가 있다. 이럴 경우는 다음과 같이 간단하게 가져올 수 있다. 위와 같이 정의하면 jspPath라는 변수에 spring.mvc.view.prefi..

Springboot 환경에서 web.xml 의 jsp-config 사용하기 [내부링크]

기존의 프로젝트를 springboot 전환 과정에서, 모든 jsp에서 include하고 있는 공통 jsp 파일에 대해 전환하는 부분을 찾기 힘들었다. stackoverflow 같은곳에서 도움을 얻고자 열심히 찾아보았지만 jsp 자체가 sp..

Maven build 시 Exception in thread "main" java.lang.AssertionError 해결방법 [내부링크]

Maven 프로젝트를 빌드할때 java.lang.AssertionError 이 발생하는 경우가 있다. Exception in thread "main" java.lang.AssertionError at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)..

Maven 명령어 및 옵션 모음 [내부링크]

maven에서 사용할 수 있는 명령어들에 정리해본다. command desc compile 컴파일 수행 test 컴파일 수행 후 테스트 클래스 수행 package 컴파일을 수행하고 컴파일한 소스를 packaging 양식(war or jar)에 맞춰 프..

Jenkins Pipeline script from SCM + Git 활용해 빌드하기 [내부링크]

전에 Jenkins 내에서 pipeline script 작성을 하여 Jenkins Pipeline으로 Job 병렬처리 하는것을 해보았다. 말 그대로 Jenkins Job을 구성할때 Pipeline 영역에 DSL을 작성을 하는 것이다. Jenkins Pipeline 으로..

Jenkins Pipeline 으로 Job 병렬처리하기 [내부링크]

Jenkins를 사용하다보면 비슷한 성격의 Job들을 병렬로 처리하기를 원하는 경우가 있을수 있다. 이럴 경우는 pipeline 을 사용하여 간단하게 처리할 수 있다. pipeline이란 전용 DSL을 통해 코드로 빌드 과정을 나..

rc.local 을 이용해 서버 부팅시 Jenkins, SVN, Sonarqube 자동 실행하기 [내부링크]

서버는 영원히 부팅된채로 동작할 수 없다. 패치에 따라 혹은 새로 반영해야할 무언가가 있으면 재부팅을 해줘야 한다. 그럼 재부팅을 할때마다 서비스를 수동으로 다 동작시켜야하는가? 물론 아니다. 다 방법이..

Jenkins에서 File Choice Parameter 를 이용해 백업 파일 리스트 가져오기 [내부링크]

Jenkins를 통해 배포환경을 구성하고 실제 운영을 할 때 빌드 및 배포를 한 버전의 application이 문제가 생겼을 경우 급하게 이전 버전으로 복구를 하고 싶은 경우가 있다. 예전에 nexus를 통해서 이와 비슷한 방..

Shell script 문자열 앞뒤 공백 지우기 (trim) [내부링크]

지난번에 "Jenkins에서 Build FAILURE 시 특정 위치에 로그남기기"를 하며 거기에서 사용된 Shell Script가 있다. Jenkins에서 Build FAILURE 시 특정 위치에 로그 남기기 Jenkins에서 빌드를 하던지 배치를 돌리..

springboot Banner 설정 및 Banner 생성 사이트 추천 [내부링크]

springboot를 기동을 시작하면 제일 먼저 다음 문구가 나오는것을 확인할 수 있다. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | |..

Jenkins에서 Build FAILURE 시 특정 위치에 로그 남기기 [내부링크]

Jenkins에서 빌드를 하던지 배치를 돌리던지 할때 오류가 발생을 할 수 있다. 이때 오류에 대해서 즉각 noti를 받고 싶은 경우라면 일반적으로는 Jenkins와 연동이 되는 email noti를 받던지 slack을 통해서 noti..

javascript String prototype 기본 예제(replace, null check, validation etc..) [내부링크]

 자주 쓰이는 String prototype 에 대한 정리 (긁어모으기!) /** * 문자열 replaceAll */ String.prototype.replaceAll = function (target, replacement) { return this.split(target).join(replacement); }; /*..

Client IP IPv4 형식으로 획득하는 방법 [내부링크]

웹어플리케이션을 개발하면 거의 필수적으로 하는 것이 바로 클라이언트 IP를 획득하는 것이다. 왜냐? 누가 뭘 하는지 알아야 문제가 생겼을때 대처가 가능하기 때문이다. 어떻게 IP를 얻어올수 있는가? public st..

lombok 설치 및 @Slf4j 사용방법 [내부링크]

자바로 코딩을 할때 반복적으로 또는 기계적으로 작업을 해야 하는 몇몇 경우가 있다. 예를들면 model 클래스를 작성할때 멤버변수를 정의하고 그에 따른 getter, setter 등을 만든다거나 로그를 사용할 클래스에..

Nexus에 deploy하고 Jenkins에서 deploy 된 목록 가지고 오기 [내부링크]

이번에 소개할 내용은 소스를 빌드하여 nexus에 배포를 하고 그 배포된 파일 목록을 Jenkins에서 가져와 원하는 파일로 was에 배포를 하는 것이다. 이게 뭐하는 일인가 싶을수도 있지만 was에 배포한 파일이 잘못..

Eclipse JSP, Html, CSS 파일 인코딩 깨져서 보이는 문제 [내부링크]

이클립스로 개발환경을 새로 구성을 할때 기존의 소스를 import 를 시키고 JSP나 Html, CSS 파일 등을 열어보았을때 인코딩이 깨지는 경우가 있다. 이런식으로 인코딩이 깨지는데 해결방법은 두가지가 있다. 첫번..

NoClassDefFoundError: org/apache/commons/logging/LogFactory 오류 [내부링크]

프로젝트를 하다 보면 LogFactory 관련 오류가 나는 경우가 있다. 말그대로 LogFactory 클래스를 찾지 못해서 발생하는 exception이다. 이유는 다 exclusion 만 시켰지 '연결'을 시켜주지 않아서이다. org.spring..

maven-dependency-plugin 오류 - Artifact has not been packaged yet. When used on reactor artifact, copy should be executed after packaging: see MDEP-187 [내부링크]

이클립스를 통해 Maven 프로젝트 수행시 다음과 에러가 나면서 에러표시가 사라지지 않는 경우가 생긴다. 이건 자식 프로젝트의 pom.xml 설정이다. 결론부터 미리 말하자면 위와 같은 오류가 발생했을때는 조치를..

Spring Batch Chunk Example (2) - DB to DB (with MyBatisPagingItemReader, JdbcBatchItemWriter) [내부링크]

지난 글인 File to File 예제를 통해 어떤것이 Chunk 지향적인것인지 간단히 알수 있었다. Spring Batch Chunk Example (1) - File to File (with FlatFileItemReader, FlatFileItemWriter) 현재까지 진행한 대부..

Spring Batch Chunk Example (1) - File to File (with FlatFileItemReader, FlatFileItemWriter) [내부링크]

현재까지 진행한 대부분의 프로젝트는 복잡하기도 하고 상황에 맞지 않아(WebService, EAI 연동 등) Spring Batch에서 일반적으로 사용하고 있는 chunk 방식 대신에 tasklet을 이용하여 사용하였다. tasklet을 이..

Maven 프로젝트 JDK 8 에서 JDK 11로 migration [내부링크]

요즘 JAVA 버전이 참 정신없이 나오고 있다. 6개월에 한번씩 버전업데이트라니... 유료화 되면서 구독형 라이센스니 뭐니 해가지고 신경써야 되는게 늘었다... 개발환경을 구성해야 하는 입장에서는 발빠르게 대응..

Jenkins에서 Spring Batch Scheduling 하기 [내부링크]

Spring Batch 를 통해 Batch Job을 만들었으면 이걸 주기적으로 돌려주는 무언가가 필요하다. 배치와 스케쥴러를 혼동하는 사람들이 종종 있는데 이것은 완전히 다른 개념이다. 배치는 실시간으로 처리를 하는것이..

Cross Browsing Issue - Radio Button 'checked' not working [내부링크]

라디오버튼(input type="radio") 을 핸들링 시 크롬에서는 정상동작하지만 IE에서는 비정상으로 동작하는 경우가 있다. 바로 다음과 같은 경우이다. .attr("checked", true); 이렇게 작성을 하면 IE에서는 정상동..

Spring Batch 초간단 환경 구성하기 (xml config) [내부링크]

spring batch는 여러 회사가 제각기 만들던 batch framework을 통합시켰을만큼 잘 만들어진 batch framework이다. 많은 사람들이 사용을 하고 또 표준이 되었다는건 그만큼 강력한 기능과 누구나 쉽게 다룰수 있는..

Tomcat username / password 암호화 (with DataSourceFactory) [내부링크]

tomcat에서 jndi datasource 설정을 하는 방법은 전에 알아보았다. Tomcat JNDI Datasource 설정하여 Spring 연동하기 보통은 로컬 개발환경을 제외하고는 was에 datasource 설정을 하는 JNDI 방식을 많이 사용을..

Tomcat JNDI Datasource 설정하여 Spring 연동하기 [내부링크]

보통은 로컬 개발환경을 제외하고는 was에 datasource 설정을 하는 JNDI 방식을 많이 사용을 한다. JNDI는 datasource 설정을 was에서 하고 효율적인 connection pool 관리 등 여러가지 장점을 가지고 있어서 주로..

Eclipse, tomcat 환경에서 hot deploy 적용하기 (with springloaded) [내부링크]

springloaded는 hot deploy를 가능하게 해주는 기술 중 하나이다. hot deploy는 뭐냐? 쉽게 설명을 하자면 소스의 변경을 was의 재기동 없이 반영을 해주는 것이라고 생각 하면 된다. was의 재기동은 상황에 따라..

Spring Batch를 Spring Boot Batch로 migration 하기 [내부링크]

전에 spring 프로젝트를 springboot 프로젝트로 migration 하는 과정을 기술한 적이 있다. 마찬가지로 현재 Spring Batch로 구성된 batch 프로젝트를 springboot batch로 전환을 하려고 한다. 두 프로젝트 모두 ma..

jenkins에서 svn tag를 이용해 build 하기 [내부링크]

svn을 통한 배포 관리 (trunk, branches, tags 활용) 지난번에는 svn에 trunk, branches, tags 생성하는 방법에 대해서 알아보았다. svn trunk, branches, tags 생성하기 (with svn:E160013) 일단 TESTSVN 이라는..

svn을 통한 배포 관리 (trunk, branches, tags 활용) [내부링크]

지난번에는 svn에 trunk, branches, tags 생성하는 방법에 대해서 알아보았다. svn trunk, branches, tags 생성하기 (with svn:E160013) 일단 TESTSVN 이라는 svn repository 를 생성을 하였다. (svn 은 설치가 되..

[git 시작 #3] Eclipse 에서 Git 사용법 (Cherry Pick Merge) [내부링크]

git을 더욱 효과적으로 사용할 수 있도록 도와주는 여러 도구들이 있지만 오늘은 이클립스에서 git plugin을 통해서 git을 사용하는 방법에 대해 알아보겠다. 요즘 나오는 이클립스나 STS는 모두 git이 기본적으로..

Spring Transaction Propagation을 예제를 통해 알아보자 [내부링크]

spring에서 transaction propagation 은 전파옵션을 뜻한다. 전파옵션이라는 것은 트랜잭션을 시작하거나 기존 트랜잭션에 참여하는 방법에 대해 결정하는 속성값 정도로 생각하면 된다. 즉 큰 트랜잭션의 흐름을..

Cross Browsing Issue - IE에서 popup 띄울때 scrollbar 생기지 않는 문제 [내부링크]

javascript에서 window.open() 으로 popup을 띄울때 스크롤바가 생성이 되지 않는 현상이 있다. 물론 크롬에서는 문제 없이 잘 된다. 항상 이놈의 IE가 문제를 일으킨다. 문제가 발생한 원인은 IE에서는 스크롤바..

svn trunk, branches, tags 생성하기 (with svn:E160013) [내부링크]

일단 TESTSVN 이라는 svn repository 를 생성을 하였다. (svn 은 설치가 되었다는 전제) svnadmin create --fs-type fsfs /app/svn/TESTSVN 생성을 마치면 이클립스에서 바로 생성된 svn 주소를 통해 만든 Reposit..

Sonarqube Ruleset import, export 하기 [내부링크]

Sonarqube를 사용하다 보면 특정 프로젝트에 맞게 룰셋을 정의해야 하는 경우가 생긴다. 룰셋 관련 파일을 받았을 때 이를 어떻게 Sonarqube에 적용을 해야 하는지, 또 어떻게 룰셋 파일로 추출해 내는지에 대해..

Apache 중지/시작/재시작 및 로그설정 [내부링크]

apache 설치 위치가 /app/webserver/apache 라고 한다면 기동 명령어인 apachectl (or httpd) 은 /app/webserver/apache/bin 에 위치하고 있다. 이곳으로 이동한다. 중지 : ./apachectl stop 시작 : ./apachectl s..

Jenkins에 Sonarqube 연동하기 [내부링크]

Jenkins와 Sonarqube 연동을 하려면 일단 Jenkins와 Sonarqube가 설치가 되어 있어야 한다. 각각의 설치 과정은 생략하도록 하겠다. 이 두개의 어플리케이션이 설치가 되어 있다는 가정하에 설명을 하도록 하겠다...

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (5) - 빌드 및 실행 [내부링크]

수많은 삽집을 해가며 결국에는 전환에 성공을 했다. 아주 초간단으로 최소한의 것들만 바꾸고 전환한거라 앞으로 할일(applicationContext의 java config 전환, spring properties 활용 등)도 많지만 그래도 기쁜..

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (4) - logback [내부링크]

2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration..

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (3) - 파일 추가 및 변경 [내부링크]

2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration..

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml [내부링크]

2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 위의 글에서 springboot 전환의 첫 걸음인 pom.xml 전환을 해 보았다. 그다음은 web.xml 파일..

spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml [내부링크]

요즘? MSA가 많은 IT 선도기업들 사이에서 사용이 되면서 보수적인 IT 회사들도 그 장점에 혹해서 기존의 Monolithic Architecture에서 탈피하고 싶어하는 움직임을 보이고 있다. 스프링 개발팀은 이렇게 추세가..

Jenkins에 JaCoCo 연동하기 [내부링크]

JaCoCo (Java Code Coverage)는 품질 측정 도구중 하나로 동적 소스 분석 툴에 해당한다. 쉽게 설명을 하자면 내가 개발을 하면서 100가지 기능을 만들었는데 이 기능들이 모두 잘 사용이 되고 있는지 검사를 해주..

Shell Script와 Crontab으로 오래된 로그, 백업파일 자동 지우기 [내부링크]

logback이라던지 log4j2 등 비교적 최근에 나온 logging framework을 사용하면 appender를 이용해 시간이 오래 된 로그를 삭제할 수 있지만 그 전에 나온 log4j 등의 logging framework은 이런 기능이 없다. 따라..

spring + mssql datasource 설정 [내부링크]

spring에서 mssql datasource를 설정하는 방법이다. pom.xml 에서 mssql 연동을 위한 driver를 가지고 온다. com.microsoft.sqlserver sqljdbc4 4.0 applicationContext에서 datasource 설정을 다음과 같이 한다...

Jeus 인코딩 문제 해결방법 [내부링크]

Jeus WebAdmin 진입 후 Servers > 적용할 서버 선택 > Basic 탭 > Basic Info > JVM Option 에서 -Dfile.encoding=UTF-8 추가 Servers > 적용할 서버 선택 > Engine 탭 > Web Engine > Basic > 고급선택사항 에서..

이클립스 svn cleanup 오류 SQLite로 해결하기 [내부링크]

이클립스 환경에서 SVN sync를 맞추고 update든 commit이든 하려고 하면 아주 가끔 다음과 같은 오류창이 뜨면서 당황하게 한다. 나는 commit 할것이 하나도 없고 update만 받아야 될 상황이고 프로젝트가 작다면..

Logback에 spring profile을 적용하기 [내부링크]

logback에 spring profile을 왜 적용하는가? 이유는 간단하다. 하나의 파일만 만들기 위해서다. spring profile을 적용하지 않는다면 logback.xml 하나만 있어도 될걸 logback-dev.xml, logback-prd.xml 등등 각 P..

Spring RESTful 샘플 간단히 구현해보기 [내부링크]

RESTful은 REST + WebService 으로 REST 원리를 따르는 시스템 정도로 이해하면 될듯 싶다. 그럼 REST(REpresentational State Transfer)는 무엇일까? HTTP URI (eg. /customer)로 자원을 표현하고 Method(GET, P..

maven 에서 3rd party library 가져오기 [내부링크]

maven으로 프로젝트를 진행하다보면 3rd party library를 가져와야 하는 상황이 있다. 3rd party library는 maven central repository에는 물론 등록되지 않은 library이다. 일반적으로 이럴 경우에는 remote repo..

spring + hikariCP datasource 설정하기 (xml, properties, java config) [내부링크]

springboot 2.0 부터 기본 JDBC Connection Pool 로 지정이 된 hikariCP 라는 JDBC Connection Pool 이 있다. 나온지가 꽤 오래 되었지만 매번 쓰던 Spring의 SimpleDriverDataSource 라던지 Commons DBCP 만 사용..

이클립스에서 SVN sync 시 target 폴더 제거하기 [내부링크]

이클립스에서 SVN을 사용하여 프로젝트를 진행할때 SVN Repository와 sync를 맞춰 보면 위와 같이 내가 의도치 않은 target 하위에 있는 내용들도 모두 나오는걸 볼수 있다. 이렇게 target 하위의 내용들이 모두..

java.awt.HeadlessException : no x11 display variable was set 오류가 발생할 때 해결방법 [내부링크]

어떤 클래스를 리눅스 서버에 배포를 했더니 위와 같은 오류가 서버 로그에 출력이 되었다. 오류 내용은 java.awt.HeadlessException: no x11 display variable was set but this program performed an..

Spring Security 에서 SSO로 로그인시 HttpSessionAttributeListener를 활용해 중복로그인 방지하기 [내부링크]

spring security에서는 중복 로그인 방지를 다음과 같이 간단하게 수행할 수 있다. 하지만 login page를 통하지 않고 SSO로 로그인을 하기를 원하는 경우에는 위와 같은 방법이 통하지 않는다. login page를 통해..

이클립스용 Java Decompiler JadClipse 설치방법 [내부링크]

Jad는 Decompiler 이다. 다음 링크를 통해 Jad를 다운받을 수 있다. JAD Java Decompiler Download Mirror JAD Java Decompiler Download Mirror As http://www.kpdus.com is no longer accessible, JAD Java Deco..

CORS (Cross-Origin Resource Sharing) 문제 filter로 해결하기 [내부링크]

CORS 란 간단히 말해 서로 다른 도메인간 통신을 하는것을 승인하거나 차단하는 것. 차단이 되어 있을때는 여러가지 방법( eg. jsonp, proxy, 웹서버설정 등)으로 해결할수 있지만 그중 filter를 이용해서 해결하..

톰캣 프로젝트 외부 디렉토리에 있는 이미지 가지고오기 [내부링크]

프로젝트를 하다 보면 application을 /app/was/tomcat/instance1 이라는 곳에 deploy를 시켜놨는데 /app/NAS/images 라는 곳에서 이미지를 가져와야 하는 경우가 생길수가 있다. 실제 내 application이 deploy 된..

ORA-12505 TNS listener does not currently know of SID given in connect descriptor 해결하기 [내부링크]

datasource intializing 과정에서 [18:17:46.353][ERROR][com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException:line595] - HikariPool-1 - Exception during pool initialization. java.sql.SQLE..

SI 프로젝트를 수행하고 있으며 하나씩 정리하며 남기려고 합니다. [내부링크]

SI 프로젝트를 하며 매번 하는일들 그런데 매번 망각하는 부분들 매번 다시 찾아보는 수고를 없애고자 이곳에 정리를 하려고 합니다.

Spring Security Tag Library를 이용해 jsp 에서 권한별로 처리하기 [내부링크]

application을 구현하다보면 jsp에서 분기처리를 해서 권한에 따라서 다른걸 보여줘야 하는 상황이 발생한다. 이럴때 기존의 JSTL 을 사용하여 if 문으로 분기처리를 할수도 있지만 객체를 받아와서 그걸 풀고 그..

Springboot에서 Hot swapping 적용하기 (springloaded vs devtools) [내부링크]

일전에 springloaded를 이용하여 일반적인 tomcat 개발환경에서 hot swapping을 하는 방법에 대해 다룬적이 있었다. Eclipse, tomcat 환경에서 hot deploy 적용하기 (with springloaded) springloaded는 hot deplo..