이번 핀테크 프로젝트 Challet 서비스에서 거래내역 검색 기능을 구현하게 되면서 elasticsearch를 적용하게 되었다.EC2 ubuntu 환경에서 Docker를 통해 설치하는 과정부터 적용하는 과정까지 기록한다. elasticsearch, kibana, logstash 설치(EC2 + docker compose) GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.The Elastic stack (ELK) powered by Docker and Compose. - deviantony/docker-elkgithub.com위의 github에서 clone을 받는다.그럼 내부에 .env 파일이 있는데 ..
Spring Project의 계층 구조(Layer Architecture) - Web / Service / RepositoryAPI를 만들기 위해서는 3개의 클래스가 필요하다.Request 데이터를 받을 DTO / API 요청을 받을 Controller / 트랜잭션, 도메인 기능 간의 순서를 보장하는 ServiceService의 역할과 Domain의 역할Service에서 비즈니스 로직을 처리 X → 비즈니스 로직은 Domain에서 처리Service는 트랜잭션, 도메인 간 순서 보장의 역할 수행 Spring의 웹 계층 구조 Web 계층컨트롤러(@Controller), View Template(ex. JSP, Thymeleaf, Freemarker ...)의 영역필터(@Filter), 인터셉터, 컨트롤 어드..
MyBatis-Spring 마이바티스-스프링 연동 모듈은 둘을 간편하게 연동하도록 도와줌 해당 모듈은 마이바티스로 하여금 스프링 트랜잭션에 쉽게 연동되도록 처리 mapper와 SqlSession을 다루고, 빈에 주입시켜줌 MyBatis 예외를 스프링의 DataAccessException으로 반환 mybatis-spring 감사 인사 이 프로젝트가 실제로 만들어지게 도와준 모든 특별한 분들에게 정말 감사한다. 알파벳 순서로 보면, 코딩및 테스트 그리고 문서화를 담당했던 Eduardo Macarron, Hunter Presnall, Putthiphong Boon mybatis.org 구성 요소 Dynamic SQL 동적 SQL Runtime 시점에서 생성되는 SQL 사용자의 입력 혹은 특정 조건에 따라 동적..
MyBatis 특징 SQL 매핑 프레임워크 SQL문과 저장 프로시저(Stored Procedure)등의 매핑을 지원하는 퍼시스턴스 프레임워크(persistence framework) JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 처리를 대신해줌 Map 인터페이스 그리고 자바 POJO를 설정 데이터베이스와 매핑해서 사용 가능 XML과 Annotation 설정을 통해 사용할 수 있음 MyBatis 동작 구조 MyBatis는 SQL을 처리하고 Java 객체와 DB간의 매핑을 처리한다. MyBatis 구성 요소 MyBatis는 SqlSession 인터페이스를 통해 DB와 상호작용 한다. SqlSessionFactory SqlSession 객체를 생성하는 팩토리 클래스 런타임 도중 CRUD 처리 ..
File Upload 파일 업로드 클라이언트가 서버로 파일을 전송하는 과정 여러 개의 파일을 업로드 할 수 있음 기존 방식의 Form 기존에 사용하던 은 문자 위주의 데이터를 사용 enctype="application/x-www-form-urlencoded" 기본 값(생략 가능) HTTP Body에 문자로 key=value 형태로 전송하고, 여러 개의 데이터라면 & 기호를 통해 구분하였음 파일 업로드 방식의 Form 파일은 문자가 아닌 바이너리 데이터를 전송 파일만 전송하는 것이 아니라 다른 데이터를 같이 전송하기도 함 enctype="multipart/form-data", method="POST" 필수 여러 개의 파일을 업로드하고 싶다면 multiple="multiple" 속성 추가 필요 참고할 블로그..
오늘은 알고리즘 공부를 하면서 자주 마주쳤지만, 제대로 공부해보지 않았던 람다식, 그리고 프로젝트에 필요한 Java MVC, Spring에 대한 공부를 진행하였다. 람다식 람다식이란 함수를 하나의 식으로 표현한 것으로, 익명함수의 한 종류이다. 익명함수는 모두 일급 객체이고 일급 객체인 함수는 변수처럼 사용 가능하며 매개변수로 전달이 가능한 특징이 있다. 예시 기존 방식 new Thread(new Runnable() { @Override public void run() { System.out.println("Welcome Heejin blog"); } }).start(); 람다 방식 new Thread(()->{ System.out.println("Welcome Heejin blog"); }).start..