반응형

2018/12 8

Spring Boot Build 시 MyBatis Type Alias 미적용 문제

MyBatis를 이용하여 개발하면 주로 resultType에 적어줄 타입에 alias를 적용하여 사용한다.​보통 다음과 같이 SqlSessionFactoryBean을 정의할 때 setTypeAliasesPackage 메소드를 이용하여 정의한다.SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setTypeAliasesPackage(ALIAS 대상 클래스가 위치한 패키지경로);헌데 위와같은 방식으로 alias를 적용한 후 IDE를 통해 실행시키면 문제없이 잘 실행되는데​배포를 위해 jar로 빌드한 후 실행하자 ClassNotFoundException 이 발생하며 alias된 타입들을 못찾는 문제가 발생했다.​..

Lombok 사용 중 constructor ... is already defined in class 오류 발생 해결

Lombok 버전 : 1.16.22 스프링 Boot 프로젝트 배포를 위해 Maven Build 를 수행하던 중 Lombok 어노테이션을 적용해둔 도메인 클래스에서 컴파일 오류가 발생했다. 구글링 해본 결과 @Data와 @NoArgsConstructor를 같이 쓸 때 발생하는 버그로 지금은 fix된듯 하다. https://github.com/rzwitserloot/lombok/issues/1703 Lombok 버전을 변경하거나 @NoArgsContsructor를 먼저 선언해주는 방법으로 컴파일 오류 없이 컴파일 할 수 있었다.@NoArgsConstructor @Data public class SomeDomain { .... }

Back-End/Java 2018.12.08

리눅스 여러 파일 내용 하나로 합치기

리눅스 쉘에서 여러 파일을 하나로 합치는 방법을 소개합니다.ls [파일명패턴] | xargs cat > [결과파일명]위 명령어 한 줄로 [파일명패턴]에서 선택되어지는 파일들의 내용을 [결과파일명] 파일로 쓸 수 있습니다. 동작 방법을 살펴보면 ls [파일명패턴] 을 통해 먼저 대상 파일들을 선택합니다. ls 명령은 디렉토리에 존재하는 요소(파일, 디렉토리)들의 정보(파일명, 권한, 수정시간 등) 목록을 표준출력으로 출력하는 명령어로, 아무 옵션없이 실행하면 파일명들만 출력하게 됩니다. ls 명령을 통해 출력된 파일명 목록을 |(파이프)를 통해 뒤에 나오는 명령어로 전달합니다. |(파이프)는 이전 명령어의 실행 결과를 다음 명령어의 입력으로 사용할 때 활용됩니다. 다음은 xargs cat 입니다...

DevOps/Unix, Linux 2018.12.06

JSON 샘플 데이터 제공 사이트 소개

개발하다보면 JSON 샘플 데이터가 필요한 경우가 자주 있습니다. https://jsonplaceholder.typicode.com 위 사이트에서는 게시글, 댓글, 사진 등 다양한 컨셉의 샘플 데이터를 제공하며 사진의 경우 image 주소까지 제공하여 편리하게 사용할 수 있습니다. 사용방법은 다음과 같이 아주 간단합니다.fetch('https://jsonplaceholder.typicode.com/comments') .then(response => response.json()) .then(json => console.log(json));콘솔에 comments(댓글) API로 제공되는 500개의 샘플 데이터가 출력되는 것을 확인할 수 있습니다.백엔드가 구축되어있지 않은 상태에서 프론트엔드 개발 시..

기타 2018.12.04

JPA 객체 연관관계 설정

@ManyToOne다대일(N:1) 관계 매핑 정보다.주요속성 optional : false로 설정 시 연관된 엔티티가 항상 있어야한다 (기본값 : true) fetch : 글로벌 Fetch 전략을 설정한다. cascade : 영속성 전이 기능을 사용한다. targetEntity : 연관된 엔티티의 타입 정보를 설정한다. (거의 사용안함)@JoinColumn외래 키를 매핑할 때 사용한다.주요속성 name : 매핑할 외래키 이름 (기본값 : 필드명 + _ + 참조하는 테이블의 기본 키 컬럼명) referencedColumnName : 외래 키가 참조하는 대상 테이블의 컬럼명 (기본값 : 참조하는 테이블의 기본 키 컬럼명) foreignKey : 테이블을 생성할 때만 사용하는 속성으로 외래 키 제..

Back-End/JPA 2018.12.02

객체 연관관계 VS 테이블 연관관계

ORM에서 가장 어려운 부분으로 손꼽히는 것은 객체의 연관관계를 표현하는 것이다.즉 테이블의 연관관계를 엔티티에 매핑하여 표현하는 것을 의미한다. 연관관계 핵심 키워드방향단방향, 양방향이 있다. 예를들어 회원과 팀이라는 관계가 있을때 회원 -> 팀 또는 팀 -> 회원이런 식으로 한 쪽으로만 참조하는 것을 단방향 관계라 하고 회원 -> 팀 -> 회원 상호 참조하는 것을 양방향이라 한다.방향은 객체에만 존재하며 테이블간 관계는 항상 양방향이다. 다중성[일대다(1:N), 다대일(N:1), 일대일(1:1), 다대다(N:M)]이 있다. 예를들어 팀과 회원의 관계에서한 팀에 여러 회원이 있을수있으니 팀과 회원은 일대다 관계로 볼 수 있다. 반대로 여려 명의 회원이 한 팀에 속하니 회원과 팀은 다대일이다.즉 [팀 1..

Back-End/JPA 2018.12.01