μΉμμ€, μΌλ¬μ€νΈ 곡μ μλΉμ€
μΉμμ€ μκ°λ₯Ό μν΄ μμ€ μκ° μ μ© μΉμλν°λ₯Ό μ§μνλ μμ€, κ·Έλ¦Ό 곡μ μλΉμ€ μ λλ€. μΌλ°μ μΈ ν μ€νΈ μλν°λ μΉμμ€ μκ°λ€μ΄ μνλ νΉλ³ν ν μ€νΈ κΈ°λ₯μ μ 곡νμ§ μλ κ²½μ°κ° λ§μ΅λλ€. Novel Cloudμμλ λ¨μΆν€ λ° ν μ€νΈ ν¨κ³Όλ₯Ό μ§μνλ μμ€ μκ° μ μ© μΉ μλν°λ₯Ό μ 곡νμ¬ μμ€μ λ μ°κΈ° νΈλ¦¬νκ² λ§λ€μ΄μ€λ€λ μ°¨λ³μ μ΄ μμ΅λλ€.
μμ€ μκ°λ€μκ² μ κ·Όμ±μ΄ μ©μ΄ν μμ€ μμ± λꡬλ₯Ό μ 곡νμ¬ κ·Έλ€μ΄ λμ± νΈλ¦¬νκ² μμ€μ μΈ μ μλλ‘ νλ κ²μ λλ€. νμ¬ μΉμμ€ μκ°λ€μ μΌλ°μ μΈ ν μ€νΈ μλν°λ₯Ό μ¬μ©νμ¬ μμ€μ μμ±ν΄μΌ νλλ°, μ΄λ μνλ κΈ°λ₯μ μ 곡νμ§ μκ±°λ μ¬μ©νκΈ° λΆνΈν κ²½μ°κ° λ§μ΅λλ€.
Novel Cloudλ μμ€ μκ° μ μ© μΉ μλν°λ₯Ό μ 곡ν¨μΌλ‘μ¨ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμμ΅λλ€. μΉ μλν°λ λ¨μΆν€ λ° ν μ€νΈ ν¨κ³Όλ₯Ό μ§μνμ¬ μμ€ μκ°λ€μ΄ λ³΄λ€ νΈλ¦¬νκ³ ν¨κ³Όμ μΌλ‘ μμ ν μ μκ² λμμ€λλ€.
μ΄λ₯Ό ν΅ν΄ μμ€ μκ°λ€μ λμ± μ½κ³ νΈλ¦¬νκ² μμ€μ μμ±νκ³ , μνμ 곡μ νλ©° λ€λ₯Έ μκ°λ€κ³Ό μν΅νλ©° μ±μ₯ν μ μλ νκ²½μ μ 곡λ°κ² λ©λλ€. Novel Cloudλ₯Ό ν΅ν΄ μμ€ μκ°λ€μ μ°½μ νλμ μ§μνκ³ κ·Έλ€μ μνλ€μ΄ λμ± λ§μ λ μλ€μκ² μ λ¬λ μ μλλ‘ νλ κ²μ΄ νλ‘μ νΈμ λͺ©μ μ λλ€.
- μ£Όμ κΈ°λ₯ λ° κ΅¬μ± μμλ€μ λν μ€λͺ
- λ©μΈ νμ΄μ§μμ μΈκΈ° λ§μ νκ·Έ, μνμ μ‘°νν μ μλ€.
- μμΈ μ‘°ν νμ΄μ§
- μ μ νλ‘νμ μ‘°νν μ μλ€.
- μ μ κ° μ΄ κ²μλ¬Όμ μ‘°νν μ μκ³ , μ΄ λͺκ°μ κ²μκΈμ μΌλμ§ μ μ μλ€.
- μ μ λ₯Ό νλ‘μ°λ₯Ό ν μ μλ€.
- μ λ‘λλ₯Ό ν μ μλ€.
- μνμ μ νμ μ ννκ³ , μΈλ€μΌκ³Ό λ³Έλ¬Έμ μ΄λ―Έμ§λ₯Ό μ λ‘λν μ μλ€.
- λ΄μ©μ λ°λ‘ μμ±ν μ μκ³ , μλμΌλ‘ μλν°μ μ΄ κΈμ΄ λΆλ¬μμ§λ€.
- κΈμ μμ±ν μ μκ³ , μΆκ°μ μΌλ‘ κΈμ νΉμν¨κ³Ό, ν¬κΈ° μ‘°μ λ±μ ν μ μλ€.
- λ¨μΆμ΄λ₯Ό ctrl + (μ«μ)λ₯Ό ν΅ν΄ μμ±ν μ μλ€.
- μ λ ₯μ λ©μΆ ν 3μ΄κ° μ§λλ©΄ μλμΌλ‘ μ μ₯λλ€. (Debounce μ¬μ©)
- λ¨μΆμ΄ μΆκ°, μμ λ₯Ό ν μ μλ€. (λ¨μΆμ΄ μμλ₯Ό λλκ·Έ μ€ λλ‘μΌλ‘ λ³κ²½ν μ μλ€).
- μ νλ‘μ νΈλ₯Ό μ§νν¨μΌλ‘μ¨, λΉμ£Όλ₯ μΉμμ€ μκ°λ€μκ² μμ€ μμ±μ μν μ μ© μλν°λ₯Ό μ 곡νμ¬ κ·Έλ€μ μνμ λμ± μ½κ² μμ±νκ³ κ³΅μ ν μ μκ² λλ€. μ΄λ₯Ό ν΅ν΄ μΉμμ€ μκ°λ€μ΄ λμ± μλ‘μ΄ μνμ μ°½μν μ μκ³ , μ΄λ₯Ό ν΅ν΄ μΉμμ€ μμ₯μ΄ νμ±νλ κ²μΌλ‘ μμλλ€. λν, κ·Έλ¦Ό 곡μ κΈ°λ₯μ ν΅ν΄ κ·Έλ¦Ό μκ°λ€λ μμ μ μνμ 곡μ ν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ μ°½μ νλμ λ°μ μ΄ μ΄λ£¨μ΄μ§ κ²μ΄λ€.
- μμ¬μν΅ λ°©λ²
- μ¬λμ ν΅ν μ€μκ° μν΅ λ° μ€λ₯ μ 보
- μΌμ κ΄λ¦¬
- μ§λΌλ₯Ό μ¬μ©νμ¬ μ 무λΆλ΄, κΈ°ν μμ± ν κΈ°ν λ΄ μ 무 μ²λ¦¬
- WBS https://docs.google.com/spreadsheets/d/1Kkv5RFFDZAX2C_jnPC1acDktHeMYVty1hu7AvqqfO4M/edit#gid=0
- κΈ°λ₯μ μμ
- κ°λ°κ³νμ
- μ°μΆλ¬Ό λ³΄κ³ μ
- μμ€μ½λ(μΉ)
- νλ‘μ νΈ κ°μμ κΈ°μ
ν μ£Όμ κΈ°λ₯ λ° κ΅¬μ± μμλ€μ λν μμΈ μ€λͺ
μ§ν
- λ©μΈ νμ΄μ§:
- μΈκΈ° μλ νκ·Έμ μνμ μ‘°νν μ μλ μΉμ μ μ 곡ν©λλ€.
- μ¬μ©μλ€μ΄ μλ‘μ΄ μνμ λ°κ²¬νκ³ νμν μ μλλ‘ ν©λλ€.
- μν μμΈ μ‘°ν νμ΄μ§:
- μνμ μμΈ μ 보λ₯Ό 보μ¬μ€λλ€. μ΄ μ 보μλ μν μ λͺ©, μκ°, μ₯λ₯΄, μ€λͺ , μΆνμΌ λ±μ΄ ν¬ν¨λ©λλ€.
- μνμ λν 리뷰 λ° νμ μ νμΈν μ μμ΅λλ€.
- μνκ³Ό κ΄λ ¨λ νκ·Έλ₯Ό νμνμ¬ μ μ¬ν μνμ μ°Ύμ μ μλλ‘ ν©λλ€.
- μ μ νλ‘ν:
- μ¬μ©μ νλ‘ν νμ΄μ§μμλ ν΄λΉ μ¬μ©μκ° μμ±ν κ²μλ¬Όμ λͺ©λ‘κ³Ό μ΄ κ²μκΈ μλ₯Ό νμΈν μ μμ΅λλ€.
- μ¬μ©μ μ 보, νλ‘ν μ¬μ§ λ±μ κ°μΈ μ 보λ₯Ό νμν©λλ€.
- νλ‘μ° κΈ°λ₯:
- λ€λ₯Έ μ¬μ©μλ₯Ό νλ‘μ°ν μ μμ΅λλ€. νλ‘μ°ν μ¬μ©μμ μν λ° νλμ ꡬλ ν μ μμ΅λλ€.
- νλ‘μ°ν μ¬μ©μμ μ λ°μ΄νΈμ μμμ μλ¦ΌμΌλ‘ λ°μ μ μμ΅λλ€.
- μν μ
λ‘λ κΈ°λ₯:
- μ¬μ©μλ μμ μ μνμ μ λ‘λν μ μμ΅λλ€. μ λ‘λ μμλ μνμ μ ν, μΈλ€μΌ μ΄λ―Έμ§, λ³Έλ¬Έ μ΄λ―Έμ§ λ±μ μ 곡ν©λλ€.
- μ λ‘λν μνμ λ©μΈ νμ΄μ§μμ μ‘°ν κ°λ₯νλ©°, λ€λ₯Έ μ¬μ©μκ° ν΄λΉ μνμ λν 리뷰μ νμ μ λ¨κΈΈ μ μμ΅λλ€.
- μΉ μλν°:
- μ¬μ©μλ μΉμμμ μνμ μμ±ν μ μλ μ μ© μλν°λ₯Ό μ¬μ©ν μ μμ΅λλ€.
- μλν°λ νΉμ ν¨κ³Ό, ν¬κΈ° μ‘°μ , μμ μ§μ λ±μ κΈ°λ₯μ μ 곡νμ¬ μνμ λ€μνκ² ννν μ μμ΅λλ€.
- μ λ ₯μ΄ λ©μΆλ©΄ μλμΌλ‘ μ μ₯λλ―λ‘, μκ°λ κΈμ μμ΄λ²λ¦¬μ§ μκ³ μμ νκ² μμ ν μ μμ΅λλ€.
- λ¨μΆμ΄ κ΄λ¦¬:
- μ¬μ©μλ μλν°μμ μμ£Ό μ¬μ©νλ ν μ€νΈλ μμμ λ¨μΆμ΄λ‘ μ€μ ν μ μμ΅λλ€.
- λ¨μΆμ΄λ₯Ό μΆκ°νκ±°λ μμ νμ¬ μν μμ± μμ νΈμμ±μ λμΌ μ μμ΅λλ€.
- λ©μΈ νμ΄μ§:
- μ€μ μλΉμ€ μ 곡 κ΄λ ¨
- μλΉμ€ λ°°ν¬: νλ‘μ νΈμ κ°λ° λ¨κ³κ° μλ£λ ν, λΌμ¦λ² 리νμ΄ μλ²λ‘ μ€μ λ‘ μλΉμ€λ₯Ό λ°°ν¬νμμ΅λλ€. μλΉμ€λ₯Ό μ¬μ©ν μ μλ λλ©μΈμ μ 곡νμκ³ , μ¬μ©μλ€μ΄ μ μνμ¬ μλΉμ€λ₯Ό μ΄μ©ν μ μκ² λμμ΅λλ€.
- μλ² κ΄λ¦¬: μ€μ μλΉμ€λ₯Ό μ΄μνκΈ° μν΄ μλ²λ₯Ό ꡬμΆνκ³ κ΄λ¦¬νμμ΅λλ€. μλ²μ μμ μ±κ³Ό μ±λ₯μ μ μ§νκΈ° μν΄ νμν μ‘°μΉλ₯Ό μ·¨νμκ³ , μλΉμ€μ λν λͺ¨λν°λ§κ³Ό λ‘κ·Έ λΆμμ ν΅ν΄ λ¬Έμ κ° λ°μν κ²½μ° μ μνκ² λμνμμ΅λλ€.
- μ¬μ©μ κ΄λ¦¬: μλΉμ€μ νμκ°μ κΈ°λ₯μ μ 곡νμ¬ μ¬μ©μλ€μ μ 보λ₯Ό κ΄λ¦¬νμμ΅λλ€. Spring Securityλ₯Ό ν΅ν΄ μ¬μ©μμ μΈμ¦κ³Ό κΆν κ΄λ¦¬λ₯Ό ν΅ν΄ 보μκ³Ό κ°μΈμ 보 보νΈλ₯Ό κ°ννμκ³ , μ¬μ©μλ€μ μμ²κ³Ό λ¬Έμμ λν μ²λ¦¬λ₯Ό μ μ ν μννμμ΅λλ€.
- μ μ§λ³΄μ λ° μ λ°μ΄νΈ: μλΉμ€λ₯Ό μ§μμ μΌλ‘ κ΄λ¦¬νκ³ κ°μ νκΈ° μν΄ μ μ§λ³΄μμ μ λ°μ΄νΈ μμ μ μννμμ΅λλ€. μ¬μ©μλ€λ‘λΆν° μ 보λ λ²κ·Έλ λ¬Έμ μ μ ν΄κ²°νκ³ , μλ‘μ΄ κΈ°λ₯μ΄λ κ°μ μ¬νμ μΆκ°νμ¬ μ¬μ©μλ€μ λ§μ‘±λλ₯Ό λμμ΅λλ€.
- μ±λ₯ μ΅μ ν: μλΉμ€μ μ±λ₯μ μ΅μ ννκΈ° μν΄ μ¬λ¬ κ°μ§ λ°©λ²μ μλνμμ΅λλ€. λ°μ΄ν°λ² μ΄μ€ 쿼리μ μ΅μ ν μλ² μ¬μ΄λ λ λλ§ λ±μ ν΅ν΄ μλΉμ€μ μλ΅ μλμ νμ₯μ±μ ν₯μμμΌ°μ΅λλ€.
- νλ‘μ νΈλ₯Ό ν΅ν΄ μ»μ λ΄μ© & μ견 β νλ‘μ νΈ μν νκΈ°λ‘ μ 리 (κ°μΈ)
- Next.js / TypeScript
- Style: styled-components
- Editor: contentEditable WYSIWYG μλν°
- Test: jest, playwright
- Etc: react-hotkeys , react-beautiful-dnd
- Kotiln / Spring / JPA
- Authorization : Spring Security
- DOCS : Swagger
- DB : MySql, Redis
- AWS: EC2 t2.small, S3, CloudFront
- Test: junit, mockk