spring boot mybatis 연동오늘은 spring boot와 mybatis를 간단하게 연동 테스트를 해보겠다. 일단 spring boot 프로젝트를 생성하고 아래와 같이 디펜던시를 받자. org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 com.h2database h2 runtime org.projectlombok lombok org.springframework.boot spring-boot-starter-test test City라는 class를 만들자.@Data @Alias("city") public class City { private Long id;..
maven multi 모듈몇 년? 만에 블로그를 다시 작성한다. 목적은 개인 공부 및 기록? 예습, 복습 차원에서 작성한다. 그래서 설명이 부족할 수 있다. 꾸준히작성하자.다시 시작은 maven multi 모듈 프로젝트 구조를 만들어 보자. 멀티 모듈로 구성해야 할 일이 있어 예전에 했었지만 기억이 안 나서 다시한번 정리 하려고 한다. 필자는 IDE intellij를 사용하여 intellij 기반으로 설명하도록 하겠다.먼저 상단메뉴 file-> new -> Project 클릭하여 프로젝트를 생성하자. 그리고 왼쪽 메뉴에서 maven을 선택하자. 그리고 next -> GroupId, ArtifactId 입력하고 next -> finish 다음 이제 parent 프로젝트 하위에 모듈을 만들어 보자 paren..
Agile Practices - Scrum/Kanban 조직의 생산성을 향상시키기 위해서는 개인의 실력을 향상시켜야 한다. 하지만 개개인 사이의 협력하는 방법을 바꿈으로써 조직을 발전시킬 수도 있다.스크럼의 개념 (반복개발) 1) 해야할 일, 하고있는 일, 끝마친 일로 우선 프로젝트를 나눈 후 2) 이번에 할 프로젝트의 긴 개발 기간을 잘게 쪼개서 (이 쪼갠 단위를 스프린트라고 한다) 개발하는 방법을 말한다. 3) 이때 스크럼 프로세스(스프린트, 미팅, 산출물)은 대체로 1~4주 단위의 반복 개발을 한다.이슈 타입큰틀 (Epic)단기간 내에 해결할 수 없는 이슈나, 거대한 테스크를 Epic 이슈로 등록한다. 여러 Story들의 집합이다. ~으로서,를 반드시 명시한다. 예-1 : 사용자로서, 새로운 플레이..
Introduction 테스트는 개발자가 일을 마치고 산출물을 만들었을 때 1+1(n)같이 따라붙는 덤 같은 존재입니다. 간혹 시간이 부족하거나 피치못할 사정으로 테스트가 생략되는 경우가 있습니다. 운이 좋아 아무런 문제가 없는 경우도 있겠지만, 대부분의 경우 생각치 못한 경우에서 결함이 발생하는 경우를 경험해보셨을 거라 짐작합니다. 테스트는 정말 중요합니다. 그리고 테스트는 연구하는 사람에게 있어 '일' 입니다. 테스트가 빠진 개발물은 완료된 작업이 아님을 명심해야 합니다.여기서는 이렇게 중요한 테스트에 대해서 더 자세히 알고 어떤 방법을 통해 개발에 적용이 가능한지와 이를 넘어서 테스트 주도 개발 방법론을 개발에 적용하는 이야기하고자 합니다.테스트의 정의시스템이나 시스템의 구성 요소 또는 SW 프로그..
클라우드 서비스 유형(IaaS, PaaS, SaaS) 1. IaaS(Infrastructure as a Service) -개념서버를 운영하기 위해서는 서버 자원, IP, Network, Storage, 전력 등등 인프라를 구축하기 위해 여러가지가 필요한데 서버, 스토리지, 네트워크를 가상화 환경으로 만들어, 필요에 따라 인프라 자원을 사용할 수 있게 서비스를 제공하는 형태이다. 즉 서버나 스토리지 같은 하드웨어 자원만을 임대해주는 클라우드 서비스를 말합니다. Infrastructure를 가상의 환경에서 편리하게 서비스 형태로 제공받을 수 있으며 HassS(Hardware as a Service)라고 불리기도 합니다.-특징1)클라이언트는 서비스 제공업체의 클라우드 환경에 구축하고 싶은 OS와 응용프로그램을..
생성자 인자가 많을 때는 Builder패턴 적용을 고려하자 생성자와 Static 팩토리 메소드는 같은 문제를 가지고 있다. 선택적 인자가 많은 상황에 잘 적응하지 못한다는 것이다.이런 상황에 어떤 생성자나 정적 팩터리 메서드가 적합할지 고민을 한다. 1.점층적 생성자 패턴(telescoping constructor)필수 인자만 받는 생성자를 하나 정의하고, 선택적 인자를 하나 받는생성자를 추가하고, 거기에 두 개의 선택적 인자를 받는 생성자를 추가하는 방식이다.public class NutritionFacts { private final int servingSize; //필수 private final int servings; //필수 private final int calories; //선택 privat..
spring boot Transaction(@Transactional) 1.@Transactional 적용된 메서드(상위메소드)에서 @Transactional이 적용되지 않은 메서드(하위메소드)를 호출할때는 Transaction이 적용된다. 2.@Transactional이 적용되지 않은 메서드(상위메소드)에서 적용된 메서드(하위메소드)를 호출하면 Transaction이 무시된다. 3.@Transactional 적용 되지 않은 메서드에서 적용된 메서드를 호출할때 무시된다. 무시되지만 그 상태에서 R을 제외하고 CUD를 2번 이상 할 경우에는 에러를 내뱉는다. Proxy모드에서는 외부 메서드를 호출할 때만 aop 적용되어 메서드를 가로챈다. 4.@Transactional 어노테이션이 붙어 있는 함수는 접근 ..
window에 Mongodb 설치하기 1)다운로드http://www.mongodb.org/downloads 에서 가장 최신 버전을 다운 받는다. 2)설치 다운 받은 파일을 본인이 원하는 경로에 설치를 한다.(ex D:\Mongodb) 3)mongodb 데이터 저장될 디렉토리 생성기본적으로 Mongodb는 C:\data\db\ 경로를 참조한다.mongodb 데이터가 저장될 디렉토리를 생성한다. (ex D:\Mongodb\data) 4)DB 실행하기cmd 창에서 mongodb 설치 경로로 가서 아래와 같이 실행시킨다. ex)D:\Mongodb\bin>mongod --dbpath D:\Mongodb\data --port 27017 윈도우에 설치 했으니 더 간단하게 실행하도록 하자대상(T)에 입력되어 있는 mo..
오늘은 spring data jpa를 사용하여 json을 출력해보는 포스팅을 하겠다. 글로버 페치 전략에 즉시로딩이 아닌 지연로딩을 사용하면 영속성 상태가 아닐 경우 데이터를 가져올 때 에러가 발생한다. 그래서 open session in view 이하 osiv를 사용하는데 messageconverter일 경우 즉 json일 경우 그래도 에러가 발생한다.(연관관계가 양방향 일 경우) 방법은 몇가지 있다. @JsonIgnore, @JsonBackReference, @JsonManagedReference 혹은 JSON Filter, 와 @JsonView 현재까지 알아본 결과 위와 같다. 다른 방법은 나중에 설명 하도록 하고 이번 시간에는 dto를 만들어서 해보겠다. dto(data transfer objec..
요즘에는 spring boot가 대세라 xml로 설정할 일이 없다. 그래서 아직 xml을 쓰는 사람을 위해 java config 설정 법을 간략하게 해보겠다.일단 첫 번째 부터 한번 보자public class BeanClass1 { public String getName(){ return "hi youngjin"; } } 우리한테는 이런 클래스가 있다고 가정하자! xml로 빈을 등록하기 위해 우리는 이렇게 했다. 위와 같이 메타정보를 xml로 설정 할때 이다. 클래스를 빈으로 설정한다.잘되나 테스트를 해보자@Test public void springXmlConfig(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext..