
Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part1. Elastic Beanstalk 구축) Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part2. Jenkins 설치) Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part3. Jenkins Pipeline 구성) 이 글에서는 S3를 추가하고 Jenkins Pipeline을 이용하여 S3에 war 파일을 업로드하고 Elastic Beanstalk에 Deploy 해보도록 하겠습니다. 1. S3 생성 war 파일을 업로드할 S3를 하나 생성해보도록 하겠습니다. 1.1 버킷 만들기 AWS에서 S3 검색 후 버킷 만들기를 선택합니다. 버킷 이름을 입력 후 리전은 서울 리전..

Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part1. Elastic Beanstalk 구축) Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part2. Jenkins 설치) Elastic Beanstalk과 Jenkins로 CI, CD 구축하기 (Part3. Jenkins Pipeline 구성) 이 글에서는 IAM Role을 생성하고 EC2에 Jenkins를 설치한 후 Role과 연결시켜보도록 하겠습니다. 1. IAM Role 생성 AWS CLI를 통해 S3와 Elastic Beanstalk에 접근하기 위해 역할을 하나 생성하도록 하겠습니다. IAM > 역할로 이동 후 역할 만들기를 선택합니다. Jenkins가 설치된 EC2에서 접근하기 때문에 ..

CI, CD 빠른 생산성을 가져가지 위해 통합(Intergration)과 배포(Delivery) 단계를 자동화하고 지속적인 배포 환경을 구성하는 것에 대한 중요성이 커지게 되었습니다. 저 같은 경우 기존에는 배포와 인프라 환경에 대한 운영을 FTP와 SSH를 이용하여 수동으로 하고 있었지만 이번에 Jenkins와 Elastic Beanstalk을 이용해서 통합과 배포를 자동화하게 되었고 이전에 비해 생산성 관점에서 많은 이득을 보았다고 생각합니다. 이 글에서는 이와 관련하여 경험을 공유하고자 합니다. 우선 목표하는 구성은 다음과 같습니다. 1. Github에 소스를 push를 합니다. 2. Github에서 Jenkins로 WebHook을 날리게 됩니다. 3. Jenkins에서는 소스를 war로 빌드 후 ..
1 jQuery를 사용하여 numberOnly라는 attribute로 선언된 텍스트필드에 숫자만 입력할 수 있도록 만들어보겠습니다. 사실 숫자만 입력 가능하도록 하는 예제는 인터넷상에 굉장히 많이 존재합니다. 아마 대부분의 예제를 다음과 같이 되어있을 것입니다. 123$("input:text[numberOnly]").on("keyup", function() { $(this).val($(this).val().replace(/[^0-9]/g,""));}); 결과 (숫자와 문자를 혼합해서 입력해보세요) keyup 이벤트와 정규식을 이용하여 숫자를 제외한 나머지 문자를 공백으로 처리하는 방법이죠. 이 글에서는 제시하는 방법은 위 예제에서 두 가지 문제점을 보완한 방법입니다. 먼저 첫 번째 문제점은 숫자 단위로 ..
저는 검.알.못입니다. 검색에 대해서는 잘 알지 못하죠.하지만 Lucene을 이용한 검색엔진 개발에 있어 Spring Boot와 Hibernate Search를 이용하면 매우 간단하게 구현이 가능하다라는걸 알게되었고 (물론 결과물도 매우 간단했음..) 좋은 경험이라고 생각되어 공유하고자 합니다. 이 글은 Spring Boot와 Spring Data JPA or Hibernate에 대한 기본지식이 있다는 전제하에 작성한 글입니다. 해당 기술들에 대해서는 인터넷에 많은 예제와 이론들이 있기 때문에 시작에 앞서 충분히 습득 후 보는것을 권장드립니다. Lucene 로고 (출저 : https://lucene.apache.org) Lucene 이란? Lucene은 자바로 개발된 확장 가능한 고성능 오픈 소스 정보 ..
HTTP Request 중 message-body로 넘어온 parameter 확인을 위해서는 getInputStream() 이나 getReader()를 사용합니다. 이번 프로젝트에서 사용자가 서비스에 접근하여 어떤 기능들을 수행했는지 로그를 남기는 기능을 구현하던 중 getInputStream() 사용 후 parameter가 손실되는 현상이 있어 공유하고자 합니다. 서비스의 구조는 Spring MVC로 되어있습니다. 여기에서 Controller로 요청이 들어가기 전 URL 및 Parameter 취득을 위해 Interceptor를 구현하였습니다. Interceptor에서 body에 있는 parameter 취득을 위해 구현한 소스는 다음과 같습니다.123456789101112131415161718192021..
요즘 다음메일이나 네이버메일을 보면 checkbox 선택 시 하나씩 클릭하여 선택하는 것이 아닌 drag만으로 선택이 가능합니다. 보통 목록 노출수가 20~30개이기 때문에 특정 10개만 선택하고자 할 경우 전체선택이나 하나씩 선택만으로는 불편함이 존재합니다.이럴 때 유용하게 사용 가능한 jQuery plugin을 소개해 드리려고 합니다. jquery-drag-check Site : https://github.com/scarlac/jquery-drag-checkDemo : http://www.seph.dk/jquery-dragcheck/demo.html 사용법은 간단합니다.아래 한줄을 추가해 주시면 됩니다. 1$('input[type=checkbox]').dragCheck();cs 결과 응용을 해보도록 ..
서블릿에서 보내온 요청에 대해 정보취득을 위해서는 HttpServletRequest 객체를 사용합니다. 개인적으로 요청 URL에 대한 정보를 취득하기 위해 많이 사용하는 편인데, 요청 URL을 얻기 위해 사용하는 함수가 많다 보니 무슨 함수를 사용해야 할지 헷갈릴 때가 있죠.예제를 통해 알아보도록 하겠습니다. 아래와 같은 URL이 있다고 치죠. http://127.0.0.1:8080/contextpath/servlcetpath/index.jsp?seq=1&type=NOTICE getRequestURL()쿼리를 제외한 프로토콜+도메인+포트번호+컨텍스트 경로+서블릿 경로를 구할수 있습니다. http://127.0.0.1:8080/contextpath/servlcetpath/index.jsp getReques..
SEED란 한국인터넷진흥권에서 개발한 암호 알고리즘입니다.현재까지 1999년에 개발된 128비트, 2009년에 개발된 256비트가 존재하고 있죠.또한 양방향(대칭) 알고리즘으로 주민등록번호나 전화번호, 계좌번호 같은 복호화가 필요한 데이터를 암호화하는데 사용할 수 있습니다. 이번에 프로젝트를 하며, 상사로부터 SEED 256비트로 암호화를 진행하라는 지령을 받고, SEED256에 대해 알아보기 시작했습니다. 우선 KISA 사이트에 들어가서 SEED256 Java버전을 내려받고 진행하면 되겠지 했는데..왠걸... KISA에서는 C로 짜여진 SEED256만 지원하는 것입니다.. 또한, 구글링을 해봐도 국산 암호화라 그런지 SEED256으로 만들어진 Java에 대한 자료는 찾을 수가 없었죠. KISA의 자료실..
URI와 URL,URN네트워크 리소스를 나타내는 용어중에는 URL, URI, URN 이 있다. 그게 그거같고 이게 이거같아 보여 많이 혼동해서 사용하는 용어 중에 하나라고 생각하여, 한번 정리해 보고자 한다. 1. URL (Uniform Resource Locator)리소스(resource)의 위치를 나타내는 것이다. http://www.google.com 같은 우리가 흔히 알고 있는 웹사이트를 가리키는 주소를 나타내는 것이 일반적이지만 웹사이트 주소뿐만이 아니라 메일주소나 FTP주소 등도 여기에 포함된다. (ex. mailto:hihoyeho@gmail.com)URL에서 중요하게 짚고 넘어가야할 부분이 URL의 구조이다. 다음 단락에서 URL구조에 대해 알아보자. 2. URN (Uniform Resou..