enkins : 빌드, 테스트, 배포 등 모든 것을 자동화해주는 자동화 서버 build : 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정 release : 같은 제품을 새롭게 만드는 것 deploy : 애플리케이션을 서버에 배포하여 작동 가능하도록 만드는 것 distribute : 제품을 사용자들이 사용할 수 있도록 서비스 등을 제공하는 것 AWS 프리 티어를 사용하는 저에게는 소스코드 업데이트할 때마다 매번 build 하고 sftp로 deploy 하기 너무 번거로워서 알아보니 Jenkins라는 유용한 툴이 있어서 사용해봤습니다. 먼저 결과 화면입니다. intellij commit, push > git webhooks > Jenkins Build 시작하겠습니다. J..
첨부파일 메일 전송 코드를 테스팅을 하다가 클라우드 개발서버의 이미지를 손상시켜버렸습니다. 매번 이런 식으로 작업하기에는 너무 설정할 것도 설치할 것도 많아 도커를 이용하여 개발서버를 처음부터 끝까지 직접 구현하고 이미지화하였습니다. 클라우드 서버에 개발서버 이미지를 생성하면 되지만 제 담당도 아니고 문제가 생길 때마다 매번 부탁하기도 그렇더라고요. 먼저 구축 완료한 결과 화면입니다. qmail 서버를 구축하여 메일 전송 및 웹서버를 통해 사이트 출력까지 이상 없이 완료하였습니다. 저의 private 도커 이미지입니다. 태그 1.0은 apm 구축 1.1은 메일 서버 구축으로 docker 이미지화하였습니다. 구축한 리포지토리는 저만 사용할 수 있도록 private 화하였고 pull을 받기 위..
웹메일 UI 단은 PHP를 사용하고 있는데요 기존에 PHP 버전이 너무 낮어서 최신 UI를 적용할 수 없었습니다. 이에 따라 해결 방법을 모색 중 php-fpm을 통해서 최신 UI를 적용할 수 있었습니다. 먼저 결과 화면입니다. 좌측이 최신 UI를 적용한 사진입니다. 기존에는 PC 외에는 사용이 힘들었으나 새로운 UI 적용으로 모바일, 태블릿 등 과 같이 반응형으로 동작합니다. 기존 apache2.2 php 5.3 mysql 5.1 신규 apache2.4 php 5.5 mysql 5.8 로 변경하였으며 테스트로 php 버전을 많이 올리진 않았지만 php-fpm으로 설정한다면 향후 버전을 다르게 적용하여도 유연하게 대처 가능할 것으로 보입니다. 모든 테스트는 도커에서 진행이 되었으며 도커허브에 ..
자바의 intellij와 다르게 php는 디버깅을 하기 위해 Xdebug 확장 모듈을 설치해야 하고 몇 가지 설정이 필요합니다. 먼저 결과 화면입니다. php 소스코드에서 중단점을 걸면 해당 부분에서 break가 걸려 해당 부분까지의 Variables를 받아오게 됩니다. 이후 F7,F8등의 키보드 입력으로 소스를 추적할 수 있습니다. 더 이상 print_r, echo 등을 찍어보지 않아도 됩니다. 먼저 phpinfo()를 사용하여 자신의 php 버전, 아키텍처, php.ini의 위치가 정보를 얻어냅니다. 그리고 난 뒤 아래의 Xdebug 공식 사이트에서 자신의 정보와 맞는 라이브러리를 설치합니다. 저는 PHP 5.4. VC9 TS(32bit)를 설치하였습니다. https://xdebug.o..
자바를 하면서 JVM의 구조를 조금 알고 싶었습니다. 혼자 공부하면서 끄적거리는 내용입니다. 체스 게임의 서버 클래스를 컴파일 하게 되면 오른쪽의 그림과 같이 바이트코드로 변경됩니다. JVM은 해당 바이트 코드를 OS 특화된 코드 즉 Native Code로 변환하여 실행합니다. JVM의 구조는 다음과 같습니다. 더 자바, 코드를 조작하는 다양한 방법/백기선 이 중에서 클래스 로더 시스템을 좀 더 알아보겠습니다. 클래스로더 시스템 더 자바, 코드를 조작하는 다양한 방법/백기선 사진과 같이 클래스 로더 시스템은 로딩 > 링크 > 초기화 순으로 진행이 됩니다. 로딩 그중 로딩은 BootStrap > Extension > Application 순서로 우선권을 가지게 되며 이는 상속관계입니다. 이를 통..
깃허브에서 다른 분의 프로젝트를 가져와서 mvn clean package를 했을 때 발생했던 에러입니다. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project noticeboard: Fatal error compiling: error: release version 1.8 not supported -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X swi..
DOM(Document Object Model)이란? DOM은 프로그래밍과 웹 문서 간의 어떠한 접점(interface)을 통해서 웹 문서를 자유롭게 조작하며 상호작용(interact)이 가능하다. View > ViewModel > Model 흐름 사용자가 View에서 어떠한 이벤트(마우스 클릭, 키보드 입력 등)가 발생했을 때 DOM Listeners가 듣고 자바스크립트에 있는 데이터를 바꿔주거나 자바스크립트에서 특정 로직을 실행하게 된다. 또 자바스크립트 내용이 바뀌었을 때 directives를 통해서 화면에 반영하게 된다. 이 흐름이 코드상에서 어떻게 흘러가는지 확인해보자. 기존 웹 개발 방식 데이터 갱신을 한다고 했을 때 아래의 중복 코드 발생 div.innerHTML = str; Reactivi..