π λ°°μ΄ κ²
μΌνλͺ° μΉ νμ νλ‘μ νΈ μμ with FE & BE
μ΄λ²μλ νλ‘ νΈμλμ λ°±μλ, μ΄ 4λͺ μ΄ λͺ¨μ¬ λ°μ°¬κ°κ² μΌνλͺ° μΉ μ ν리μΌμ΄μ νλ‘μ νΈλ₯Ό μμνλ€.
μ΄μν λΆμκΈ°λ₯Ό ννΌνκ³ μ μκ³ λ λ€κ³ νμ΄ λλ λ§μ μλμ μΌλ‘ νλ€. νμ
μ μν΄ κ·ΈλΌμ΄λ λ£°μ μ νλ€. μ΄μ ν¨κ» λ£° μ νλ κ²μ΄ μ΅μν΄μ‘λ€. μ λ² νλ‘μ νΈμμ ν΄λΌμ΄μΈνΈ κ°λ°μκ° View κ°λ°μ λΆλ΄μ λλλ€κ³ νλ€. View κ°λ° μ§μ€μ λμμ£ΌκΈ° μν΄ κ³΅ν΅ μ
무λ₯Ό λ°±μλμμ μ£Όλ‘ λ§‘μμλ€. μ΄λ² ν΄λΌμ΄μΈνΈ κ°λ°μλ μ¬μ κ° μμ΄ λ³΄μλ€. μ΄λ²μ λͺ¨λκ° μ¦κ²κ³ μ견μ λ§ν μ μλ λΆμκΈ°λ₯Ό λ§λ€ μ μκ² λ€λ μκ°μ΄ λ€μλ€. νΌμ νλ©΄ 10λΆμ΄λ©΄ ν μ μλ μΌμ κ΅³μ΄(?) μμ μΌλ‘ λλμλ€. νλ‘μ νΈμ ν¨κ» νλ€λ μ λκ΄κ³λ₯Ό μλκ² κ°μ₯ μ€μνλ€κ³ μκ°νλ€. λν νμμ΄ μ견μ λΌ μ μκ² κΈ°λ€λ¦¬λ € νλ€. (λ§μ΄ κΈ°λ€λ Έλμ§λ λͺ¨λ₯΄κ² μ§λ§ ..γ
) νμ νΌμ νλ κ²μ΄ ν¨κ» ν΄λ΄λ κ²μμ μμ§ λ§μμΌκ² λ€. Github μ μ₯μ : Side Dish Project Repo , Ground Rule
μν©μ λ§λ(?) κ°λ¨ν μν€ν μ²μ FE/BE λ°°ν¬
λ°°ν¬νλ λ° νλ‘μ νΈ μ μ½μ¬νμ΄ μμκ³ λ€μκ³Ό κ°μ΄ κ²°μ νλ€.
μλ² λΉμ© 0μ
μλ² λΉμ© μμ΄ λ°°ν¬ν΄μΌ νλ€. μ§§μ μκ° μ΄μνλ€. -> AWS ν리ν°μ΄ ec2λ₯Ό νμ©νμ (ꡬλμ λ‘ ν λλ§ μ¬μ©...? μΏ¨λ)
νλ‘ νΈ(React), λ°±μλ λͺ¨λ λ°±μλκ° λ°°ν¬νλ€. CI/CD λ± λ°°ν¬ ν΄ μ¬μ©νμ§ λ§ κ²
μμ€μ½λκ° ν μ μ₯μμ FE / BE λλ ν λ¦¬λ‘ κ΅¬λΆλμ΄ μλ€.
-> μλν λ°°ν¬ μ€ν¬λ¦½νΈλ₯Ό λ§λ€μ΄μΌκ² λ€.
-> λλ ν 리 λ³λ‘ λΉλν λ€, scpλ₯Ό νμ©ν΄ awsλ‘ μ μ‘ν΄μΌκ² λ€. μ? ν리ν°μ΄λ μ»΄ν¨ν νμκ° λΆμ‘±ν΄μ mysql λλ¦¬κ³ μλ μνμμ spring λΉλλ μ λλ λ¬Έμ λ°μνλ€.
-> gradleμΌλ‘ spring λΉλ μ€ν¬λ¦½νΈ μμ±
-> νλ‘ νΈ λ°°ν¬λ μ΄λ»κ² νμ§? -> React Build(npm run build)λ₯Ό νμ¬ μ μ νμΌλ‘ λ§λ λ€μ λ°°ν¬νλ©΄ λλ€.
-> λ¬Έμ λ ec2 λ³΄λΈ λΉλ νμΌμ μ€νν μ€ν¬λ¦½νΈκ° λ³λλ‘ νμνλ€...
νλ‘ νΈ μ½λλ μ€νλ§ staticμμ μ μ μ μ‘νμ§ λ§ κ²
-> Nginxλ‘ μλ²λ₯Ό λ§λ€κ³ build ν react νλ‘μ νΈλ₯Ό μ μ‘νμ.
-> μ΄λ λ°±μλ μλ²μ νλ‘ νΈ μλ² κ°μ CORS λ¬Έμ κ° λ°μνλ λ°±μλμμ CORS μ€μ μ΄ νμνλ€. (λλ΄μ cors, SOPλ₯Ό λͺ¨λ₯΄κ³ μ ...)
λ‘κ·ΈμΈ Oauth2.0(Github)μ μν Spring security μ¬μ©νμ§ λ§ κ²
-> μ§μ μΈμ νμ
μμ£Ό κ°λ΅ν μν€ν μ²κ° κ·Έλ €μ‘λ€. ν리ν°μ΄ EC2 νλμ μ€νλ§, nginx, mysql λμ°λ κ² λ§μ΄ μ λμ§λ§...
λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§κ³Ό ERD - κ°μΈμ μΈ μκ° + νΈλ μ€ λ§μ€ν° ν΄λμ€
κ°μΈμ μκ°
μλ‘λΆν°(?) κ²¬κ³ ν λ°±μλ μ€κ³λ₯Ό μν΄μ DB λͺ¨λΈλ§μ΄ νμνλ€. (DataBaseκ° λ¨Όμ μΈκ° λλ©μΈμ΄ λ¨Όμ μΈκ°λ μ μ μκ³ (μ¬μ€ μ λͺ¨λ₯΄κ² λ€))
λ°μ΄ν° λΆμμ νλ©΄μλ ERDλ₯Ό νμ νλ κ²μ λ§€μ° μ€μνλ€. νλ‘λνΈμ μ 체 Data ꡬ쑰λ₯Ό νμ ν΄μΌ μνλ λ°μ΄ν°λ₯Ό μ°Ύκ³ , λΆμν μ μκΈ° λλ¬Έμ΄λ€. λ°±μλ κ°λ°μ μμνλ©΄μλ λ§μ°¬κ°μ§λ€. μ§ν μ€μΈ νλ‘μ νΈκ° μλ€λ©΄ ERD νμ μ΄ μ°μ μμκ° λμ΄μΌ νλ€. ERD νμΌμ΄ λλ€λ κ²μ ν΄λΉ λλ©μΈμ μ 체 νλ¦μ μ μ μλ€λ λ»μ΄λ€. λΉμ¦λμ€ λ‘μ§μ μ΄ν΄νλ€λ©΄ κ°λ°νλλ° μ΄λ €μμ΄ μμ κ²μ΄λ€.
μμ μλ‘μ΄ κ°λ°μ μμν΄λ λ§μ°¬κ°μ§μ΄λ€.
νΈλ μ€ λ§μ€ν° ν΄λμ€
λ°μ΄ν° λ² μ΄μ€ λͺ¨λΈλ§ κ³Όμ μ λ€μκ³Ό κ°λ€.
1. μꡬμ¬ν λΆμ -> μꡬμ¬ν λΆμμ
2. κ°λ μ μ€κ³ -> ERD
3. λ Όλ¦¬μ μ€κ³ - κ΄κ³ν λͺ¨λΈ
4. 물리μ μ€κ³ - SQL
3λ²μ κΈ°μ€μΌλ‘ 1,2λ²μ DBMSμ λ 립μ μ΄κ³ 4λ²μ DBMSμ μ’ μμ μΈ μμ μ΄λ€.
1. μꡬμ¬ν λΆμ
μ ν리μΌμ΄μ μ μꡬμ¬νμ λ°μ΄ν° κ΄μ μμ λ°λΌλ³΄λ κ²μ΄λ€. μ¬μ©μ / μ±μ΄ DBμ μꡬνλ κ²μ 무μμΈμ§, μ΄λ»κ² μ μ₯ν κ²μΈκ° μ΄λ€.
2. κ°λ μ μ€κ³ : ERD
- κ°μ²΄ (Entity) : μ€μ νμ€μμ λ 립μ μΌλ‘ μ‘΄μ¬νλ μ΄λ€ κ²μ΄λ€. μ§μ¬κ°νμΌλ‘ ννλλ€.
- μμ± (Attribute) : κ°μ²΄λ₯Ό μ€λͺ νλ νΉμ±μ΄λ€. νμμΌλ‘ ννλλ€. ν€ μμ±μ κ°μ²΄λ§λ€ κ³ μ ν κ°μ κ°μ§λ μμ±μ΄λ€. ν€ μμ±μ λ°μ€λ‘ νννλ©΄ νλ μ΄μ μ‘΄μ¬ κ°λ₯νλ€. (μ¬κΈ°μ λ§νλ ν€ μμ±μ PKμλ μ‘°κΈ λ€λ₯΄λ€.)
- κ΄κ³ (Relationship) : κ°μ²΄κ° κ°μ²΄λ₯Ό μ°κ²°νλ μ 보μ΄λ€. κ΄κ³λ μμ±μ κ°μ§ μ μλ€. 1:1, 1:N, N:Mμ μΈ κ°μ§ κ΄κ³κ° μ‘΄μ¬νλ€. λ°λμ νμν κ΄κ³λ κ²Ήμ€λ‘ νννλ€.
- μ½κ°μ²΄μ μλ³ κ΄κ³ : ν€κ° μλ κ°μ²΄λ₯Ό μ½κ°μ²΄(weak entity)λΌκ³ νλ€. μ½κ°μ²΄μ λΆλͺ¨ κ°μ²΄μμ κ΄κ³λ₯Ό μλ³ κ΄κ³(identifying relationship)μ΄λΌκ³ νλ€.
π Keep
- νμκ³Ό μΌ λλκΈ°
- κΈμ μ μΈ λ§νκΈ° e.g. μ€~ λ§μνμ λΈλμΉ μ λ΅μ΄ μμ£Ό ννλ°μ?
π₯Problem
- μμ¬κ³ κ³μ μ리μ μμμμ (νλ¦¬κ° λ무 μνλ€)
π Try
- μ μ΄λ ν μκ° λ§λ€ μ리μ μΌμ΄λ μ€νΈλ μΉ νμ
λκΈ0