본문 바로가기

쿤즈 Dev/Spring Boot25

[Spring Boot] Maven Package 빌드시 Test Skip 방법 Spring Boot 개발이 완료되면 배포를 하기 위해서 jar 또는 war로 빌드하는 과정을 거치게 됩니다. 빌드 과정에는 여러 가지를 실행하는데요. 이때 properties에 따라서 개발 DB 혹은 운영 DB로 변경될 수 있습니다. 만약 운영 DB에는 개발서버에서 직접 연결하지 못한다면 빌드 과정에 포함된 TEST에서 오류가 발생하는 걸 확인했어요. 이번 포스팅에서는 메이븐(Maven) 빌드 과정중 TEST를 Skip 하는 방법을 알아볼게요. TDD (Test Driven Development) Spring Boot 개발을 공부하거나 실무를 진행하는 과정에서 테스트는 굉장히 중요합니다. 그래서 다양한 케이스별로 테스트 프로그램을 진행합니다. 물론 Spring Boot는 이 테스트마저 쉽게 할 수 있도.. 2022. 2. 12.
[Spring Boot] Mybatis 변수 사용시 #{ } 와 ${ } 의 차이 Spring Boot에서 데이터베이스를 접근할 때 많이 사용하는 방법은 Mybatis를 사용하는 방법과 Jpa를 사용하는 방법이 있습니다. 이번 포스팅에서는 Mybatis를 사용하면서 마주하게 되는 #{}와 ${}의 차이를 알아보도록 하겠습니다. Mybatis 문법 Mybatis는 기본적으로 xml 파일에 쿼리문을 넣어서 사용합니다. 따라서 쿼리의 종류에 따라 xml를 묶어서 사용할 수 있고 Database 쿼리만 따로 관리할 수 있어서 편리한 이점이 있습니다. 다음과 같은 쿼리를 사용해야 한다고 생각해 보겠습니다. SELECT * FROM usertbl WHERE user_id = 'test'; 여기서 문자열로 받는 test는 Java 클래스와 연동시켜서 보통 사용하고 값을 넘겨줍니다. 그래서 XML .. 2021. 5. 5.
[Spring Boot] Mybatis 에서 조건문 사용시 null 과 zero size string 구분 방법 스프링 부트 프로젝트를 만들기 시작하면 DB Query를 많이 작성하게 됩니다. 기본적으로 게시판 형태가 가장 기본인 되는 CRUD이기 때문이죠. 이때 Mybatis를 사용하면 parameter로 넘어온 object가 null 인지 아닌지를 비교해야 할 필요가 있습니다. 이번 포스팅에서는 parameter의 object가 null 혹은 zero size string을 구분하는 방법을 알아보도록 하겠습니다. Mybatis에서 NULL 또는 ""(zero size string) 구분 Mybatis 문법을 이용해서 NULL 또는 "" 스트링을 구분하는 방법은 다음과 같습니다. NULL 구분 ... ""(zero size string) 구분 ... 예를들어서 parameter로 넘어온 Object가 null이 .. 2021. 3. 16.
[Spring Boot] Mybatis 동적쿼리 LIKE 사용 방법 스프링 부트와 같은 거대한 프레임워크를 공부하다 보면 문법에 맞지 않아서 고생(보통 '삽질')을 많이 합니다. 웹 프로그래밍을 할 때, 보통 DB에서 무엇인가를 가져오기 위해 쿼리를 작성합니다. 이때 오류가 가장 많이 나타나는 것 같습니다. 이번 포스팅에서는 Mybatis 사용시 동적 쿼리 중 LIKE를 사용하는 방법에 대해서 알아보도록 하겠습니다. SQL에서 포함되는 글자를 찾아주는 LIKE 관계형 데이터베이스(RDBMS)에서 특정 문자열이 있는지 검색하고 싶을 때 사용하는 문법이 LIKE입니다. LIKE문의 사용법은 아래와 같이 사용합니다. SELECT * FROM table_name WHERE column_name LIKE '%test%'; MySQL 또는 MariaDB의 Query 구문입니다. 조.. 2021. 3. 12.
[Spring Boot] 정적소스 수정 후 서버 재시작 없이 적용 방법 스프링 부트(Spring Boot) 개발을 공부하시다 보면 느껴지는 불편함이 있습니다. 바로 정적 소스들을 수정해도 브라우저에 바로 반영이 되지 않아서 서버를 항상 재시작해야 하는 점이죠. 그래서 이번 포스팅에서는 정적 소스(*.html, *. js, *. css)들을 수정하고 서버 재시작 없이 적용하는 방법에 대해서 알아보도록 하겠습니다. 서버 재시작 없이 정적소스 반영 1 : devtools 추가 첫 번째로 해야 할 일은 Maven에 devtools 라이브러리를 추가하는 것입니다. 보통은 개발 세팅을 할 때 미리 라이브러리를 추가해 주지만 추가가 되어 있지 않을 경우에 추가해 주시면 됩니다. 먼저 pom.xml파일을 열어서 아래 dependency를 추가해줍니다. org.springframework... 2021. 3. 9.
[Spring Boot] Mybatis 에서 SQL 조건문 사용 방법 스프링부트 프레임워크를 사용하면서 Mybatis를 이용해 DB에 접근해서 데이터를 가져오다보면 여러가지 다양한 조건이 필요합니다. 특히 조건이 다양하고 null 값이 포함될 수 있는경우 where 절에는 and 를 붙여서 길어질 수 있죠. 이때 저의 경우는 문제점이 하나 발생했습니다. 이번 포스팅에서는 스프링 부트 Mybatis 사용시에 발생될 수 있는 where절의 문제점을 해결해 보도록 하겠습니다. Spring Boot Mybais 조건 활용하기 SQL문을 이용해서 Query를 할 경우 다양한 조건이 포함될 수 있습니다. 이때 if ~ else와 동일한 조건문을 만들 수 있습니다. 이렇게 만드는 이유는 다음과 같습니다. SELECT * FROM board WHERE 조건1 and 조건2 and 조건3.. 2021. 3. 8.
[Spring Boot] Lombok 어노테이션 활용하기 스프링 부트(Spring Boot) 프레임워크를 사용하다보면 데이터베이스를 접근해서 가져와 Class에 값을 담게 됩니다. 그래서 이 클래스에는 getter, setter를 포함해서 toString과 같은 메소드들이 포함되어 있습니다. 이러한 변수들은 모두 private으로 접근제한이 걸려있기 때문이죠. 이때 변수가 추가된다고 하면 각각의 변수에 getter와 setter를 만들어 줘야 하고 또 필요에 따라 생성자에 추가되거나 확인하기 위한 toString 메소드에도 추가되어야 합니다. 이럴때 편하게 사용할 수 있는 라이브러리가 바로 롬복(Lombok) 입니다. 그럼 Lombok은 어떠한 기능들을 가지고 있는지 알아보도록 하겠습니다. Lombok 어노테이션 @Getter @Setter Lombok 라이브.. 2021. 3. 2.