Lino 시작하기
Linoλ νλμ μ΄κ³ νμ₯ κ°λ₯νλ©° κ²¬κ³ ν .NET μ ν리μΌμ΄μ μμ±μ κ°μννκΈ° μν΄ κ°λ°λ λͺ λ Ήμ€ λꡬμ λλ€. λμ μμ°μ±κ³Ό κ³ κΈ μν€ν μ² νμ€μ μΆκ΅¬νλ κ°λ°μλ₯Ό λμμΌλ‘ νλ©°, Linoλ λ 립ν λ§μ΄ν¬λ‘μλΉμ€λΆν° λͺ¨λν λͺ¨λ리μκΉμ§ μμ ν νλ‘μ νΈλ₯Ό μμ±νκ³ .NET μνκ³μ λͺ¨λ² μ¬λ‘λ₯Ό ν΅ν©ν©λλ€.
νμ 쑰건
Linoλ₯Ό μ€μΉνκΈ° μ μ νκ²½μ΄ μ λλ‘ μ€λΉλμλμ§ νμΈνμΈμ:
- β .NET 9.0 SDK λλ μ΅μ λ²μ μ΄ μ€μΉλμ΄ μμ΅λλ€. .NET λ€μ΄λ‘λ
- β
.NET CLIκ° ν°λ―Έλμμ μ¬μ©ν μ μμ΅λλ€.
dotnet --version
λͺ λ ΉμΌλ‘ νμΈνμΈμ. - β λ²μ κ΄λ¦¬λ₯Ό μν Gitμ΄ μ€μΉλμ΄ μμ΅λλ€. Git λ€μ΄λ‘λ
- β
λ§μ΄κ·Έλ μ΄μ
μ μ§μνλ Entity Framework Core CLIκ° μ€μΉλμ΄ μμ΅λλ€:
dotnet tool install --global dotnet-ef
- β Docker Desktop λλ Podmanκ³Ό κ°μ OCI νΈν 컨ν μ΄λ νκ²½μ΄ μ€λΉλμ΄ μμ΅λλ€.
νλ«νΌ νΈνμ±
Linoλ ν¬λ‘μ€ νλ«νΌμ΄λ©° μ£Όμ μ΄μ 체μ μμ μ¬μ©ν μ μμ΅λλ€:
- β Windows
- β macOS
- β Linux
μ€μΉ
Linoλ .NET κΈλ‘λ² λκ΅¬λ‘ λ°°ν¬λ©λλ€. κ³μνκΈ° μ μ .NET 9 SDK μ΄μμ΄ μ€μΉλμ΄ μλμ§ νμΈνμμμ€.
μ΅μ λ²μ μ μ€μΉνλ €λ©΄ λ€μμ μ€ννμμμ€:
dotnet tool install --global Tolitech.Lino --version 1.0.0-alpha.10
μ€μΉ ν, λ€μ λͺ λ Ήμ΄λ‘ 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
λλ λ€μ λͺ λ Ήμ μ¬μ©νμ¬ λνν λͺ©λ‘μμ μΈμ΄λ₯Ό μ νν μ μμ΅λλ€:
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λ μ§μμ μΌλ‘ λ°μ νκ³ μμΌλ©°, κ³ νμ§ .NET νλ‘μ νΈμ μꡬ μ¬νμ μΆ©μ‘±νκΈ° μν΄ μλ‘μ΄ λͺ λ Ήμ΄μ κΈ°λ₯μ μ§μμ μΌλ‘ μΆκ°νκ³ μμ΅λλ€.
μ¬μ© κ°λ₯ν λͺ λ Ήμ΄ μ 체 λͺ©λ‘μ νμνλ €λ©΄ ν°λ―Έλμ λ€μμ μ λ ₯νμΈμ:
lino
λλ, λ€μμ μ λ ₯ν μλ μμ΅λλ€:
lino --help
ν°λ―Έλμλ λ€μ μμμ²λΌ μ£Όμ λͺ λ Ήμ΄ λͺ©λ‘κ³Ό κ°κ°μ κ°λ¨ν μ€λͺ μ΄ νμλ©λλ€:
COMMANDS: project νλ‘μ νΈλ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. service μλΉμ€λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. module λͺ¨λμ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. entity μν°ν°λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. enumeration μ΄κ±°νμ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. value-object κ° κ°μ²΄λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. query 쿼리λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. command λͺ λ Ήμ΄λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. api APIλ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. page νμ΄μ§λ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. database λ°μ΄ν°λ² μ΄μ€ λ§μ΄κ·Έλ μ΄μ μ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. feature νλ‘μ νΈ κΈ°λ₯μ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. user μ¬μ©μλ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. auth μ¬μ©μ μΈμ¦μ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. preferences μ¬μ©μ νκ²½μ€μ μ κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€.
νΉμ λͺ λ Ήμ΄μ νμ λͺ λ Ήμ΄ λ° μ΅μ μ νμΈνλ €λ©΄ λ€μμ μ¬μ©νμΈμ:
lino command
λλ:
lino command --help
μλ₯Ό λ€μ΄ project
λͺ
λ Ήμ΄λ₯Ό νμΈνλ©΄:
lino project --help
λ€μκ³Ό κ°μ΄ νμλ©λλ€:
DESCRIPTION: νλ‘μ νΈλ₯Ό κ΄λ¦¬νλ λͺ λ Ήμ΄μ λλ€. EXAMPLES: lino project new --name MyProject lino project list COMMANDS: new μ νλ‘μ νΈλ₯Ό μμ±νλ λͺ λ Ήμ΄μ λλ€. list μμ±λ νλ‘μ νΈ λͺ©λ‘μ νμνλ λͺ λ Ήμ΄μ λλ€.
λ€μ μΉμ μμλ Linoλ₯Ό μ¬μ©νμ¬ μλ‘μ΄ νλ‘μ νΈλ₯Ό λΉ λ₯΄κ² μμ±νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€.
λΉ λ₯Έ μμ
λ€μ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ νλμ μ΄κ³ νμ₯ κ°λ₯ν .NET μ ν리μΌμ΄μ μ μ μνκ² λ§λ€ μ μμ΅λλ€:
lino project new --name MyApp
μ΄ λͺ λ Ήμ΄λ .NET μ루μ μ μμ±νλ©°, κ³μΈ΅ κ° μ± μ λΆλ¦¬κ° λͺ ννκ² μ΄λ£¨μ΄μ Έ μμ΄ κ°λ ₯νκ³ νμ₯ κ°λ₯ν κΈ°μ μ ν리μΌμ΄μ μ μ΄μμ μΈ κΈ°λ°μ΄ λ©λλ€.
MyApp/ βββ MyApp.sln βββ 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/
μ£Όμ μ΄μ :
- β νλ μν€ν μ²μ λͺ¨λ² μ¬λ‘μ λ§μΆ κ³μΈ΅ ꡬ쑰.
- π§ λ§μ΄ν¬λ‘μλΉμ€, λͺ¨λνλ λͺ¨λ리μ λλ μ ν΅μ μΈ λ°©μμΌλ‘ νμ₯ κ°λ₯.
- π μΊμ, λ©μμ§, μμ μμ½κ³Ό κ°μ μ¦μ μ¬μ© κ°λ₯ν κΈ°λ₯λ€.
- π§± λλ©μΈ μ£Όλ μ€κ³ (DDD), μ΄λ²€νΈ κΈ°λ° μν€ν μ² (EDA) λ° SOLID μμΉμ μ μ©ν μ μλ κ²¬κ³ ν κΈ°λ°.
- β¨ μ²κ²°νκ³ μκ²¬μ΄ μ μλ μ½λλ‘, μ§μ κ°λ₯ν κ°λ°μ κ°μννλ λ° μ΄μμ .
Linoλ₯Ό μ¬μ©νλ©΄ λμ μμ°μ±, νμν μν€ν μ² λ° μ ν리μΌμ΄μ μ μ±μ₯μ λ§μΆ° νμ₯ κ°λ₯ν μ μ°μ±μ κ²°ν©νμ¬ κ³ νμ§ .NET νλ‘μ νΈλ₯Ό λΉ λ₯΄κ² μμ±ν μ μμ΅λλ€.