[Spring/JUnit] DataJpaTest์—์„œ JPAQueryFactory Bean ๋“ฑ๋ก ์—๋Ÿฌ : No qualifying bean of type 'com.querydsl.jpa.impl.JPAQueryFactory' available
ยท
Backend/Spring Boot
Spring์—์„œ JPA์™€ QueryDSL์„ ์‚ฌ์šฉํ•˜์—ฌ DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  Repository ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.     ๐Ÿ’ป ๊ฐœ๋ฐœ ํ™˜๊ฒฝFramework : Spring Boot `3.2.3`DB : MySQL, H2Library : JPA, QueryDSL `5.0.0`Test : JUnit     โ—๏ธ์—๋Ÿฌ ๋ฉ”์‹œ์ง€Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'XXXCustomRepositoryImpl' defined in file [.../repository/XXXCustomRepositoryImpl.class]: Unsati..
[Spring] DTO ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์—๋Ÿฌ : com.fasterxml.jackson.databind.exc.InvalidDefinitionException : No serializer found for class
ยท
Backend/Spring Boot
๐Ÿ’ป ์—๋Ÿฌ ๋ฉ”์‹œ์ง€com.fasterxml.jackson.databind.exc.InvalidDefinitionException : No serializer found for class com.xxxxxxx.xxxxx.dto.user.ProfileDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.xxxxxxx.xxxxx.api.response.xxxxxxxxxx["ProfileDto"])     ๐Ÿ”Ž ์›์ธ Jackson์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.  Jack..
[Spring Boot] Spring Boot์— Swagger ์ถ”๊ฐ€ํ•˜๊ธฐ
ยท
Backend/Spring Boot
Swagger๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋™์œผ๋กœ REST API๋ฅผ ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.  ๋ฐฑ์—”๋“œ์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋ฒ„ API๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋ฌธ์„œํ™”๋ฅผ ํ•ด๋‘๋ฉด API๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ํ˜‘์—…ํ•˜๋Š” ๋ฐ ์ข‹๋‹ค. ๊ทธ๋ฆฌ๊ณ  Swagger ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” UI๋„ ์ œ๊ณตํ•˜์—ฌ API ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ์—๋„ ์ข‹๋‹ค.      ๊ทธ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, ์„œ๋ฒ„ API๋ฅผ ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด Swagger๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ž‘๋…„์— Spring Boot 2.X ๋ฒ„์ „์—์„œ ๊ฐœ๋ฐœํ•˜๋ฉฐ Springfox๋ฅผ ์ ์šฉํ•ด Swagger๋ฅผ ์ถ”๊ฐ€ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— Spring 3.X ๋ฒ„์ „์—์„œ ๊ฐœ๋ฐœํ•˜๋ฉฐ Springfox๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.  Springdoc์„ ์ ์šฉํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๋ฐ, ๋‘ ๋ผ์ด๋ธŒ..
[Spring Boot] Spring Boot 3๊ณผ Spring Boot 2 ๋น„๊ต
ยท
Backend/Spring Boot
์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ์— ์ƒˆ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ, Spring Boot ๋ฒ„์ „์„ ์„ ํƒํ•ด์•ผ ๋๋‹ค. ์ž‘๋…„(23๋…„ ์ดˆ)๊นŒ์ง€๋งŒ ํ•ด๋„ ๊ต์œก์—์„œ ์šฐ๋ฆฌ ํŒ€ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, ๊ฑฐ์˜ ๋ชจ๋“  ์ฃผ๋ณ€ ํŒ€๋“ค์ด Spring 2.7 ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ Spring Boot 3 (22๋…„ 11์›” ์ถœ์‹œ)์ด ๋‚˜์˜จ์ง€ ์–ผ๋งˆ ์•ˆ๋˜์–ด์„œ Deprecated ๋˜๋Š” ๊ฒƒ๋„ ๊ฝค ์žˆ์—ˆ๊ณ , ์ฐธ๊ณ  ์ž๋ฃŒ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์–ด ๋‹ค๋“ค 2.7 ๋ฒ„์ „์„ ์„ ํƒํ–ˆ์—ˆ๋‹ค.         Spring Boot 2๊ฐ€ ๋‚ฎ์€ ๋ฒ„์ „๋ถ€ํ„ฐ ์ง€์›์ด ์ ์  ๋Š๊ธฐ๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ์กด์˜ ํ”„๋กœ์ ํŠธ๋ฅผ Spring Boot 3์œผ๋กœ ์ ์ฐจ ๋งˆ์ด๊ทธ๋ž˜์ด์…˜ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ๋‹ค.   ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— Spring Boot 3 ๋ฒ„์ „์„ ์“ฐ๊ฒŒ ๋˜์–ด์„œ, Spring Boot 3์—์„œ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์กŒ๋Š”์ง€ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค!     Java..
[Spring Boot] Redis๋กœ ๋žญํ‚น ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
ยท
Backend/Spring Boot
์šด๋™ ๋ชจ์ž„ ํ”„๋กœ์ ํŠธ์—์„œ ํŒ€ ๋žญํ‚น์„ ๋งก์•„์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํŒ€ ๋žญํ‚น ๊ธฐ๋Šฅ์€ ์Šคํฌ์ธ  ์ข…๋ฅ˜๋งˆ๋‹ค ๊ฒฝ๊ธฐ, ์Šน, ๋ฌด, ํŒจ, ๋ ˆ์ดํŒ… ์ˆ˜๋กœ ์ •๋ ฌ๋œ ์ƒ์œ„ 10๊ฐœ์˜ ํŒ€์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.      ์™œ Redis์ธ๊ฐ€?  ๋žญํ‚น ๊ธฐ๋Šฅ์€ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ ์กฐํšŒ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์œผ๋ฉด ๋А๋ ค์ง„๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด์ „์—๋Š” Redis๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , Spring Data JPA๋กœ ์กฐ๊ฑด(์šด๋™ ์ข…๋ฅ˜, ๊ฒŒ์ž„ ํƒ€์ž…, ์ •๋ ฌ ์กฐ๊ฑด)์— ํ•ด๋‹นํ•˜๋Š” RDB(MySQL)๋ฅผ ์กฐํšŒํ•˜์—ฌ ํŒ€ ๋žญํ‚น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์—ˆ๋‹ค. `getTop10BySportsAndGameTypeOrderByPointDesc(sports, gameType)`(SQL๋กœ ORDER BY๋ฅผ ์“ด ๊ฒƒ์ด๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.)   ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋žญํ‚น ์กฐํšŒ์‹œ๋งˆ๋‹ค ORDER BY ..
[Redis] Spring Boot์— Redis ์—ฐ๋™ํ•˜๊ธฐ + RedisTemplate, RedisRepository
ยท
Backend/Spring Boot
Spring์—์„œ ์ง€์›ํ•˜๋Š” Spring Data Redis๋ฅผ ํ†ตํ•ด์„œ Redis์˜ DB์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. Spring Data Redis๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์„ค์ •๊ณผ Redis์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.  Redis๋ฅผ Window์— ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •๊ณผ Redis ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ช…๋ น์–ด๋Š” ๋‹ค๋ฅธ ๊ธ€์— ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.      Spring Data Redis๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด `Redis 2.6` ์ด์ƒ์˜ ๋ฒ„์ „์ด ํ•„์š”ํ•˜๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ด ๊ธ€์€ `Spring Boot 3.2` ๋ฒ„์ „ + `Java 17`์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค. + `Lombok` ์ถ”๊ฐ€     ์˜์กด์„ฑ ์ถ”๊ฐ€Spring Initiaizer๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด `Spring Data Redis(Access+Driver)`๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.  Gradleimpleme..
giraffe_
'Backend/Spring Boot' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)