일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Gradle
- Spring Batch
- Domain Driven Design
- spark
- 스프링 배치
- design pattern
- Java
- scala
- Clean Code
- 엘라스틱서치
- elastic search
- SBT
- Angular2
- Storm
- hadoop
- hdfs
- Spring
- apache storm
- 도메인주도설계
- DDD
- Spring Boot
- intellij
- Hbase
- nginx
- Spring XD
- 제주
- Linux
- elasticsearch
- hibernate
- docker
- Today
- Total
목록Programming (135)
욱'S 노트
스프링 배치로 작업을 계속 수행하다보면 각 히스토리 데이터가 계속 생성된다. 이럴 경우 주기적으로 삭제를 해줄 필요가 있는데 FK가 많아서 생각보다 쉽지 않다. 이에 삭제 스크립트를 정리해보았다. 아래는 8월 21일 전에 히스토리를 삭제하는 스크립트예이다. DELETE FROM BATCH_STEP_EXECUTION_CONTEXT WHERE STEP_EXECUTION_ID IN ( SELECT STEP_EXECUTION_ID FROM BATCH_STEP_EXECUTION WHERE START_TIME < '20150821'); DELETE FROM BATCH_STEP_EXECUTION WHERE START_TIME < '20150821'; DELETE FROM BATCH_JOB_EXECUTION_CONTE..
nohup - 행업 시그널이 와도 무시하며 실행을 계속하는 명령어. 터미널이 끊겨도 계속 수행됨 &(백그라운드 프로세스) - 새로운 프로세스를 생성하여 작업을 수행시켜서 새로운 작업을 현재 세션에서 가능하도록 해주는 것.- 언젠가 bash에서 "터미널 연결이 끊어져도 실행이 계속되는" 옵션이 디폴트가 되었음
이름에서 암시하듯이 SiftingAppender는 런타임시에 주어진 어트리뷰터에 따라 로깅을 분리하거나 걸러낼 수 있다. 예를 들어 SiftingAppender는 유저 세션에 따라 로깅 이벤트를 분리할 수 있다. 이러한 방법을 이용하면 각 유저별로 하나씩의 로그 파일을 생성할 수 있다. 각 프로퍼티들은 다음과 같다. timeout- 타입은 Duration이다. - 내포된 appender가 작동하지 않는다고 간주될때 타임아웃 시간. 오류 appender는 닫아지고 SiftingAppender에 의한 참조가 끊어진다. maxAppederCount- 타입은 integer이다.- SiftingAppender가 생성하고 유지할 수 있는 내포된 appender의 최대 갯수. 기본값은 Integer.MAX_VALUE..
많은 경우 우리는 브라우져를 통해 Nginx에서 502 Bad gateway 오류가 발생했다는 메시지를 볼 수 있다. 웹서버 로그를 확인하면 왜 이러한 메시지가 발생했는지를 확인할 수 있다. 그리고 여기서는 어떻게 그 상황을 해결할 수 있는지에 대해서 설명한다. 502 bad gateway 오류가 발생 했을 때 아래 상황인지를 확인해 보자. Nginx running as proxy for Apache web server.Nginx running with PHP-FPM daemon.Nginx running with other services as gateway.Bad buffering/timeout configuration 모든 옵션들에 대해 깊게 들어가기 전에 에러 메시지가 의미하는 것이 무엇인지를 이해..
이번 섹션은 웹어플리케이션 및 아파치 톰캣의 구동 속도를 빠르게 하기 위한 몇가지 추천사항을 제공한다. General 팁과 트릭을 진행하기 전에 하나 하고 싶은 조언은 만약 톰캣이 행이나 응답이 없다면 먼저 진단을 수행해보야 한다. 스레드 덤프를 획득한다면 톰캣이 실제 무엇을 하고 있는지를 알 수 있다. 트러블슈팅과 진단 페이지를 자세히 살펴보아라. JAR scanning 서블릿 3.0 스펙에서는 몇가지 plugablility features에 대한 지원을 소개하고 있다. 이것은 웹어플리케이션 구조를 단순하게 하고 추가적인 프레임워크 플러깅을 단순하게 하는 것이다. 불행하게도 이 기능은 JAR와 클래스 파일의 스캐닝을 요구한다. 이 경우 꽤 많은 시간을 소요하게 된다. 스펙에서는 기본적으로 스캐닝을 수행..
SSH Key란?서버에 접속 할 때 비밀번호 대신 key를 제출하는 방식이다. SSH Key는 언제 사용하는가?비밀번호 보다 높은 수준의 보안을 필요로 할 때로그인 없이 자동으로 서버에 접속 할 때SSH Key가 동작하는 방식SSH Key는 공개키(public key)와 비공개 키(private key)로 이루어지는데 이 두개의 관계를 이해하는 것이 SSH Key를 이해하는데 핵심이다. 키를 생성하면 공개키와 비공개키가 만들어진다. 이 중에 비공개키는 로컬 머신에 위치해야 하고, 공개키는 리모트 머신에 위치해야 한다. (로컬 머신은 SSH Client, 원격 머신은 SSH Server가 설치된 컴퓨터를 의미한다.)SSH 접속을 시도하면 SSH Client가 로컬 머신의 비공개키와 원격 머신의 비공개키를 ..
Yum은 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자입니다. Yum은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있습니다. Red Hat Enterprise Linux 5에서는 Yum으로 패키지를 설치합니다. Yum은 /etc/yum.conf라는 설정파일을 사용합니다. 자세한 내용은 yum(8) man page를 참조해주시길 바랍니다. 패키지 repository를 설정하는 여러가지 방법이 있습니다.• 이미존재한 repository를 추가하여 패키지를 얻는 방법• 새로운 repository를 설정하여 ISO에서 패..
컨트롤러는 어플리케이션 레이어와의 연결을 제공한다. 서비스 인터페이스를 통해서 일반적으로 정의된다. 컨트롤러는 유저 입력을 인터프리터하고 모델로 변환한다. 모델은 뷰로서 유저에게 표현된다. 스프링은 추상화된 방법으로 컨트롤러를 구현한다. 컨트롤러는 매우 다양한 방법으로 생성될 수 있다. 스프링 2.5에서 MVC 컨트롤러를 위한 어노테이션 기반 프로그래밍 방법이 소개되었다. 어노테이션은 Spring MVC와 Protlet MVC에서 모두 이용가능하며 특정한 베이스 클래스나 특정한 인터페이스를 구현할 필요가 없다. 더욱이 Servlet이나 Porlet API에 직접적인 디펜던시를 가지지 않아서 쉽게 서블릿이나 Portlet 기능에 접근할 수 있다. @Controllerpublic class HelloWorl..
스프링 MVC 프레임워크는 다른 웹 MVC 프레임워크 처럼 request-driven 이다. 중앙 서블릿이 요청을 컨트롤러로 디스패치하고 웹 어플리케이션 개발의 여러 기능들을 제공한다. 하지만 스프링 DispatcherServlet은 그것보다 더 많은 것을 한다. Spring IoC 컨테이너와 완벽하게 결합하고 Spring이 가지는 모든 다른 기능을 사용할 수 있다.Dispacther 서블릿이 요청을 처리하는 워크플로우는 다음 다이어그램에 묘사되어 있다. pattern-savvy reader는 디스패쳐서블릿을 Front Controller 표현으로 인식한다. 디스패처 서블릿은 실제 서블릿이다. 일반적으로 우리에 web 어플리케이션에 정의되는 일반적인 서블릿과 동일하다. web.xml 에 URL 매핑을 이..
스프링 웹 model-view-controller (MVC) 프레잉워크는 DispatcherServler을 중심으로 설계 되었다. DispatcherServlet은 구성된 핸들러 매핑으로 요청을 핸들러로 디스패치하고, 뷰 레졸루션, 로케일, 타임존, 테마 레졸루션, 파일 업로딩 지원들을 수행한다. 기본 핸들러는 @Controller와 @RequestMapping 어노테이션을 기반으로 하고, 유연한 핸들링 방법을 제공한다. Spring 3.0의 소개로 @Controler 메커니즘은 @PathVariable과 다른 기능들로 RESTful Web sites 및 어플리케이션을 만드는 것을 지원한다. 확장에 열려있다. 스프링 웹 MVC와 Spring에서 가장 중요한 원칙은 Open-Closed principle이..