๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 76

[SpringBoot] Swagger ์‚ฌ์šฉ ์‹œ ์˜ค๋ฅ˜

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“Œ๋ฌธ์ œ Swagger Configuration ์ž‘์„ฑ ์‹œ ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ์ •์  ๋ฆฌ์†Œ์Šค ๋‚ด ๋ชจ๋“  ํŒŒ์ผ์ด ์ธ์‹๋˜์ง€ ๋ชปํ•จ(No mapping GET...), swagger-ui/index.html๊ฐ€ 404๋กœ ๋œจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. dependencies { ... // swagger implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.sprin..

Java/Spring 2024.03.13

[SpringBoot/JPA] ๊ฒ€์ƒ‰์„ ํฌํ•จํ•œ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ DTO

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“Œํ๋ฆ„ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ํŽ˜์ด์ง•ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ํ˜„์žฌ ์š”์ฒญํ•˜๋Š” ํŽ˜์ด์ง€, ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜, ๊ฒ€์ƒ‰ ํƒ€์ž…, ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ, ๋งํฌ๋ฅผ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ DTO ๊ฐ์ฒด์™€ ํ˜„์žฌ ํŽ˜์ด์ง€, ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜, ์ด์ „/๋‹ค์Œ ํŽ˜์ด์ง€ ์กด์žฌ ์—ฌ๋ถ€, ๊ฒŒ์‹œ๊ธ€๋“ค์„ ๋‹ด์„ list๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต DTO ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. package org.zerock.b02.dto; import lombok.AllArgsConstructor; import lombok.B..

Java/Spring 2024.03.13

[SpringBoot/JPA] ModelMapper๋กœ Entity์™€ DTO ๋ณ€ํ™˜ํ•˜๊ธฐ

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“ŒModelMapper๋ž€? ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ฐ’์„ ํ•œ๋ฒˆ์— ๋ณต์‚ฌ(๋งคํ•‘)ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์ผ์น˜ํ•˜๋Š” ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๊ฐ€ ์žˆ๊ณ  ์ด ๊ฐ’์„ DTO์— ๋‹ด๊ฑฐ๋‚˜ ํ˜น์€ ๊ทธ ๋ฐ˜๋Œ€์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํ•„๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋งคํ•‘์‹œํ‚จ๋‹ค๋ฉด ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ๊ฐ’์ด ๋ณ€์งˆ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. `modelMapper`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—”ํ‹ฐํ‹ฐ์™€ DTO์˜ ๋ณ€ํ™˜์„ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ“Œํ๋ฆ„ 1. `build.gradle`์— `..

Java/Spring 2024.03.13

[SpringBoot/JPA] Querydsl์„ ์‚ฌ์šฉํ•œ ๋™์ ์ฟผ๋ฆฌ

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“ŒQuerydsl์ด๋ž€? Querydsl์€ JPA์˜ ๊ตฌํ˜„์ฒด์ธ Hibernate ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” HQL(Hibernate Query Language)๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งํ•œ๋‹ค. JPA๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž…์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Querydsl์˜ ๋ชฉ์ ์€ ํƒ€์ž… ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด JPQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๐Ÿ“Œ์‚ฌ์šฉํ•˜๊ธฐ Querydsl๋ฅผ ์‚ฌ..

Java/Spring 2024.03.12

[SpringBoot/JPA] ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” @Query

์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ž€ SQL์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์™€ ์ปฌ๋Ÿผ์„ ๊ฒฐํ•ฉํ•ด ๊ตฌ์„ฑํ•˜์—ฌ ๊ทธ ์ž์ฒด๊ฐ€ JPA์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ `findById` ์ฒ˜๋Ÿผ ์ปฌ๋Ÿผ๋ช…๊ณผ ํ‚ค์›Œ๋“œ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๊ตฌ์„ฑํ•œ๋‹ค. ์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ  Spring Data JPA(์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ) Spring Data JPA๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. • ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์œผ๋กœ ์ฟผ๋ฆฌ ์ƒ์„ฑ ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ๋Š” Repository ์ธํ„ฐํŽ˜์ด์Šค์— ๊ฐ„๋‹จํ•œ ๋„ค์ด๋ฐ ๋ฃฐ์„ ์ด์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ kihwan95.tistory.com ์˜ˆ๋ฅผ ๋“ค์–ด ์ œ๋ชฉ์— ํŠน์ • ํ‚ค์›Œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€์„ bno์˜ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Page findByTitleContainingOrderByBnoDesc(Strin..

Java/Spring 2024.03.12

[Spring/JPA] Spring Data JPA๋กœ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌํ•˜๊ธฐ

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“Œ ํ๋ฆ„ CRUD๋Š” ์ด์ œ (๊ฑฐ์ง“๋ง ์กฐ๊ธˆ ๋ณดํƒœ์„œ) ๋ˆˆ ๊ฐ๊ณ ๋„ ํ•˜๋ผ๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋Š” ํ•ญ์ƒ ํ•˜๊ธฐ ์‹ซ๋‹ค ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋”๋””๊ณ  ์‹ค์ˆ˜๋„ ์žฆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Spring Data JPA๋Š” ํŽ˜์ด์ง• ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•ด๋‘์—ˆ๋‹ค. ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋Š” `Pageable`ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. `Pageable`์€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ `PageRequest.of()`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. `PageRequest.of(ํŽ˜์ด์ง€๋ฒˆํ˜ธ, ์‚ฌ์ด์ฆˆ..

Java/Spring 2024.03.12

[SpringBoot/JPA] Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒŒ์‹œํŒ CRUD

๐Ÿ“Œํ™˜๊ฒฝ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool ๐Ÿ“Œ Spring Data JPA๋กœ SQL๋ฌธ ์ž‘์„ฑ ์—†์ด CRUDํ•˜๊ธฐ โœ๏ธ CREATE(INSERT) ๊ธ€ ๋ฒˆํ˜ธ, ์ œ๋ชฉ, ๋‚ด์šฉ, ๊ธ€์“ด์ด๋ฅผ ๊ฐ€์ง„ `Board` ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. package org.zerock.b02.domain; public class Board extends BaseEntity { private Long bno; private String title; private String content; private St..

Java/Spring 2024.03.12

๋งฅ์—์„œ MySQL, MariaDB๋กœ ์ „ํ™˜ ์‹œ ์˜ค๋ฅ˜

Mysql ์“ฐ๋‹ค๊ฐ€ MariaDB ์“ฐ๋ ค๋Š”๋ฐ ํ„ฐ๋ฏธ๋„์—์„œ mysql์ด none์ž„์—๋„ mariadb์— ์ ‘์†๋˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ mariadb ํฌํŠธ 3307 mysql ํฌํŠธ 3306 ์ด๋‹ค. ์ด ์ƒˆ๋ผ๊ฐ€ ์‚ด์•„์žˆ์–ด์„œ ๊ทธ๋ ‡๋‹ค ๊บผ์ค€๋‹ค

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

๐Ÿ“Œ์•Œ๊ณ ๋ฆฌ์ฆ˜์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์ ˆ์ฐจ์™€ ๊ณผ์ •์„ ์ผ์ปซ๋Š”๋‹ค. ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋”ฐ๋ผ์•ผ ํ•  ๋ช…๋ น์–ด๋“ค์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ์„ ๋œปํ•œ๋‹ค. ๐Ÿ“Œ์กฐ๊ฑด1. ์ž…์ถœ๋ ฅ: 0๊ฐœ ์ด์ƒ์˜ ์™ธ๋ถ€ ์ž…๋ ฅ๊ณผ 1๊ฐœ ์ด์ƒ์˜ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•œ๋‹ค.2. ๋ช…ํ™•์„ฑ: ๊ฐ ๋ช…๋ น์€ ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋ช…ํ™•ํ•ด์•ผํ•œ๋‹ค.3. ์œ ํ•œ์„ฑ: ํ•œ์ •๋œ ์ˆ˜์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ ํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒํ•ด์•ผํ•œ๋‹ค.4. ์œ ํšจ์„ฑ: ๋ชจ๋“  ๋ช…๋ น์€ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.5. ํšจ์œจ์„ฑ: ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํšจ์œจ์ ์ด์–ด์•ผ ํ•œ๋‹ค.(์‹ค์šฉ์  ๊ด€์ ) ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœ ๋ช…ํ™•ํ•˜๋ฉฐ ์ปดํ“จํ„ฐ๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํ•œ ๊ฐœ์˜ ์ผ๋ จ์˜ ๋ช…๋ น์–ด๋“ค์„ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ตฌ์„ฑํ•œ ๊ฒƒ์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ ํ•œ๋‹ค.  ๐Ÿ“Œ์„ค๊ณ„์ฃผ์–ด์ง„ ๋ฌธ์ œ์™€ ์กฐ๊ฑด์€ ๋งค์šฐ ๋‹ค์–‘..

[Spring] Could not find modelmapper ์˜ค๋ฅ˜

๐Ÿ“Œํ™˜๊ฒฝ Spring Boot 3.2.3 Gradle - Groovy JPA Java 17 ๐Ÿ“Œ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ Could not find org.modelmapper.modelmapper:3.1.0: Required by: project : ๐Ÿ“Œํ•ด๊ฒฐ ์ฐธ๊ณ ํ•œ ์ฑ…(์ž๋ฐ” ์›น ๊ฐœ๋ฐœ ์›Œํฌ๋ถ)์—์„œ๋Š” ์˜์กด์„ฑ ์ถ”๊ฐ€ ์‹œ `build.gradle`์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ผ๊ณ  ์จ์žˆ๋‹ค. dependencies { implementation 'org.modelmapper:modelmapper:3.1.0' } ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. dependencies { implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.1.1' }