본문 바로가기

Framework에 해당하는 글들

34 Articles matched
목록이 없습니다.
[Spring] 버전별 jdk 버전 호환 💡 Spring framework 버전별 호환되는 JDK 버전 정리 Spring Framework를 마이그레이션 할 때에 기존에 레거시에서 사용중인 JDK 버전과 호환이 되는지 확인이 필요할 경우가 있다. 이 경우 말고도 Spring Framework와 특정 JDK 버전이 호환이 되는지 찾아볼 때가 있는데 매번 구글링 하지 않고 블로그에서 찾아 볼 수 있게 하기 위해서 정리해본다. Spring Framework - JDK 호환 버전 Spring Framework 4.3.x - JDK 6 ~ 8 Spring Framework 5.0.x - JDK 8 ~ 10 Spring Framework 5.1.x - JDK 8 ~ 12 Spring Framework 5.2.x - JDK 8 ~ 15 Spring Fram..
[Spring framework] logback RollingFileAppender 설정 기존에 log4j를 로깅 구현체로 사용하고 있었는데 보안이슈가 연달아 터지면서 관리하는 여러 서버들의 버전업을 일괄 처리하는 매우 비효율적인 작업을 반복하다 보니 log4j를 사용하기 싫어지기도 했고 logback이 log4j를 만든분이 그 다음에 만든 것이라고하여 뭔가 좀 더 나은게 있지 않을까 찾아보았다. 사실 log4j 자체도 제대로 사용하고 있다는 느낌은 아니었기 때문에 이번에 바꾸기로 한거 좀 더 깊게 알아보자하여 찾아보니 logback에 유용한 기능들이 아주 많다는 것을 알게 되었고 logback으로 바꾸는게 좋겠다는 생각이 좀 더 기울었다. 우선 log4j로 서버에서 로깅을하면 아무래도 파일 기반 로깅을 하고 있기 때문에 한정된 서버 용량에 로그가 넘치지 않게 하기 위해서 주기적으로 관리가 ..
[Electron] BrowserWindow close vs destroy 차이점 Electron으로 application을 만들다보면 BrowserWindow를 하나 붙여서 사용하기 마련인데 여기서 close 함수와 destroy 함수의 차이점을 정리해보려고 합니다. ※ 사실 제일 좋은 것은 공식 홈페이지의 document를 살펴보는것입니다. www.electronjs.org/docs/api/browser-window BrowserWindow | Electron Create and control browser windows. www.electronjs.org Electron BrowserWindow close function BroswerWindow는 쉽게 생각하면 브라우저 창 하나라고 생각하시면 편합니다. Electron 자체가 Chromium 기반으로 만들어진 것이기 때문에 브라..
[Electron] electron-builder 빌드 시 Bad text encoding 오류(error) 상황 electron 빌드 시 nsis를 사용해서 윈도우 설치파일을 만든다 가정했을 때 아래의 오류가 발생함 Bad text encoding: :74 Error in script "" on line 74 -- aborting creation process stackTrace= ... 뒤에 숫자는 소스에따라 달라질 수 있는데 여기서 중요한것은 빌드에 사용되는 소스중에 nsis에서 현재 호환되지 않는 text encoding이 있다는 것이다. 이 때 대부분은 소스나 경로에 한글이 들어간 경우일 것이다. 해결방법 이 경우 node_modules 디렉토리 아래에 위치한 모듈 중에 app-builder-lib안에 js파일을 수정해서 nsis로 빌드할 때 UTF8로 하겠다고 옵션을 주면 된다. node_module..
[AngularJS] 바인딩 완료 시점 AngularJS를 사용하면서 바인딩이 완료되는 시점에 어떤 로직을 수행시키고 싶은 경우가 생기기 마련인데요. 바인딩 완료 시점을 이벤트로 잡아주는 함수들을 정리해보려고 합니다. 데이터 바인딩 이전 시점 $(document).ready(function() { ... }); 데이터 바인딩 이후 시점 (바인딩 완료 시점) $(window).load(function() { ... }); 뷰 영역에서 저처럼 ng-include를 사용하는 경우에는 해당 템플릿이 로딩되는 시점에도 무엇인가 로직을 돌리고 싶은 경우가 생기는데요. 그 시점에 함수를 실행시키는 방법은 아래와 같이 2가지가 있습니다. ng-include 로딩 완료 시점 onload에 수행시킬 함수 또는 로직을 넣어주시면 됩니다. app.run(funct..
[AngularJS] $apply 이미 실행중 ($apply already in progress) AngularJS를 사용하다가 보면 어떤 경우에는 $scope.$apply 함수를 사용해주어야 위의 로직에서 변경한 변수들이 제대로 적용되는것을 볼 수 있습니다. 어떤 경우에 $apply함수가 자동으로 동작하지 않고 어떤 경우에 자동으로 동작하는지는 아직 파악이 되지 않지만 보통 directive에서 상속받은 scope의 변수들을 변경했을 경우 $apply 함수가 자동으로 동작하지 않는 것을 자주 봐왔습니다. 그런데 어느 날 directive를 구현하는데 어떤 경우에는 $apply 가 이미 동작중이라는 오류 메시지가 보이는 것 ($apply already in progress). 찾아보니 이 문제를 해결할 수 있는 방법이 있었습니다. 해결방법 if ($scope.$$phase !== '$apply' &&..
[Spring Framework] 멀티 서버에서 Spring 스케줄러 중복실행 방지 Spring의 @Scheduled 어노테이션은 Spring Framework에서 쉽게 cron을 구성할 수 있는 유용한 기능입니다. 그런데 WAS를 늘리게 되면 상당히 골치아픈 상황이 벌어집니다. cron작업이 WAS마다 실행되기 때문에 WAS의 개수만큼 중복된 cron이 실행되기 때문인데요 이러한 상황을 해결할 수 있는 방법을 정리해보려고 합니다. Scheduler Lock 위와 같이 2개 이상의 서버로 구성된 환경에서 중복된 Schedule이 실행되지 않도록 Lock을 걸 수 있게 만들어놓은 라이브러리입니다. maven repository에 shedlock이라는 이름으로 올라와있습니다. 그 중에 shedlock-spring과 shedlock-provider-jdbc-template을 추가합니다. sh..
[AngularJS] AngularJS 주석 제거 AngularJS를 사용하다보면 개발자모드를 열었을 때 ng-repeat이라던지 ng-if를 사용했을 때 주석이 자동으로 남는 것을 볼 수 있는데요 이런 주석들은 불필요하기도 하고 서비스를 운영하는 입장에서 조금 허술해보일 수 있어서 제거하는 방법을 정리해보려고 합니다. AngularJS에서 구현이 되어 있기 때문에 간단하게 사용하면 됩니다. AngularJS 주석 제거 app.config(['$compileProvider', function ($compileProvider) { $compileProvider.debugInfoEnabled(false); }]); 위와같이 공통의 Controller 혹은 최상위 Controller에 config를 통해서 설정해줄 수 있습니다. 설정한 후에 개발자모드를 열어..