elasticsearch란 아파치 Lucene 기반으로 개발한 오픈소스 검색엔진으로 많은 양의 데이터를 보관하고 실시간으로 분석할 수 있게 해준다. JSON 기반의 비정형 데이터 분산 검색과 분석을 지원하며, 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 특징을 가진다. 본 문서에서는 설치 및 사용법(spring boot 연동)을 다룬다.
Continue reading
AOP 는 Aspect-oriendted Programming의 약자로 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법을 뜻하며, OOP를 보완하는 수단으로 사용된다.
Continue reading데이터바이딩이란 어떤 프로퍼티의 값을 타겟객체에 설정하는 것을 뜻한다. Spring 사용자 관점에서 보면 사용자가 입력한 값을 애플리케이션 도메인 객체에 동적으로 할당하는 기능다. Spring에서는 사용자가 입력한 값은 문자열이고도메인 객체에 맞는 자료형으로 변경 필요하기 때문에 추상화 되었다.
Continue reading애플리케이션에서 사용하는 객체 검증용 인터페이스로 org.springframework.validation.Validator 로 추상화하였다. 웹이, 서비스, 데이터 어떤 계층과도 관계없이 사용할 수 있다. 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원(LocalValidatorFactoryBean)하며, DataBinder에 들어가 바인딩 할 때 같이 사용 가능하다.
Continue readingELectron을 사용한 애플리케이션을 만들경우 사용자에게 보여지는 GUI(Renderer)를 Vue.js 를 이용하여 구현할 수 있다. Electron에 대한 설명은 Electron 애플리케이션 만들기를 참고하고 Vue.js를 참고 하면 된다.
Continue readingElectron는 GitHub에서 HTML, CSS 및 JavaScript를 사용하여 데스크톱 응용 프로그램을 개발하기 위해
개발된 오픈 소스 라이브러리다. Electron 은 Chromium과 Node.js를 단일 실행으로 합치고 앱을
Mac, Windows 와 Linux 용으로 패키지화 하여 사용가능하게 한다.
java.net.URL을 org.springframework.core.io.Resource로 감싸 추상화 한 것으로 클래스패스 기준으로 리소스 읽어오는 기능 부재, ServletContext를 기준으로 상대 경로로 읽어오는 기능 부재, 새로운 핸들러를 등록하여 특별한 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하여 추상화하였다.
Continue readingEnvironment는 프로파일과 프로퍼티를 다루는 인터페이스로 테스트 환경, 프로덕션 환경등 각각에 환경에 따라 다른 빈들을 써야하는 경우 혹은 특정한 빈을 써야하는 경우 사용
Continue readingIoC 는 Inversion of Control의 약자로 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법으로 DI(Dependency Injection)이라고도 한다. 다시 말하면 객체 생명주기를 관리하며 DI 패턴을 제공하여 비즈니스 로직에 집중할 수 있도록 한다.
Continue reading