Skip to content

๐Ÿš€[๊ธฐ๋Šฅ๊ฐœ์„ ] Template ํŒจํ‚ค์ง€๋ฅผ Backtest ํŒจํ‚ค์ง€ ํ•˜์œ„๋กœ ์ด๊ด€ย #210

@ykh4663

Description

@ykh4663

๐Ÿ“ ํ˜„์žฌ ๋ฌธ์ œ์ 
ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ถ„์‚ฐ: ํ˜„์žฌ org.sejongisc.backend.template ํŒจํ‚ค์ง€๊ฐ€ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์œผ๋‚˜, ์‹ค์ œ๋กœ๋Š” Backtest ๋„๋ฉ”์ธ๊ณผ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ํ•จ๊ป˜ํ•˜์—ฌ ๊ตฌ์กฐ ํŒŒ์•…์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

DTO ๊ฐ€๋ณ€์„ฑ: Request/Response ๊ฐ์ฒด๊ฐ€ ์ผ๋ฐ˜ Class๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„ ๋ณ€๊ฒฝ.

ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ฏธํก: Service ๊ณ„์ธต์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๊ฐ€ ๋ช…์‹œ์ ์ด์ง€ ์•Š์•„ ์„ฑ๋Šฅ ๋ฐ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ์ด์Šˆ ์šฐ๋ ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋…ธํ›„ํ™”: Spring Boot 3.4+๋ถ€ํ„ฐ Deprecated ๋œ @MockBean์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€๊ฐ€ template ํ•˜์œ„์— ์žˆ๋Š” ๋ถ€๋ถ„.

๋ฉ”์„œ๋“œ ์ธ์ž ์ผ๋ถ€ ์ˆ˜์ •: Update/Create ๋ฉ”์„œ๋“œ ์ธ์ž ๋ณ€๊ฒฝ ๋ฐ Request Param์— userId, templateId ์‚ญ์ œ.

๐Ÿ› ๏ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ / ์ œ์•ˆ ๊ธฐ๋Šฅ
ํŒจํ‚ค์ง€ ํ†ตํ•ฉ: ๋ฐฑํ…Œ์ŠคํŒ…๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋กœ์ง(template)์„ backtest ํŒจํ‚ค์ง€ ํ•˜์œ„๋กœ ์ด๊ด€ํ•˜์—ฌ ์‘์ง‘๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

๊ตฌ์กฐ์  ๋ฆฌํŒฉํ† ๋ง: DTO๋ฅผ Record๋กœ ์ „ํ™˜ํ•˜์—ฌ ๋ถˆ๋ณ€์„ฑ์„ ํ™•๋ณดํ•˜๊ณ , ํŠธ๋žœ์žญ์…˜ ์ „๋žต(ReadOnly Default)์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ˜„๋Œ€ํ™”: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(@MockitoBean)๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋ณด๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.

โš™๏ธ ์ž‘์—… ๋‚ด์šฉ

  1. ํŒจํ‚ค์ง€ ๋ฐ ํŒŒ์ผ ์ด๊ด€

Entity ์ด๋™: Template, TemplateLike, TemplateBookmark โ†’ backtest.entity

DTO ์ด๋™: TemplateRequest, TemplateResponse โ†’ backtest.dto

Repository ์ด๋™: TemplateRepository โ†’ backtest.repository

Service ์ด๋™: TemplateService โ†’ backtest.service

Controller ์ด๋™: TemplateController โ†’ backtest.controller

Test ์ด๋™: TemplateControllerTest, TemplateServiceTest โ†’ backtest ํ•˜์œ„ ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€๋กœ ์ด๋™

Import ์ •๋ฆฌ: ์ „์ฒด ํ”„๋กœ์ ํŠธ ๋‚ด Import ๊ฒฝ๋กœ ์ˆ˜์ • ๋ฐ ๋นˆ ํŒจํ‚ค์ง€ ์‚ญ์ œ

  1. ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (Refactoring)

DTO Record ์ „ํ™˜: TemplateRequest, TemplateResponse๋ฅผ Java Record๋กœ ๋ณ€๊ฒฝ (๋ถˆ๋ณ€์„ฑ ํ™•๋ณด, Getter/Setter ์ œ๊ฑฐ)

ํŠธ๋žœ์žญ์…˜ ์ตœ์ ํ™”: Service ํด๋ž˜์Šค ๋ ˆ๋ฒจ์— @transactional(readOnly = true) ์ ์šฉ, ์“ฐ๊ธฐ ์ž‘์—…(CUD)์—๋งŒ ๋ณ„๋„ ํŠธ๋žœ์žญ์…˜ ์ ์šฉ

๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ํ†ต์ผ: updateTemplate, createTemplate ๋ฉ”์„œ๋“œ ์ธ์ž ๋ณ€๊ฒฝ

  1. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๊ฐœ์„ 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ต์ฒด: Deprecated ๋œ @MockBean โ†’ @MockitoBean (Spring Boot 3.4 ํ‘œ์ค€)์œผ๋กœ ์ „๋ฉด ๊ต์ฒด

๐Ÿ™‹โ€โ™‚๏ธ ๋‹ด๋‹น์ž
๋ฐฑ์—”๋“œ: @ykh4663

ํ”„๋ก ํŠธ์—”๋“œ:

๋””์ž์ธ:

AI :

Metadata

Metadata

Labels

BE๋ฐฑ์—”๋“œ ์ด์Šˆ

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions