enkins : 빌드, 테스트, 배포 등 모든 것을 자동화해주는 자동화 서버 build : 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정 release : 같은 제품을 새롭게 만드는 것 deploy : 애플리케이션을 서버에 배포하여 작동 가능하도록 만드는 것 distribute : 제품을 사용자들이 사용할 수 있도록 서비스 등을 제공하는 것 AWS 프리 티어를 사용하는 저에게는 소스코드 업데이트할 때마다 매번 build 하고 sftp로 deploy 하기 너무 번거로워서 알아보니 Jenkins라는 유용한 툴이 있어서 사용해봤습니다. 먼저 결과 화면입니다. intellij commit, push > git webhooks > Jenkins Build 시작하겠습니다. J..
자바의 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..
데이터베이스 https://blog.couchbase.com 그리고 https://www.slideshare.net/samuelberthe/confrence-nosql-et-scalabilit 관계형 비관계형 데이터 스토리지 행 및 열 데이터 스토리지 키값 문서 및 그래프 스키마 고정 스키마 동적 SQL 기반 쿼리 문서 수집에 집중 수직적 (scale up) 수평적 (scale out) 데이터 정합성 빠른 읽기 쓰기 비관계형 이전에는 Dataware House를 사용. 관계형 데이터베이스는 확장 시 downtime과 max limit 등의 단점이 있다. 때에 따라 다르지만 비관계형 데이터베이스는 어플리케이션 먼저 만들고 DB 구성한다. 요즘에는 비관계형으로 데이터를 받고 필요한 부분 관계형으로 저장한다...
전제조건 문제에 나타나는 쿼리만 생각하고 최대한의 튜닝을 진행 하였습니다. 그래서 인덱스 생성에 따른 트레이드오프에 대한 고려는 하지 않았으니 참고 바랍니다. 문제1 실행계획을 봤을때 TB_CUST, TB_ORD 둘다 풀테이블 스캔을 하고 있습니다. 1:M관계로 TB_CUST 테이블을 드라이빙 테이블로 잡으면 좀더 나은 성능을 보여줄것 같습니다. WHERE절에서 사용하는 인덱스 및 조합인덱스를 추가하고, 드라이빙 테이블인 TB_CUST를 기준으로 TB_ORD테이블과 조인할때 NL방식으로 진행합니다. 문제2 데이터가 더 많은 TB_ORD 테이블을 드라이빙 테이블로 잡고 TB_PRDT를 드리븐 테이블로 NL를 하고있습니다. 또 실행계획에서 TB_ORD 테이블에 많은 랜덤엑세스가 발생하고 있습니다. TB_P..