๊ทน๋ฝ์ฝ๋ฉ
- Java or Kotlin ์ํ๋ ์ธ์ด๋ฅผ ์ ํํด์ฃผ์ธ์.
- SpringBoot๋ ์ํ๋ ๋ฒ์ ์ ์ ํํด์ฃผ์ธ์.
- TODOLIST CRUD API๋ฅผ ๊ตฌํ(์์ฑ, ์์ , ์ญ์ , ๋จ๊ฑด์กฐํ, ์ ์ฒด์กฐํ)
- RESTFULํ API๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก
- ํด๋ฆฐ์ฝ๋๋?
- ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ๊ณ ๋ฏผํ๋ฉฐ ๊ตฌํ์ ์งํ
- README๋ฅผ ๊ผญ ์์ฑํด์ฃผ์ธ์!!(๋๋ฉ์ธ ๊ตฌ์ฑ, ์๊ตฌ์ฌํญ ๋ถ์์ ํตํ ๊ธฐ๋ฅ ๋ชฉ๋ก ๋์ถ)
- ๋ณธ์ธ์ด ์๊ฐํ๊ธฐ์ TODO-LIST์ ํ์ํ๋ค๊ณ ์๊ฐ๋๋ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ์ถ๊ฐํด๋ ์ข์์!
- Junit, Mockito๋ฅผ ์ด์ฉํ ํ ์คํธ ์ฝ๋ ์์ฑ
0์ฃผ์ฐจ
- ์งํ๋ฐฉํฅ์ ๋ํ ํ ๋ก ๋ฐ ์ฌ์ฉ tool & Language ํ ๋ก
1์ฃผ์ฐจ
- (assignment) in-memory ๊ธฐ๋ฐ todo-list ๊ตฌํ
- (assignment) ๋ดํฌ ํจํด(error, data, message) ์ ์ฉ ๋ฐ ์๋ฌ ์ ์ญ์ฒ๋ฆฌ
- error : ์๋ฌ์ฝ๋
- data : Client์๊ฒ Response
- message : ์๋ฌ ๋ฉ์์ง
- (cs) spring mvc์ ๋์์๋ฆฌ ํ์
2์ฃผ์ฐจ
- (assignment) db ๊ธฐ๋ฐ todo-list ๊ตฌํ
- (assignment) bulk-create api ๋ง๋ค๊ธฐ (max: 5000๊ฐ, count๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ๋ค๋ฅธ todo ์ปฌ๋ผ์๋ ๋๋คํ ๊ฐ์ ์ ๋ ฅ)
- (assignment) ํ์ ์ปฌ๋ผ Index ์ฒ๋ฆฌ (unique, not null)
- (cs) mysql index, memory vs disk
- index๋ฅผ ์ค๋ช ํด๋ณด์! ๊ทธ๋ฐ๋ฐ memory๋ disk์ ์ฐจ์ด๋ ์ผ๋ง๋ ๋ ๊น?
3์ฃผ์ฐจ
- (assignment) viewer๋ฅผ countํด์ฃผ๋ api๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. api ํธ์ถ ์งํ์, viewer๋ฅผ 1๋งํผ ์ฌ๋ ค์ฃผ๋๋ก์. (DB์ count ๋ฐ์ดํฐ ํ์)
- (assignment) api-doc ๋ฐ ํ ์คํธ ์ปค๋ฒ๋ฌ์ง (rest docs) (์ ํ์ฌํญ)
- (assignment) Cahcing์ ์ด์ฉํ์ฌ ์กฐํ์๋๋ฅผ ํฅ์์์ผ๋ณด์
- (cs) test-code (stub, mock)
- ํตํฉ ํ ์คํธ, ๋จ์ ํ ์คํธ.. ๋ฑ๋ฑ ๋ง์ ํ ์คํธ๊ฐ ์๋๋ฐ, ์ด๊ฑด ๋ญ๊ณ , ํ ์คํธ๋ ์ ์์ฑํด์ผํ ๊น?
- Caching์ ์ ์ฉํด์ผํ๋ ์ด์ ๋ ์๊ฒ ๋๋ฐ, Local Cahce, Redis? ๋ญ๊ฐ ๋์ข๊ณ ๋ถ์ฐ์์๋?
4์ฃผ์ฐจ
- (assignment) restful api (7 promise) ๊ท์น์ ์ง์ผ ์์ ํด์ฃผ์ธ์.
- (assignment) ๋ณํ์ ์ฝ๊ฒ ๋์ฒํ๊ธฐ
- (assignment) DB ์ค์ผ์ค๋ง์ ํตํด ์กฐํ์๊ฐ 5์ดํ์ธ ๊ฒ์๋ฌผ์ ์ญ์ ํ์ฌ์ฃผ์ธ์
- (cs) restful์ด๋, http, tcp, udp
- (cs) ๋์์ธํจํด, ๋ด๊ฐ ์๊ฐํ๋ ํด๋ฆฐ์ฝ๋
- ๋ค์ํ ๋์์ธํจํด๋ค.. ์ธ์ ์ด๋ป๊ฒ ์ธ๊น?
- (cs) ๋ฉฑ๋ฑ์ฑ
5์ฃผ์ฐจ
- (assignment) OOP์ ์ธ ์ค๊ณ์ ์ด์ ์ ๋์ด๋ณด์ (Getter๋ฅผ ์ง์ ๋ฑ๋ฑ)
- (assignment) ์ถ์ํ
- (assignment) ์ฑ๋ฅ์งํ๋ฅผ ๋ฌธ์ํํ์ฌ๋ณด์
- (assingment) ์ฟผ๋ฆฌํ๋์ ๋ํด ๋ฐฐ์๋ณด์ (๋ณด๋ฅ)
- (cs) ์ฟผ๋ฆฌํ๋์ ๋ฌด์์ด๋ฉฐ, OOP์ ๊ทผ์ ํ ์ค๊ณ๋ ๋ฌด์์ธ๊ฐ?
6์ฃผ์ฐจ
- (assignment) ํ ๋ผํผ์ ํตํ ๋ฐฐํฌํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ๋ณด์
- (assignment) ๋ชจ๋ํฐ๋ง ์์คํ (๋ฐฐํฌ ์๋ฒ ๋ชจ๋ํฐ๋ง ์์คํ )์ ๊ตฌ์ถํด๋ณด์(default grafana)
- (assignment) ๋์ค์ฝ๋ ์๋ฌ ์๋ฆผ ์ฒ๋ฆฌ
- (cs) IaC๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ ํ ์ฅ์ ์ด์กด์ฌํ๋๊ฐ?
7์ฃผ์ฐจ
- (assignment) ๋ถํํ ์คํธ (default๋ ngrinder, locust, jmeter)
- (assignment) ํตํฉํ ์คํธ๋ฅผ ์์ฑํ์ฌ๋ณด์ (testcontainer)
- (cs) ์ฑ๋ฅ ์งํ ๊ธฐ๋ฐ์ ๊ฐ์ ๋ฐฉ๋ฒ
- ๋ถํ๊ฐ ๋ฐ์ํ๋ค. cpu๊ฐ ํฐ์ง๋ค? api-latency๋๋ฆฌ๋ค?, ram์ด ๋ถ์กฑํ๋ค!
8์ฃผ์ฐจ
- (assignment) ๋ฉํฐ๋ชจ๋ ํจํค์ง๋ก ๋ถ๋ฆฌ์์ผ๋ณด์
- (assignment) ์๋ฒ๋ถ์ฐ? ํ ๊ฒ ์๋ค๋ฉด ์ ์ฉํด๋ณด์! (๋ณด๋ฅ)
- (assignmnet) DB ๋ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ฆฌ (๊ณต๋ถ)
- (cs) ๋ถ์ฐ์๋ฒ์์ ์บ์ ๋๊ธฐํ ๋ฐ ํด๋ฌ์คํฐ๋ง
- ๋งค์ฃผ ์ผ์์ผ ์คํ 9์(์ ๋์ ์ผ๋ก ์ค์ผ์ค๋ฐ๋ผ์ ๋ณ๊ฒฝ ์ฃผ๋ด์์)
- ๊ฐ๋ตํ๊ฒ ์ฝ๋ ํ๋ฆ ์ค๋ช (์ฃผ์ํ ์ฝ๋์์ฃผ๋ก)
- ์คํฐ๋์ ๊น์ง ๋ฌด์กฐ๊ฑด PR์ฌ๋ฆฌ๊ณ ๋ฆฌ๋ทฐ๋จ๊ธธ์์๋๋ก PR์ ์ต์ํ ์ผ์์ผ ์ค์ 12์๊น์ง๋
- ์ฝ๋๋ฆฌ๋ทฐ๋ ๊ถ๊ธํ์ , ์ง์ง ์ดํด์๊ฐ๋์ , (๋๋ ์ด๋ ๊ฒํ๋๋ฐ ๋์ ์ด์ผ์๊ฐํจ?)
- ๋งค์ฃผ ์งํ์ ์ README.md ํ ์ฃผ์ฐจ ๊ณํ ์ ๋ฆฌ
- ์ธ๋ฑ์ฑ, ์บ์ฑ์ฒ๋ฆฌ ์ ์ ์งํ๋ฅผ ๊ธฐ์ ๋ธ๋ก๊ทธ์ฐ๋ฏ์ด ์ ๋ฆฌํด์ wiki ๋๋ ํฐ๋ฆฌ์์ ์ ์ด์ฃผ์ธ์
- ๋ธ๋์น ์ด๋ฆ : ์ฃผ์ฐจ-github ์์ด๋
- Repository๋ฅผ forkํ์ฌ PR ์ฌ๋ ค์ฃผ์ธ์
- @seonghoo1217
- @jjinwo0
- @jhnyuk