- Agile
- flexible iteration
- ๊ณํ /๊ธฐํ
- ์๊ตฌ์ฌํญ ๋ถ์
- ์ฌ์ฉ์ interview
- ๋ถ์ ๋ฐ ideation
- ๊ธฐํ์: ๊ธฐํ์
- ๊ฐ๋ฐ์: Use Case diagram
- UI / UX ์ค๊ณ
- ๋์์ด๋: UI / UX ์ค๊ณ
- DB ์ค๊ณ (๋ชจ๋ธ๋ง)
- ๊ฐ๋ฐ์: ERD, EERD
- S/W ๋ฐ Infra ์ค๊ณ
- Infra: Cloud, Web ์๋ฒ, DB ์๋ฒ
- ๊ฐ๋ฐ์: Class diagram, Sequence diagram
- ๊ตฌํ
- ๋์์ด๋: UI / UX ์คํ์ผ ํ์ค ์ ํ๊ธฐ
- ๊ฐ๋ฐ์: ์ฝ๋ฉ convention, ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก , release ๋ฐฉ์ ๋ฑ ์ ํ๊ธฐ
- ํ
์คํธ ๋ฐ ํตํฉ
- ํตํฉ: ๋ถ์ฐ๋ ์์คํ ํ๋๋ก ํตํฉ
- TDD (ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ): ๊ตฌํ ์ ์ unit test ๋จผ์ ๋ง๋ค๊ณ ๊ตฌํ
- ์คํ (Release)
- ๋ฒ ํ ์คํ (MVP ๋ชจ๋ธ)
- ์๋น์ค ๋ฐ์นญ ์คํ
- ์ ์ง๋ณด์ (์ด์)
- ๊ณํ /๊ธฐํ
-
๊ฐ๋ ์ (Conceptual, Contextual) ๋ชจ๋ธ๋ง
- Entity ๋์ถ (์๋์ธ, ์์ฐจ์ธ, ์ค๊ฐ์ธ, ...)
-
๋ ผ๋ฆฌ์ (Logical) ๋ชจ๋ธ๋ง
- ERD ์์ฑ
- Data ๊ตฌ์กฐ ๋ฐ ์์ฑ (column, type ๋ฑ) ์ ์
- ๋ฌด๊ฒฐ์ฑ ์ ์ (FK ๊ด๊ณ ํ์ฑ) ๋ฐ ์ ๊ทํ(Normal Form, NF, ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ ๋ฑ)
-
๋ฌผ๋ฆฌ์ (Physical) ๋ชจ๋ธ๋ง
- Schema(DB), Table, Index ์์ฑ
- ์๊ตฌ ์ฌํญ ๋ถ์
- Use Case diagram ์์ฑ
- Entities, Functions ๋์ถ
- Relationships - E(E)RD ์์ฑ
- ์์ฑ (Pysical Modeling)
-
Use Case Diagram (์๊ตฌ ์ฌํญ ๋ถ์)
- User๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง
-
Deployment Diagram
- ์๋ฒ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋์ง (cloud, web server, db server ๋ฑ ๊ตฌ์ฑ๋)
-
Sequence Diagram
- instance ๋ค์ด ์ธ์ ์์ฑ๋๊ณ ์๋ฉธ๋๋์ง (์๋ช ์ฃผ๊ธฐ, ํ๋ ๋ฑ)
-
Class Diagram
- class ๊ตฌ์ฑ๋ (์์, ๋ฉค๋ฒ ๋ณ์/๋ฉค๋ฒ ํจ์, structure/behavior diagram...)
-
State Diagram / Flow Chart
- ๋ฐ์ดํฐ/๋ณ์ ์ํ ๋ณํ๋ (transition, action, state,...)
-
์ฐธ๊ณ
- Role & Responsibility
- ์๋ฒ, DB, ์ธ์ด ๋ฑ ์ ์
- Source ๋ฐ ์ฝ๋ฉ ๊ท์ฝ ์ ์
- ๋ฐฉ๋ฒ๋ก ๋ฐ ์งํ ๋ฐฉ์ ํ์
- Milestone
-
๋ชฉํ: ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ, ๊ด๊ณ ๋จ์ํ (์ฑ๊ฒฉ ๋ค๋ฅธ ๋ฐ์ดํฐ ๋ถ๋ฆฌ)
-
1NF
- ์์์ฑ (๋ชจ๋ ์์ฑ(์ปฌ๋ผ)์ ํ๋์ ๊ฐ๋ง ๊ฐ์ง)
- ex) ๊ณต๋ ์์ ์๋ ๋ณ๋ ์ปฌ๋ผ์ผ๋ก ๋ถ๋ฆฌ
-
2NF
- ์์ ํจ์์ ์ข ์ (๋ถ๋ถ ์ข ์ ์ ๊ฑฐ)
- ๋ชจ๋ ์์ฑ์ ๊ธฐ๋ณธํค์ ์ํด์ผ ํจ
- ex) ์๋์ธ ์ฐ๋ฝ์ฒ๋ ์๋์ธ ํ ์ด๋ธ์ ์ข ์
-
3NF
- ์ดํ ์ข ์ ์ ๊ฑฐ
- ๊ธฐ๋ณธํค ์๋ ๋ชจ๋ ์์ฑ ๊ฐ์๋ ์๋ก ์ข ์ ๋ถ๊ฐ
- ex) ๊ธฐ๋ณธ ์ฃผ์๋ ์ฐํธ๋ฒํธ์ ์ข
์ X
์ต๊ทผ์๋ ์ฐํธ๋ฒํธ ํ ์ด๋ธ ๋ณ๋๋ก ๊ตฌ์ฑ X
-
BCNF
- ๋ชจ๋ ๊ฒฐ์ ์๋ ํ๋ณดํค์ ์ํด์ผ ํจ
- ๋ฌผ๊ฑด ํ ์ด๋ธ ์ธ์ ์๋์ธ ํ ์ด๋ธ ๋ฐ๋ก ๋บ (์๋์ธ:๋ฌผ๊ฑด => 1:๋ค)
-
๋ฐ(์ญ) ์ ๊ทํ
- ํ
์ด๋ธ ๋ฐ์ ๊ทํ
- ํ ์ด๋ธ ์ค๋ณต, ํต๊ณ(summary)/์ด๋ ฅ/๋ถ๋ถ ํ ์ด๋ธ ์์ฑ
- ์ปฌ๋ผ ๋ฐ์ ๊ทํ
- ์ปฌ๋ผ ํฉ์นจ, ์ค๋ณต/ํ์
- ๊ด๊ณ ๋ฐ์ ๊ทํ
- ex) ๊ด์ฌ๋ฌผ๊ฑด ํ
์ด๋ธ์ ์๋์ธ ์ฐ๋ฝ์ฒ ์ปฌ๋ผ ์์ฑ
๋ฌผ๊ฑด ํ ์ด๋ธ๋ง ์กฐ์ธํ๋ฉด ๋๋ฏ๋ก ์ฌํํด์ง
- ex) ๊ด์ฌ๋ฌผ๊ฑด ํ
์ด๋ธ์ ์๋์ธ ์ฐ๋ฝ์ฒ ์ปฌ๋ผ ์์ฑ
- ํ
์ด๋ธ ๋ฐ์ ๊ทํ
-
PK(๊ธฐ๋ณธํค)๊ฐ ๊ฐ์ฅ ์ค์!
- unique, not null, ๋ณ๊ฒฝ X (์ฌ๋ฌ ๊ตฐ๋ฐ์์ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ)
- ๊ฐ๋ฅํ 1๊ฐ ์ปฌ๋ผ (๋ณตํฉํค๋ก ์ก์ผ๋ฉด join ๋น์ฉ ๋ถ๋ด ํผ,...)
- ์ค์ํ ๋ณด๋ค๋ ์ ์ํ! (์๋ ์ฆ๊ฐ ์ปฌ๋ผ: auto_increment)
-
์ ์ ํ ์ ๊ทํ!
- ์์์ฑ(1NF) ์ต๋ํ ์ค์! (์ต๋ํ ์ค๋ณต ๋ฐ์ดํฐ ์๋๋ก)
- ๊ณ์ฐ ๊ฒฐ๊ณผ ์ปฌ๋ผ ์ต๋ํ ์์
- Nullable ํ ํ์ ์์ผ๋ฉด NOT NULL๋ก ํ์!
-
์ฐธ์กฐ(๋ฐ์ดํฐ) ๋ฌด๊ฒฐ์ฑ์ ์ํด FK ์ ์
- ON DELETE CASCADE (PK ์ญ์ ์ FK ์ฐ๋ ๊ธฐ ๋ฐ์ดํฐ ๋จ)
-
์๋ก ๋ค๋ฅธ ์ฑ๊ฒฉ์ ์ปฌ๋ผ๋ค์ ํ ์ด๋ธ ๋ถ๋ฆฌ!
- ex) ์ํํธ ๋จ์ง ํ ์ด๋ธ, ํ ์ง ํ ์ด๋ธ ๋ฑ ๋ถ๋ฆฌ
-
MyDeal Modeling
-
mydealdb
-
Use Case Diagram ์์ฑ
- ์น ํ์ ๊ทธ๋ฆฌ๊ธฐ (์์์ผ๋ก ๊ตฌ๋ถ)
- ๋ช ์ฌ๋ ๋ชจ๋ Entity (table or column)
- ๋์ฌ(ํ๋)๋ Use Case (ํ์)
- <๊ฐ์
์ ์ฆ์ผ์ด์ค>
์์ฐจ์ธ -> ํ์๊ฐ์ -> ์ค๋ช ์ธ์ฆ
์์ฐจ์ธ -> ๋ก๊ทธ์ธ - ํ๋ฅด์๋
์๋์ธ(์ง์ฃผ์ธ - ๋ณ์นญ): ๋์ด, ๊ฑฐ์ฃผ์ง, ์ํํธ ์์ ,...
์ค๊ฐ์ธ: ๋์ด, ๊ณต์ธ์ค๊ฐ์ฌ๋ฌด์ ๋ํ
์์ฐจ์ธ(์ธ์ ์): ์ด๋ฆ, ๋์ด, ์ง์ ,... - ์ ์ฆ ์ผ์ด์ค
- ์๋์ธ(์ง์ฃผ์ธ) -> ๋ก๊ทธ์ธ(/ํ์๊ฐ์
) -> ๋ฌผ๊ฑด ์ฌ๋ฆผ -> ๋ฌผ๊ฑด
์๋์ธ -> ๋ก๊ทธ์ธ -> ๊ณ์ฝ์๋ฆผ -> ๊ณ์ฝ
์๋์ธ -> ๋ก๊ทธ์ธ -> ์ค๊ฐ์ธ ์น์ธ (์ค๊ฐ์ธ ์น์ธ --- ์ค๊ฐ์ธ ๋ฑ๋ก)
-> - ์์ฐจ์ธ(์ธ์
์) -> ๋ก๊ทธ์ธ(/ํ์๊ฐ์
) -> ๋ฌผ๊ฑด ๊ฒ์(/์ถ์ฒ๋ฌผ๊ฑด) -> ๋ฌผ๊ฑด
-> ๊ณ์ฝ ์ ์ฒญ -> ๊ณ์ฝ -> ์ด์ฌ (์ข ๋ฃ) ์์ฐจ์ธ -> ๋ฌผ๊ฑด ๊ฒ์ -> ๋ฌผ๊ฑด -> ์ฐํ๊ธฐ -> ๊ด์ฌ ๋ฌผ๊ฑด ๋ชฉ๋ก - ์ค๊ฐ์ธ -> ๋ก๊ทธ์ธ(/ํ์๊ฐ์
) -> ์ค๊ฐ์ธ๋ฑ๋ก
์ค๊ฐ์ธ -> ๋ก๊ทธ์ธ -> ๊ณ์ฝ - ๊ณ์ฝ ์ข ๋ฃ ์ ์ ๊ฐ๊ณ์ฝ, ์ต์ข ๊ณ์ฝ์ ์์ฑ (๋ชจ๋ ์ฐธ์ฌ)
- ์ค๊ฐ์ธ์ ๊ณ์ฝ ๋ค์ด๊ฐ ๋ ๋ฑ๊ธฐ๋ถ๋ฑ๋ณธ ๋ฑ ๊ทผ๊ฑฐ ์๋ฃ ์ ์ ํ์
์๋์ธ, ์์ฐจ์ธ ๋ชจ๋ ๊ฒ์ฆ ํ์ - ์์คํ
๊ด๋ฆฌ์ -> ๋ก๊ทธ์ธ -> ์ค๊ฐ๋ํ(์ค๊ฐ์ธ ์๋ ๋ฌผ๊ฑด)
MVP์์๋ ๋ณดํต ์ค์ํ์ง ์์ผ๋ ์ ์ธ
- ์๋์ธ(์ง์ฃผ์ธ) -> ๋ก๊ทธ์ธ(/ํ์๊ฐ์
) -> ๋ฌผ๊ฑด ์ฌ๋ฆผ -> ๋ฌผ๊ฑด
- ํด๋ก ๊ทธ๋ฆฌ๊ธฐ (draw.io)
- ๋ฌธ์ update ํ๋ฆ
- ์น ํ์ ๊ทธ๋ฆฌ๊ธฐ (์์์ผ๋ก ๊ตฌ๋ถ)
-
์ ์ฆ์ผ์ด์ค๋ก Entity ๋ชจ๋ ๋์ถ ์ดํ ERD ์์ฑ
-
MySQL Workbench ์ด์ฉ
- reverse engineering
- ์ฟผ๋ฆฌ๋ก ๋ง๋ ํ diagram์ผ๋ก ํ์ธ (์ญ ์ ๊ทํ)
- MySQL EERD (Enhanced Entity Relationship Diagram)
- ๋ชจ๋ ๋ฌธ์ ๋ ์๋ชป๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ผ๋ก๋ถํฐ ์์๋จ!
- ์ด๊ธฐ DB ์ค๊ณ์ ์ ์ ๊ทํ ํด๋์ผ๋ฉด ๋์ค์ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝ์ฌํญ ๋์ฒ ๊ฐ๋ฅ
- nginx; ๋ ผ๋ฆฌ์ ์ธ ์๋ฒ
- cloud ์๋ฒ๋ device
- instance: ํด๋์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ ์ํ
- table (value object) -> class
- ์ ๋ฌด ํ๋ฆ๋ ์ํด์ ๊ธฐํ์๋ค๋ flow chart ๋ง์ด ์ฌ์ฉ
- ๋ฐ์ ๊ทํ; ๋ฐ์ดํฐ ์ ์ง ์ด๋ ค์
- ๋ทฐ๋ ๋งค๋ฒ ์กฐ์ธ๋ง๋ค ๋น์ฉ ๋ฐ์
- ๋น ๋ฐ์ดํฐ์์ ๋ฐ์ ๊ทํ ๋ง์ด ํ๊ธด ํจ (์ฑ๋ฅ ์ํด, ๋ฐ์ดํฐ ์ ์ง ๊ณํ ํ์)
- Column์ ๋น์ธ๊ณ row๋ ์
- ๊ธฐํ์ ๋ณด๋ฅผ ๋ชจ๋ ์ปฌ๋ผ์ผ๋ก ๋ง๋ค๋ฉด ๋ญ๋น์
๊ธฐํ์ ๋ณด๋ผ๋ ํ ์ด๋ธ์ ๋ถ๋ฆฌํด์ type, value๋ฅผ row๋ก ๋ง๋ฌ
column -> row๋ก ๋ณ๊ฒฝ (์์ฃผ ์ฌ์ฉํ๋ฉด ์ญ์ ๊ทํ, ๊ธฐํ์ ๋ณด ์ปฌ๋ผ ๋ฌด์ํ ๋ง์ผ๋ฉด ๋ถ๋ฆฌ) - persona - ๊ฐ์ ๋ํ ์ธ๋ฌผ
- ๋น๋ฐ๋ฒํธ๋ ๋จ๋ฐฉํฅ ์ํธํ (ssh 512 ์ธ ๊ฒ์ด๋ฏ๋ก varchar(256)๋ก ์ธํ )
- ์ฃผ๋ฏผ๋ฒํธ๋ ์๋ฐฉํฅ ์ํธํ (์ํธํ ํ ๋์ค์ ๋ณตํธํ, varchar(60) ์ด์ ์ธํ )