Skip to content

๐Ÿ‘จโ€๐Ÿ’ป ์˜คํ”ˆ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค

Notifications You must be signed in to change notification settings

MyunDev/BlogSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

37 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BlogSearch

๐Ÿ’ ํ”„๋กœ์ ํŠธ ์„ค๋ช…

์˜คํ”ˆ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค


๐Ÿ›  ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‚ฌํ•ญ

  • ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ API

    • ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ธ”๋กœ๊ทธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • requestBody๋ฆ ํ†ตํ•ด ๋„˜๊ธฐ๋Š” ์ •๋ ฌ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ์—์„œ Sorting(์ •ํ™•๋„์ˆœ, ์ตœ์‹ ์ˆœ) ๊ธฐ๋Šฅ์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.

    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” Pagination ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

    • requestBody์— ๋„˜๊ธฐ๋Š” ๊ฒ€์ƒ‰์†Œ์Šค ํƒ€์ž…์— ๋”ฐ๋ผ ์นด์นด์˜ค API์˜ ํ‚ค์›Œ๋“œ๋กœ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ๋˜๋Š” ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ API๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • ๊ฒ€์ƒ‰ API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ KEYWORD ํ…Œ์ด๋ธ”์— ํ‚ค์›Œ๋“œ์™€ ์นด์šดํŠธ ํšŸ์ˆ˜๊ฐ€ ์ €์žฅ๋˜๊ณ  ์ด๋ฏธ ์ €์žฅ๋œ ํ‚ค์›Œ๋“œ๋ผ๋ฉด count ํšŸ์ˆ˜๋งŒ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ๋ชฉ๋ก ์กฐํšŒ API

    • ์‚ฌ์šฉ์ž๋“ค์ด ๊ฒ€์ƒ‰ํ•œ ์ƒ์œ„ 10๊ฐœ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์กฐํšŒํ•œ ํšŸ์ˆ˜์™€ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • ์นด์šดํŠธ ํšŸ์ˆ˜์— ๋”ฐ๋ผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“š ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ธฐ์ˆ  ์Šคํƒ

์‚ฌ์šฉ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ธฐ์ˆ  ์Šคํƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • SpringBoot : 2.7.9
  • h2 database: 2.1.214
  • springCloudVersion : 2021.0.5 - Feign Client ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ dependency
  • springCloudAwsVersion : 2.4.2 - Feign Client ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ dependency
  • lombokVersion : 1.18.24 - MapStruct ์‚ฌ์šฉ์œ„ํ•œ dependency
  • lombokMapstructBindVersion : 0.2.0 - MapStruct ์‚ฌ์šฉ์œ„ํ•œ dependency
  • mapStructVersion : 1.5.3.Final - DTO ๊ฐ„ ๋งคํ•‘์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • OpenFeign : 4.10.0 - ์™ธ๋ถ€ API ์—ฐ๋™์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • guava : 30.1.1-jre - ImmutableMap ํ™œ์šฉ์„ ์œ„ํ•ด ์ถ”๊ฐ€

๐Ÿ™‹โ€โ™‚๏ธ Feign Client ์‚ฌ์šฉ ์ด์œ 

  • ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ API๋Š” ์™ธ๋ถ€ ์„œ๋น„์Šค์˜ ์‘๋‹ต์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ํฌํ•จ๋˜์–ด ๋ฐ˜๋“œ์‹œ ์‘๋‹ต์„ ๋ฐ›์•„์•ผ API๋ฅผ ์„ฑ๊ณต ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋™๊ธฐ ํ†ต์‹  ๋ฐฉ์‹์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ interface์™€ annotation ์„ ์–ธ๋งŒํ•˜๋ฉด ๊ตฌํ˜„์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” Feign Client๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ™‹โ€ MapStruct ์‚ฌ์šฉ ์ด์œ 

  • ๋„๋ฉ”์ธ ์„œ๋น„์Šค์—์„œ View๋กœ๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ ๊ฐ’์„ ๋ฐ›๊ฑฐ๋‚˜ ์™ธ๋ถ€ ์—ฐ๋™ ์„œ๋น„์Šค๋กœ๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ ๊ฐ’์„ ๋ฐ›์„ ๋•Œ, ์˜์กด์„ฑ์„ ์ค„์ด๊ณ  ํ•„์š”ํ•œ ๊ฐ’๋“ค ๋งŒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด DTO๋กœ ๋ณ€ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๋•Œ ๋งŽ์€ ํ•„๋“œ ๊ฐ’๋“ค์„ ์ผ์ผํžˆ ๋งคํ•‘ํ•˜๊ธฐ๋ณด๋‹ค ํ•ด๋‹น ์ž‘์—…์„ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” MapStruct๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • MapStruct๋Š” ๋ฆฌํ”Œ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ปดํŒŒ์ผ ํƒ€์ž„(์–ด๋…ธํ…Œ์ด์…˜ ํ”„๋กœ์„ธ์„œ)์— ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

About

๐Ÿ‘จโ€๐Ÿ’ป ์˜คํ”ˆ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages