
๊ธฐ์กด ์์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๋ฉด์ ํ ๊ฐ์ง ์์ฌ์์ด ์์๋ค.
ํ์ฌ ์ํ๋ ๋ณด์ด๋๋ฐ,
๊ทธ ์ํ๊ฐ ์ด๋ป๊ฒ ๋ง๋ค์ด์ก๋์ง๋ ์ ๋ณด์ด์ง ์๋๋ค.
โ ์ด๊ฒ ์๊ฐ๋ณด๋ค ํฐ ๋ฌธ์ ์๋ค.
์๋ฅผ ๋ค์ด:
์ด๋ฐ ์ ๋ณด๋ ๋ก๊ทธ๋ฅผ ๋ฐ๋ก ๋ค์ง๊ฑฐ๋, ์์ ๋จ์์์ง ์์ ๊ฒฝ์ฐ๋ ๋ง์๋ค.
๊ทธ๋ฌ๋ค ๋ณด๋ ์์ฐ์ค๋ฝ๊ฒ ์ด๋ฐ ์๋ฌธ์ด ๋ค์๋ค.
ํ์ฌ ์ํ๋ง์ผ๋ก๋ ์์ ์ ํ๋ฆ์ ์ค๋ช ํ๊ธฐ ์ด๋ ต์ง ์์๊น?
๊ทธ๋์ ๊ตฌ์กฐ๋ฅผ ์ด๋ ๊ฒ ๋ฐ๊ฟ๋ณด๊ธฐ๋ก ํ๋ค.
Task โ ํ์ฌ ์ํ (์กฐํ์ฉ)
TaskEvent โ ์ํ ๋ณํ ์ด๋ ฅ (๊ธฐ๋ก์ฉ)
์ฆ,
์ํ ์ค์ฌ์ด ์๋๋ผ ์ด๋ฒคํธ ์ค์ฌ์ผ๋ก ํ๋ฆ์ ๋จ๊ธฐ๋ ๊ตฌ์กฐ
์ด ํ๋ก์ ํธ๋
์ํ๋ฅผ ์ ์ฅํ๋ ๊ฒ ์๋๋ผ, ์ํ๋ฅผ ๋ง๋ค์ด๋ธ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ์์คํ
์ ๋ชฉํ๋ก ํ๋ค.

๊ฒฐ๊ตญ,
ํ์ฌ ์ํ๋ฅผ ๋ณด๋ ๊ฒ์ด ์๋๋ผ
์ํ๊ฐ ๋ง๋ค์ด์ง ํ๋ฆ์ ๋ค๋ฃจ๋ ์์คํ
์ด ํ์ํ๋ค๊ณ ๋๊ผ๋ค
์ค๋์ ๋จ์ ์ธํ
์ด ์๋๋ผ
์ค์ ๋ก ๋์ํ๋ ์ต์ ๋จ์(MVP)์ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
๋จ์ํ ๋ง๋ค์๋ค๊ธฐ๋ณด๋ค
๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ์กฐํํ๋ ํ๋ฆ์ด ์ค์ ๋ก ๋์ํ๋ ์ํ๊น์ง ๋ง๋ ๊ฒ์ ์๋ฏธ๊ฐ ์๋ค.
๊ฒฐ๊ตญ ์ค๋์
์ดํ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ํ์ฅํ ์ ์๋ ๊ธฐ๋ฐ์ ๋ง๋ ๋จ๊ณ์๋ค
Spring Boot + Docker๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ค.
๋ก์ปฌ์ DB๋ฅผ ์ง์ ์ค์นํ์ง ์๊ณ
Docker๋ก PostgreSQL๊ณผ Redis๋ฅผ ์ฌ๋ ธ๋ค.
PostgreSQL โ ๋ฐ์ดํฐ ์ ์ฅ
Redis โ ์ดํ ์บ์ฑ/ํ์ฅ ๊ณ ๋ ค
docker-compose๋ก ์ ์ฒด ํ๊ฒฝ์ ๊ด๋ฆฌ
๐ก ์ ํ ์ด์
ํ๊ฒฝ์ ์ฝ๊ฒ ์ฌํํ ์ ์๊ณ
๋ก์ปฌ ํ๊ฒฝ์ ๊น๋ํ๊ฒ ์ ์งํ ์ ์๊ณ
์ค์ ์์ฒด๋ฅผ ์ฝ๋๋ก ๊ด๋ฆฌํ ์ ์๋ค
๊ฐ๋ฐ ํ๊ฒฝ๋ ๊ฒฐ๊ตญ ํ๋ก์ ํธ์ ์ผ๋ถ๋ผ๊ณ ์๊ฐํ๋ค.

ํ์ฌ ์ปจํ ์ด๋ ์คํ ์ํ (PostgreSQL, Redis)
์ดํ ํ์ฅ๊ณผ ์ฑ๋ฅ ๊ฐ์ ๊น์ง ๊ณ ๋ คํ ๊ธฐ๋ฐ์ ๋ฏธ๋ฆฌ ์ก์๋ ์ ์ด๋ค
๊ฐ์ฅ ๋จผ์ Task ์ํฐํฐ๋ฅผ ์ค๊ณํ๋ค.
@Entity
public class Task {
private Long id;
private String title;
private String description;
private TaskStatus status;
private LocalDateTime createdAt;
}
์ด ๊ตฌ์กฐ๋ ๋จ์ CRUD์ฉ์ด ์๋๋ค.
์ดํ TaskEvent ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ํ์ฅํ๊ธฐ ์ํ
ํ์ฌ ์ํ ์ค๋
์ท ์ญํ ์ด๋ค.
๐ข CREATE
POST /tasks
๐ต READ
GET /tasks
GET /tasks/{id}
๐ก ๊ตฌํ ํฌ์ธํธ
๋จ์ CRUD ๊ตฌํ์ด ์๋๋ผ
๋ฐ์ดํฐ ํ๋ฆ์ด ์ ๋๋ก ์ด์ด์ง๋์ง ํ์ธํ๋ ๋จ๊ณ
์์ฑ โ ์ ์ฅ โ ์กฐํ
์ด ํ๋ฆ์ด ๋๊ธฐ์ง ์๋์ง ํ์ธ

โ ์ค์ DB์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ํ

โ ์ฌ๋ฌ Task์ ํ์ฌ ์ํ ์ค๋ ์ท์ ๋ฐํ

โ ํน์ Task์ ํ์ฌ ์ํ๋ฅผ ์กฐํ
Postman ๋์ test.http๋ฅผ ์ฌ์ฉํ๋ค.
POST http://localhost:8080/tasks
GET http://localhost:8080/tasks
GET http://localhost:8080/tasks/1
๐ก ์ ํ ์ด์
์ฝ๋์ ํจ๊ป ๊ด๋ฆฌํ ์ ์๊ณ
์คํ ๊ฐ๋ฅํ ๋ฌธ์ ์ญํ ์ ํ๊ณ
ํ์
์ ๊ณต์ ํ๊ธฐ ์ฝ๋ค
๋จ์ ํ
์คํธ ํ์ผ์ด ์๋๋ผ
API ๋ช
์ธ๋ฅผ ๊ฐ์ด ๊ด๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค.

์ค๋ ๊ฒช์ ์ด์๋ค:
๋๋ถ๋ถ
์ฝ๋ ๋ฌธ์ ๋ผ๊ธฐ๋ณด๋ค ํ๊ฒฝ/์ค์ ๋ฌธ์ ์๋ค
๊ฒฐ๊ตญ,
๋จ์ ๊ธฐ๋ฅ ๊ตฌํ๋ณด๋ค
๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ์ง ๊ณ ๋ฏผํ๋ ๊ฒ ๋ ์ค์ํ๋ค๋ ๊ฑธ ๋๊ผ๋ค
CREATE โ๏ธ
READ โ๏ธ
๊ธฐ๋ณธ ํ๋ฆ์ ์์ฑ
Response DTO ์ ์ฉ
API ๊ตฌ์กฐ ๊ฐ์
TaskEvent ๋๋ฉ์ธ ์ค๊ณ
์ํ ์ค์ฌ ๊ตฌ์กฐ์์
์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ๋์ด๊ฐ๋ค