스프링부트 11

[Spring Boot] Spring Boot + Thymeleaf 구조에서 decorate를 이용하여 layout 설정하기

안녕하세요. hia의 개발 story입니다. 이번에는 부디 끝까지 만들어 볼 수 있기 바라며 Sample Board Project를 시작했습니다. 말 그대로 간단한 게시판 프로그램을 만들 예정이며 부수적으로 로그인이나 회원가입 같은 기능들도 함께 넣어 공부해보려 합니다. 우선 틀을 잡기에 앞서 프로젝트를 생성하는 방법은 종종 업데이트를 했기 때문에 생략하도록 하겠습니다. 혹시 모르시는 분들을 위해 intellij에서 스프링부트 프로젝트 생성하는 방법을 올려드리도록 하겠습니다. [Spring Boot] Intellij에 스프링 부트 프로젝트 생성하기 안녕하세요. hia의 개발 story입니다. 안녕하세요. 웹 개발을 공부하고 있는 개발자 hia입니다. 오늘은 작은 프로젝트를 시작하기 위해 스프링 부트 프로..

Springboot 2023.08.08

[Spring Boot] 쿼리메서드 - deleteBy 사용하기

안녕하세요. hia의 개발 story입니다. 이번에는 쿼리 메서드를 이용하여 메서드 이름을 'deleteBy'로 시작하면 특정 조건에 맞는 데이터를 삭제할 수 있습니다. 이를 위해 만들어 둔 Repository interface에 아래와 같이 메서드를 작성해 줍니다. public interface SampleRepository extends JpaRepository { void deleteSampleByIdLessThan(Long l); } 테스트 코드를 작성하여 메서드를 테스트해보도록 합시다. @Commit @Transactional @Test public void testDeleteQueryMethod(){ sampleRepository.deleteSampleByIdLessThan(10l); } 이때..

Springboot 2023.06.12

[Spring Boot] JpaRepository에서의 쿼리메서드

안녕하세요. hia의 개발 story입니다. Spring JPA의 경우 여러 가지의 검색 조건에 필요한 기능들을 제공합니다. 쿼리 메서드 : 메서드가 쿼리의 구문으로 처리되도록 하는 기능 @Query : SQL처럼 만들기 위해 엔티티 클래스의 정보를 이용해 쿼리를 작성하는 기능 Querysl 등의 동적 쿼리 처리 기능 오늘은 이 중에서 쿼리 메서드에 대해서 공부하려고 합니다. 쿼리 메서드 쿼리 메서드 문서는 아래 페이지에서 찾아볼 수 있습니다. 처음부터 문서만 봐서는 활용하기 어려우니 기초적인 부분을 정리해보려고 합니다. Spring Data JPA - Reference Documentation Example 119. Using @Transactional at query methods @Transacti..

Springboot 2023.03.31

[Spring Boot] JpaRepository의 페이징 및 정렬 처리 하기

안녕하세요. hia의 개발 story입니다. 오늘은 JpaRepository를 이용해 페이징 처리와 정렬 처리를 해보려고 합니다. 지난번에 만든 테이블에는 데이터가 부족하니 sample 테이블에 페이징을 볼 수 있는 데이터를 50개 정도 넣도록 하겠습니다. 이제 CRUD 테스트를 위해 만들었던 SampleRepositoryTests를 이용해 계속 테스트를 해보겠습니다. 페이징 처리 : findAll() 페이징 처리는 findAll() 메서드를 이용하면 됩니다. 이때 findAll( )의 매개변수로 Pageable을 사용하면 Page 로 반환을 하게 되어있습니다. 아래의 소스로 페이징 되어 나오는 데이터를 확인할 수 있습니다. @Test public void pageTest(){ Pageable pagea..

Springboot 2023.03.22

[Spring Boot] JpaRepository를 이용한 CRUD 테스트 예제 공부

안녕하세요. hia의 개발 story입니다. 오늘은 저번에 만들었던 Sample 테이블을 이용하여 JpaRepository 테스트를 해보려고 합니다. JpaRepository를 이용하면 SQL 없이 CRUD 작업을 할 수 있습니다. 개발자에게는 엄청나게 시간을 아껴주는 고마운 친구인 것이죠. JpaRepository CRUD 메서드 insert : save(엔티티 객체) select : findById(키 타입), getOne(키 타입) update : save(엔티티 객체) delete : deleteById(키 타입), delete(엔티티 객체) 특이한 점은 insert와 update 모두 save()라는 메서드를 사용하는데 이는 JPA가 메모리상에서 객체를 비교하고 없으면 insert, 존재하면 u..

Springboot 2023.03.21

[Spring Boot] Spring JPA 엔티티 클래스 작성해서 테이블 만들기

안녕하세요. hia의 개발 story입니다. 저번 글에 이어 JPA를 이용하여 MariaDB에 테이블을 만들어보도록 하겠습니다. Spring Data JPA를 이용하면 엔티티 클래스를 이용해서 테이블을 자동으로 만들 수 있습니다. DDL을 작성하는 게 꽤나 귀찮은데 이렇게 만들 수 있다면 조금 더 편하게 코딩을 할 수 있겠네요. Entity 클래스 만들기 우선 entity 클래스를 하나 만들어 준 후 아래에 Sample 클래스를 만들어줬습니다. package com.jenny.project.entity; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; i..

Springboot 2023.03.20

[Spring Boot] MariaDB와 Spring JPA 사용하기

안녕하세요. hia의 개발 story입니다. 오늘은 스프링 JPA에 관한 글을 쓰려고 합니다. Spring JPA는 공식 홈페이지에서 설명하는 것과 같이 Spring에서 Jakarta Persistence API(JPA)를 사용할 수 있도록 하는 것입니다. JPA 데이터소스에 접근하기 쉽도록 만들어져 있어 간단한 설정만으로도 JPA를 사용할 수 있습니다. CRUD(Crate, Read, Update, Delete) 작업을 쉽게 처리할 수 있습니다. Spring Data JPA - Reference Documentation Example 119. Using @Transactional at query methods @Transactional(readOnly = true) interface UserReposi..

Springboot 2023.03.14

[Spring Boot] 무료 템플릿을 이용한 홈페이지 제작

안녕하세요. hia의 개발 story입니다. 스프링 부트를 공부할 겸 미니 프로젝트로 간단한 펜션 홈페이지를 제작하고 있습니다. 홈페이지를 제작하려고 하니 디자인이 걱정되기도 하고 페이지를 다 만들어야 한다는 생각에 걱정이 되었습니다. 그래서 무료로 제공되는 템플릿을 수정하여 사용하기로 했습니다. 아래 사이트는 제가 이용한 사이트인데 zip 파일로 제공할 뿐만 아니라 무료에 수정까지 가능한 템플릿을 제공합니다. 무료로 제공되지만 상당히 깔끔한 UI를 제공하는 것 같습니다. HTML5 UP Responsive HTML5 and CSS3 site templates designed by @ajlkn and released under the Creative Commons license. html5up.net 파..

Springboot 2022.12.07

[Spring Boot] 스프링 부트 프로젝트 Welcome Page 만들기

안녕하세요. hia의 개발 story입니다. 프로젝트의 가장 기본으로 Hello World 페이지를 만들어서 index 파일이 잘 읽히는지 확인하려고 합니다. 스프링 부트에서는 기본적으로 welcome page를 지원해줍니다. 공식 문서에서 보이듯이 파일명을 index로 설정하면 자동으로 welcome page로 인식을 합니다. 정확히는 프로젝트 실행 시에 스프링 부트에서 가장 먼저 index를 찾아서 가죠. Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-..

Springboot 2022.11.29

[Intellij IDEA] 프로젝트 import 후 실행 버튼 안보일때 해결방법

안녕하세요. hia의 개발 story입니다. 스프링 프로젝트를 진행하기 위해 프로젝트를 생성했습니다. 생성 후 실행 테스트를 해보려고 하니 run 버튼이 보이질 않았습니다. 억지로 찾아서 run을 돌려보려고 하니 그 또한 비활성화 버튼으로 보였습니다. 원래는 아래 사진에서 처럼 프로젝트에 우클릭을 하면 run이 보여야 하는 게 정상입니다. 그럼 이제 다시 run 버튼이 잘 보이도록 설정을 해봅시다. 우선 Mark Directory as > Sources Root 를 눌러줍니다. 이후에 다시 우클릭을 눌러서 Add Framework Support.. 를 눌러줍니다. 아래처럼 화면이 뜨면 Maven 프로젝트를 체크하고 OK를 클릭합니다. 잠시 기다린 후 다시 프로젝트 우클릭을 하면 아래 그림처럼 run이 보..

개발팁 2022.11.29