Skip to content

๐ŸŸก F4: FeedItemResponse ์‹ ๊ทœ 3ํ•„๋“œ ์‹ค์ œ ๊ฐ’ ์ฑ„์šฐ๊ธฐย #38

@ThonApple

Description

@ThonApple

๋ฐฐ๊ฒฝ

PR #32 ์—์„œ FeedItemResponse ์— ๋‹ค์Œ 3ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ๋นŒ๋”์—์„œ ํ•ญ์ƒ null:

  • myApplicationRole (FeedApplicationRole)
  • myApplicationDeposit (Integer)
  • isRentable (Boolean)

JSON ํ‚ค๋Š” ๋‚˜๊ฐ€์ง€๋งŒ ๊ฐ’์ด ์—†์–ด์„œ ํ”„๋ก ํŠธ๊ฐ€ ์‚ฌ์‹ค์ƒ ํ™œ์šฉ ๋ชป ํ•จ.

ํ•ด์•ผ ํ•  ์ผ

  1. FeedItemResponse.from(...) ์‹œ๊ทธ๋‹ˆ์ฒ˜ ํ™•์žฅ ๋˜๋Š” ๋ณ„๋„ ํ—ฌํผ
    • myApplicationRole/myApplicationDeposit: ํ˜„์žฌ ์œ ์ €์˜ FeedApplication ์กฐํšŒํ•ด์„œ ์ฑ„์šฐ๊ธฐ
  2. FeedItemService.getFeedItems / getFeedItem ์—์„œ batch ์กฐํšŒ
    • ํ”ผ๋“œ N๊ฑด ร— user 1๊ฑด โ†’ feedApplicationRepository.findByFeedItemIdInAndUserId(...) 1์ฟผ๋ฆฌ
  3. isRentable โ€” FeedItem.type == RENT ๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์ •์ฑ…์— ๋”ฐ๋ผ ์‚ฐ์ถœ. ์ •์ฑ… ๋ฏธํ™•์ •์ด๋ฉด ์ผ๋‹จ feedItem.getType() == RENT ๋กœ

๊ฒ€์ฆ

  • ์‹ ์ฒญํ•œ ํ”ผ๋“œ โ†’ myApplicationStatus, myApplicationRole, myApplicationDeposit ๋ชจ๋‘ ์ฑ„์›Œ์ง
  • ์‹ ์ฒญ ์•ˆ ํ•œ ํ”ผ๋“œ โ†’ ์„ธ ํ•„๋“œ ๋ชจ๋‘ null
  • N+1 ์—†์Œ (ํ”ผ๋“œ ๋ชฉ๋ก ํ˜ธ์ถœ ์‹œ application ์กฐํšŒ 1ํšŒ)

์˜์กด์„ฑ

F1 (์ธ์ฆ ํ†ตํ•ฉ) ์™„๋ฃŒ ํ›„ ์ง„ํ–‰. ๊ทธ ์ „์—” currentUserId๋ฅผ ์–ป์„ ํ‘œ์ค€ ๋ฐฉ๋ฒ•์ด ์—†์Œ.

์˜ํ–ฅ ํŒŒ์ผ

capstone-api/feed/dto/FeedItemResponse.java, capstone-api/feed/service/FeedItemService.java

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions