Lino 시작하기
Lino๋ ์ ์ ์๋ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ถ ์ ๋ฌธ .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ , ๋ฐ์ ์ํค๊ณ , ํ์คํํ๊ธฐ ์ํ ๋ช ๋ น์ค ๋๊ตฌ์ ๋๋ค. ๋ฐ๋ณต์ ์ธ scaffolding ์์ ์ ์๋ํํ์ง๋ง, ๋ชฉ์ ์ ํ์ผ ์์ฑ์ ๊ทธ์น์ง ์์ต๋๋ค. Lino๋ ์ฑ ์ ๋ถ๋ฆฌ, ๋ช ์์ ์ธ ๊ณ์ธต, ๋๋ฉ์ธ ๋ชจ๋ธ๋ง, ์ ์ค์ผ์ด์ค, APIs, ํตํฉ, ์ด๋ฒคํธ, ์์์ฑ, ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ํก๋จ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ผ๊ด๋ ๊ธฐ์ ๊ตฌ์กฐ๋ก ๊ฐ๋ฐ์๋ฅผ ์๋ดํฉ๋๋ค. ๋ชฉํ๋ ํ์ง, ์ถ์ ์ฑ, ์ํคํ ์ฒ ๋ช ํ์ฑ์ ํฌ๊ธฐํ์ง ์์ผ๋ฉด์ ์ค์ ์์คํ ์ ์์๊ณผ ๋ฐ์ ์ ๊ฐ์ํ๋ ๊ฒ์ ๋๋ค.
์ฌ์ ์๊ตฌ ์ฌํญ
Lino๋ฅผ ์ค์นํ๊ธฐ ์ ์ ํ๊ฒฝ์ด ์ ๋๋ก ์ค๋น๋์๋์ง ํ์ธํ์ธ์:
- โ .NET 10.0 SDK ์ด์ ์ค์น. .NET ๋ค์ด๋ก๋
- โ
ํฐ๋ฏธ๋์์ .NET CLI ์ฌ์ฉ ๊ฐ๋ฅ. ๋ค์์ผ๋ก ํ์ธ:
dotnet --version - โ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ Git ์ค์น. Git ๋ค์ด๋ก๋
- โ
migrations ์ง์์ ์ํ Entity Framework Core CLI ์ค์น:
dotnet tool install --global dotnet-ef - โ Docker Desktop ๋๋ Podman๊ณผ ๊ฐ์ OCI ํธํ ์ปจํ ์ด๋ ํ๊ฒฝ.
ํ๋ซํผ ํธํ์ฑ
Lino๋ ํฌ๋ก์ค ํ๋ซํผ์ด๋ฉฐ ์ฃผ์ ์ด์ ์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- โ Windows
- โ macOS
- โ Linux
์ค์น
Lino๋ ์ ์ญ .NET ๋๊ตฌ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ๊ณ์ํ๊ธฐ ์ ์ .NET 10 SDK ์ด์์ด ์ค์น๋์ด ์๋์ง ํ์ธํ์ธ์.
์ต์ ๋ฒ์ ์ ์ค์นํ๋ ค๋ฉด ๋ค์์ ์คํํ์ธ์:
dotnet tool install --global Tolitech.Lino
์ค์น ํ ๋ค์์ ์คํํ์ฌ Lino๊ฐ ์ ์ ๋์ํ๋์ง ํ์ธํ์ธ์:
lino --version
์ค์น๊ฐ ์ฑ๊ณตํ๋ฉด ์ค์น๋ ๋ฒ์ ์ด ํฐ๋ฏธ๋์ ํ์๋ฉ๋๋ค.
์ธ์ฆ
Lino๋ฅผ ์ค์นํ ํ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ทผํ๋ ค๋ฉด ์ธ์ฆ์ ์ํํด์ผ ํฉ๋๋ค.
์ด๋ฏธ ๊ณ์ ์ด ์๋ค๋ฉด ๋ค์ ๋ช ๋ น์ผ๋ก ๋ก๊ทธ์ธํ์ธ์:
lino auth login
๋ค์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ผ๋ ์์ฒญ์ ๋ฐ์ต๋๋ค:
- ์ฌ์ฉ์: ์ด์ ์ ๋ฑ๋กํ ์ด๋ฉ์ผ ์ฃผ์.
- ๋น๋ฐ๋ฒํธ: ๊ณ์ ์ ์ฐ๊ฒฐ๋ ๋น๋ฐ๋ฒํธ.
์์ง ๊ณ์ ์ด ์๋ค๋ฉด CLI์์ ์ง์ ๋ฑ๋กํ์ธ์:
lino user register
๋ฑ๋ก ์ค์๋ ๋ค์ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค:
- ์ด๋ฆ: ์ฌ์ฉ์์ ์ด๋ฆ.
- ์ฑ: ์ฌ์ฉ์์ ์ฑ.
- ์ด๋ฉ์ผ: ๋ก๊ทธ์ธ์ผ๋ก๋ ์ฌ์ฉ๋ ์ด๋ฉ์ผ ์ฃผ์.
- ๋น๋ฐ๋ฒํธ: ์ต์ 6์ ์ด์์ ์์ ํ ๋น๋ฐ๋ฒํธ.
- ๋น๋ฐ๋ฒํธ ํ์ธ: ๊ฒ์ฆ์ ์ํด ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ์ ๋ ฅํฉ๋๋ค.
๋ฑ๋ก์ด ์๋ฃ๋๋ฉด ์ฌ์ฉ์๋ ์๋์ผ๋ก ์ธ์ฆ๋ฉ๋๋ค.
์ธ์ด ๊ธฐ๋ณธ ์ค์
๊ธฐ๋ณธ์ ์ผ๋ก Lino CLI๋ ์์ด en์ผ๋ก ํ์๋์ง๋ง, ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์
์ค ์ํ๋ ์ธ์ด๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค:
en | pt | es | de | fr | it | ja | ko | ru | zh
์ ์ธ์ด๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํ์ธ์:
lino preferences culture set --name <culture>
<culture>๋ฅผ ์ง์๋๋ culture ์ค ํ๋๋ก ๋ฐ๊พธ์ธ์. ์๋ฅผ ๋ค์ด ํฌ๋ฅดํฌ๊ฐ์ด๋ pt, ์์ด๋ en, ์คํ์ธ์ด๋ es๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋๋ ๋ค์ ๋ช ๋ น์ผ๋ก ๋ํํ ๋ชฉ๋ก์์ ์ธ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค:
lino preferences culture set
UTF-8 ์ธ์ฝ๋ฉ ์กฐ์ (์ ํ ์ฌํญ)
์ผ๋ณธ์ด, ํ๊ตญ์ด, ๋ฌ์์์ด ๋๋ ์ค๊ตญ์ด์ฒ๋ผ ํน์ ๋ฌธ์๊ฐ ์๋ ์ธ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ํ๋ ค๋ฉด ํฐ๋ฏธ๋์ด UTF-8 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ์ธ์.
Windows PowerShell์์๋ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ์ธ์ฝ๋ฉ์ ์กฐ์ ํฉ๋๋ค:
[console]::InputEncoding = [System.Text.Encoding]::UTF8
[console]::OutputEncoding = [System.Text.Encoding]::UTF8
์ฐธ๊ณ : Linux, macOS ๋ฐ Windows Terminal์์๋ UTF-8 ์ง์์ด ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ณธ ์ ๊ณต๋ฉ๋๋ค. ๊ทธ๋๋ ๋ฌธ์ ํ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ตฌ์ฑ์ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น
Lino๋ ์๋ํ๋ฅผ ๋ช ๋ น ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค. ๊ฐ ๊ทธ๋ฃน์ solution ์์ฑ, ์๋น์ค ์ถ๊ฐ, ๋๋ฉ์ธ ๋ชจ๋ธ๋ง, APIs ๊ณต๊ฐ, ํ์ด์ง ์์ฑ, ํตํฉ ๊ตฌ์ฑ, migrations ์ ์ด, ์ํฐํฉํธ ๋ฒ์ ๊ด๋ฆฌ, builds ์ค๋น์ ๊ฐ์ ์ํคํ ์ฒ ์๋๋ฅผ ๋ํ๋ ๋๋ค.
ํ์ฌ ๋จธ์ ์์ ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์ฐธ์กฐ๋ ์ค์น๋ CLI ์์ฒด์ ๋์๋ง์
๋๋ค. lino --help๋ฅผ ์ฌ์ฉํด ์ ์ฒด ๋ช
๋ น ํธ๋ฆฌ๋ฅผ ํ์ธํ๊ณ , ์ด๋ค ๊ทธ๋ฃน์์๋ --help๋ฅผ ์ฌ์ฉํด ์ต์
, aliases, ํ์ ๋งค๊ฐ๋ณ์ ๋ฐ ์์ ๋ฅผ ํ์ธํ์ธ์.
Lino๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๋ฏ๋ก ๋ฒ์ ์ฌ์ด์ ์๋ก์ด ๋ช ๋ น๊ณผ ์ต์ ์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์๋ ์ฌ์ฉ ์ง์นจ์ผ๋ก ๋ณด๊ณ , ์ํฌํ๋ก๋ฅผ ์๋ํํ๊ฑฐ๋ ํ์์ ๊ต์กํ ๋๋ ํญ์ ํฐ๋ฏธ๋์์ ์ ํํ ๊ตฌ๋ฌธ์ ํ์ธํ์ธ์.
์ฌ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น ๋ชฉ๋ก์ ํ์ํ๋ ค๋ฉด ๋ฃจํธ ๋ช ๋ น์ ์คํํ๊ฑฐ๋ ๋ช ์์ ์ผ๋ก ๋์๋ง์ ์์ฒญํ ์ ์์ต๋๋ค.
lino lino --help
lino --help lino project --help lino database migrations --help lino integration operation --help
์ด๋ค ๊ทธ๋ฃน์ ํ์ ๋ช
๋ น๊ณผ ์ต์
์ด๋ ํ์ธํ๋ ค๋ฉด ๋ช
๋ น ์ด๋ฆ๋ง ์ฌ์ฉํ๊ฑฐ๋ --help์ ํจ๊ป ์ฌ์ฉํ์ธ์.
lino <command> lino <command> --help
์๋ฅผ ๋ค์ด project ๊ทธ๋ฃน์ ์กฐํํ๋ฉด CLI๋ ๊ทธ๋ฃน ์ค๋ช
, ์ผ๋ฐ์ ์ธ ์์ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํ์ ๋ช
๋ น์ ํ์ํฉ๋๋ค.
lino project --help
์ค๋ช
:
Lino ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์์ :
lino project new --name MyProject
lino project list
๋ช
๋ น:
new ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.
list ์์ฑ๋ ํ๋ก์ ํธ๋ฅผ ๋์ดํฉ๋๋ค.
delete ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.์์ ๋ฅผ ์ฝ์ ๋ <...> ์์ ๊ฐ์ ํ๋ก์ ํธ์ ์ค์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ ์ธ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด <ProjectName>์ solution ์ด๋ฆ์ผ๋ก, <ServiceName>์ ์๋น์ค ์ด๋ฆ์ผ๋ก, <culture>๋ pt ๋๋ en ๊ฐ์ ์ง์ culture๋ก ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
์ฃผ์ ๋ช ๋ น ๊ทธ๋ฃน:
| ๊ทธ๋ฃน | ์ฃผ์ ๋ช ๋ น | ์ฉ๋ |
|---|---|---|
project |
new, list, delete |
Lino ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
service |
new, list, delete |
backend ์๋น์ค๋ฅผ ์ถ๊ฐํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
module |
new, list, delete |
๋ชจ๋์ ์๋น์ค ์์ ๋ชจ๋์ ์ถ๊ฐํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
entity |
new, edit, list, delete |
๋๋ฉ์ธ ์ํฐํฐ๋ฅผ ์์ฑํ๊ณ , ํธ์งํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
shadow-entity (shadow) |
new |
๋ค๋ฅธ ๋ชจ๋ ๋๋ ์๋น์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ด๋ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ผ๋ก ์์ฑํฉ๋๋ค. |
enumeration (enum) |
new, edit, list, delete |
๋๋ฉ์ธ ์ด๊ฑฐํ์ ์์ฑํ๊ณ , ํธ์งํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
value-object (vo) |
new, edit, list, delete |
Value Object๋ฅผ ์์ฑํ๊ณ , ํธ์งํ๊ณ , ๋์ดํ๊ณ , ์ญ์ ํฉ๋๋ค. |
property (prop) |
delete |
๋๋ฉ์ธ ์ํฐํฐ์ ์์ฑ์ ์ญ์ ํฉ๋๋ค. |
command |
new, list |
์ผ๋ฐ์ ์ผ๋ก ์ํ ๋ณ๊ฒฝ, ํธ๋์ญ์ ๊ท์น, ์๋ ๊ฒ์ฆ๊ณผ ๊ด๋ จ๋ ์ฐ๊ธฐ ์ ์ค์ผ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. |
query |
new, list |
์ผ๋ฐ์ ์ผ๋ก ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์กฐํ, ํ๋ก์ ์ , ๋ฐ์ดํฐ ๋ฐํ์ ์ด์ ์ ๋ ์ฝ๊ธฐ ์ ์ค์ผ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. |
api |
new, list |
์ ์ค์ผ์ด์ค์ฉ API endpoints๋ฅผ ์์ฑํ๊ณ ๋์ดํฉ๋๋ค. |
web-app (webapp) |
new |
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐํฉ๋๋ค. |
page |
new, edit, list |
Blazor ํ์ด์ง๋ฅผ ์์ฑํ๊ณ , ํธ์งํ๊ณ , ๋์ดํฉ๋๋ค. |
event |
new, edit, list |
๋๋ฉ์ธ ์ด๋ฒคํธ ๋๋ ํตํฉ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. |
event-handler (handler) |
new, list |
์ด๋ฒคํธ handlers๋ฅผ ์์ฑํ๊ณ ๋์ดํฉ๋๋ค. |
error-definition (error) |
new, list |
ํ์คํ๋ ์ค๋ฅ ์ ์๋ฅผ ์์ฑํฉ๋๋ค. |
integration |
new, list, resource (new/list), operation (new/list), consume |
ํตํฉ, resources, ์์ ๋ฐ ์๋น์๋ฅผ ๋ชจ๋ธ๋งํฉ๋๋ค. |
feature |
background-job add, auth add, tenant add |
background job, ์ธ์ฆ, tenant ๊ธฐ๋ฅ ๊ฐ์ ํก๋จ ๊ด์ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. |
database migrations |
add, remove, list, apply, revert |
Entity Framework Core migrations๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. |
secret |
list, set, remove, clear |
ํ๋ก์ ํธ์ ๋ก์ปฌ secrets๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. |
plan |
add |
AI ์ง์ ์คํ ๊ณํ์ ๋ฑ๋กํฉ๋๋ค. |
version |
show, list, bump |
์๋น์ค์ web apps์ ๋ฒ์ ์ ํ์ธํ๊ณ ์ฆ๊ฐ์ํต๋๋ค. |
build |
- | ์ํฐํฉํธ์ container images๋ฅผ ์์ฑํฉ๋๋ค. |
user |
register |
Lino์ ์ธ์ฆ๋ ๊ธฐ๋ฅ์ ์ ๊ทผํ ์ฌ์ฉ์๋ฅผ ๋ฑ๋กํฉ๋๋ค. |
auth |
login, logout |
์ธ์ฆ๊ณผ ๋ก๊ทธ์์์ ํฌํจํด CLI์ ๋ก์ปฌ ์ธ์ ์ ๊ด๋ฆฌํฉ๋๋ค. |
preferences |
culture set |
๋ํํ ๋ช ๋ น์ ํ์๋๋ ์ธ์ด ๊ฐ์ CLI ๋ก์ปฌ ๊ธฐ๋ณธ ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค. |
์ผ๋ถ ๋ช ๋ น์ ํธ์๋ฅผ ์ํด ๊ดํธ ์์ ์งง์ alias๋ฅผ ํ์ํฉ๋๋ค. ์๋ ์ด๋ฆ์ ์ฝ๊ธฐ, ๋ฌธ์ํ, ๊ต์ก, ์๋ํ ๋ฐ ์ง์์ ์ฃผ์ ์ฐธ์กฐ๋ก ์ ์ง๋ฉ๋๋ค.
๋น ๋ฅธ ์์
๋ค์ ๋ช ๋ น์ผ๋ก ์ง์์ ์ธ ๋ฐ์ ์ ๋๋น๋ ํ๋์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ .NET ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๋ง๋์ธ์:
lino project new --name <ProjectName>
<ProjectName>์ solution์ ์ค์ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ์ธ์. ์๋ฅผ ๋ค์ด MyApp์ด๋ผ๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ ค๋ฉด lino project new --name MyApp์ ์คํํฉ๋๋ค.
์ด ๋ช ๋ น์ ๋๋ฉ์ธ, ์ ํ๋ฆฌ์ผ์ด์ , ์ธํ๋ผ, ์์์ฑ, API, ์ค์ผ์คํธ๋ ์ด์ ๋ฐ ํ ์คํธ๋ฅผ ๋ช ํํ ๋ถ๋ฆฌํ .NET solution์ ์์ฑํฉ๋๋ค. ์ด๊ธฐ ๊ตฌ์กฐ๋ ์ฒซ commit๋ถํฐ ์ํคํ ์ฒ ๊ฒฐ์ ์ ๋์ ๋ณด์ด๊ฒ ์ ์งํ๊ณ , ๋น์ฆ๋์ค ๊ท์น, ๋ฐ์ดํฐ ์ ๊ทผ, endpoints ๋ฐ ์ด์ ์ธ๋ถ ์ฌํญ์ด ๊ฐ์ ์์น์ ์์ด์ง ์๋๋ก ๋์ต๋๋ค.
์๊ฐ์ ์ผ๋ก MyApp์ด๋ผ๋ ์ด๊ธฐ solution์ ๋ค์๊ณผ ๊ฐ์ด ์ดํดํ ์ ์์ต๋๋ค:
MyApp/ โโโ MyApp.slnx โโโ src/ โ โโโ Aspire/ โ โ โโโ AppHost/ โ โ โ โโโ MyApp.AppHost.csproj โ โ โโโ ServiceDefaults/ โ โ โโโ MyApp.ServiceDefaults.csproj โ โโโ Services/ โ โโโ Shared/ โ โโโ Api/ โ โ โโโ MyApp.Shared.Api.csproj โ โโโ Application/ โ โ โโโ MyApp.Shared.Application.csproj โ โโโ Domain/ โ โ โโโ MyApp.Shared.Domain.csproj โ โโโ Infrastructure/ โ โ โโโ MyApp.Shared.Infrastructure.csproj โ โโโ Infrastructure.Persistence/ โ โโโ MyApp.Shared.Infrastructure.Persistence.csproj โโโ tests/
์ด ํธ๋ฆฌ๋ ์ฌ์ฉ์ ํ๋ก์ ํธ์ ์์ฑ๋๋ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ๋ ๊ต์ก์ฉ ์์์ ๋๋ค. solution์ด ์ฒ์๋ถํฐ ๋ก์ปฌ ์คํ, ์๋น์ค, ๊ธฐ์ ๊ณ์ธต ๋ฐ ํ ์คํธ๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฆฌํ๋์ง ๋ณด์ฌ ์ค๋๋ค.
์ด๊ธฐ ํ๋ก์ ํธ๊ฐ ์ ๊ณตํ๋ ๊ฒ
Lino๊ฐ ๋ง๋ ์ด๊ธฐ solution์ ์ฒ์๋ถํฐ ๊ธฐ์ ์ฑ ์๋ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. CLI๋ ๋น ํ๋ก์ ํธ๋ง ์ ๊ณตํ๋ ๋์ , ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ๊ณ์ธต๊ณผ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ถ ๊ธฐ๋ฐ์ ์ค๋นํฉ๋๋ค.
| ์์ญ | ์ฑ ์ |
|---|---|
| Domain | ์ํฐํฐ, Value Objects, enumerations, ๋๋ฉ์ธ ์ด๋ฒคํธ, ๋ฆฌํฌ์งํ ๋ฆฌ ๊ณ์ฝ ๋ฐ ๋น์ฆ๋์ค์ ์ํ ๊ท์น์ ๋ชจ์๋๋ค. |
| Application | use cases, commands, queries, ๊ฒ์ฆ, handlers ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ ฅ/์ถ๋ ฅ ๊ณ์ฝ์ ์ค์ผ์คํธ๋ ์ด์ ํฉ๋๋ค. |
| Infrastructure | ๋ณด์กฐ ์๋น์ค, ํตํฉ, providers, ์ธ์ฆ, ๋ฉ์์ง ๋ฐ ํก๋จ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ธ๋ถ ์ธ๋ถ ์ฌํญ์ ๊ฒฉ๋ฆฌํฉ๋๋ค. |
| Persistence | mappings, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์คํธ, migrations, ๊ตฌ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ unit of work๋ฅผ ์ค์ํํฉ๋๋ค. |
| Api | ์ธ๋ถ ์๋น์๋ฅผ ์ํด endpoints, HTTP ๊ณ์ฝ, ํํฐ, ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ์ ๋ ฅ ๋ฌธ์๋ฅผ ๋ ธ์ถํฉ๋๋ค. |
| ์ค์ผ์คํธ๋ ์ด์ | ๊ฐ๋ฐ ์ค ์ปดํฌ๋ํธ์ ๋ก์ปฌ ์คํ, ๊ธฐ๋ณธ observability ๋ฐ ์๋น์ค ๊ฐ ํตํฉ์ ์ค๋นํฉ๋๋ค. |
| Tests | ์ฑ ์๋ณ๋ก ํ ์คํธ๋ฅผ ๊ตฌ์ฑํ์ฌ ๋๋ฉ์ธ, ์ ํ๋ฆฌ์ผ์ด์ , APIs ๋ฐ ํตํฉ์ ์ ์ง์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๊ฒ ํฉ๋๋ค. |
<ProjectName>์ ์
๋ ฅํ ์ด๋ฆ์ solution์ ๊ธฐ์ ์ ์ ์ฒด์ฑ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค. namespaces, assemblies, ์ํฐํฉํธ, ๊ตฌ์ฑ ๋ฐ ์ปดํฌ๋ํธ ๊ฐ ์ฐธ์กฐ์ ์ฌ์ฉ๋๋ฏ๋ก ์งง๊ณ ์์ ์ ์ด๋ฉฐ ๋ํ์ ์ธ ์ด๋ฆ์ ์ ํํ์ธ์.
์ฃผ์ ์ด์ :
- ๋ช ์์ ์ํคํ ์ฒ: ๋น์ฆ๋์ค ๊ท์น, use cases, ์ธํ๋ผ, ์์์ฑ ๋ฐ ์ ๋ ฅ ๊ณ์ฝ์ ๋ถ๋ฆฌํฉ๋๋ค.
- ๋ชจ๋ํ ์งํ: ์ปจํ ์คํธ๊ฐ ์๊ตฌํ ๋ ์ ํต์ ์ธ ์๋น์ค, ๋ชจ๋ํ ๋ชจ๋๋ฆฌ์ค, ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ SaaS ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋น๋ ๊ธฐ๋ฐ์ ๋๋ค.
- ์ผ๊ด๋ ๊ธฐ์ ํจํด: DDD, Clean Architecture, CQRS, ์ด๋ฒคํธ, ํตํฉ, migrations, ํ ์คํธ ๋ฐ observability๋ฅผ ์ง์ํฉ๋๋ค.
- ๊ธฐ๊ณ์ ์์ ๊ฐ์: ๋ฐ๋ณต ๊ตฌ์กฐ๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฐ์๊ฐ ๋๋ฉ์ธ, ๊ท์น, ๊ณ์ฝ ๋ฐ ์ ํ ๊ฒฐ์ ์ ์๋์ง๋ฅผ ์ง์คํ ์ ์๊ฒ ํฉ๋๋ค.
- ๋ ์์ธก ๊ฐ๋ฅํ ์ฝ๋: ๋ช ๋ช ๊ท์น, ํด๋ ๊ตฌ์ฑ ๋ฐ ์ฑ ์ ๊ตฌ๋ถ์ด ํ์ ๊ฐ์ ๋ชจํธ์ฑ์ ์ค์ ๋๋ค.
Lino๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๋น ํด๋๋ generic template์์ ์์ํ์ง ์์ต๋๋ค. ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ ์ํด ์ค๊ณ๋ opinionated ๊ธฐ๋ฐ์์ ์์ํ๋ฉฐ, ์์ฑ๋๋ ๊ฐ ์ํฐํฉํธ๋ ๋ช ํํ ๊ธฐ์ ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์ ์ง์ ์ผ๋ก ๋ฐ์ ํ ์ ์์ต๋๋ค.
