diff --git a/README.md b/README.md index ae35db336..0fa5cf5d5 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ๐Ÿ–‹๏ธ ๊ทธ๋ผ์šด๋“œ ๋ฃฐ | ๐Ÿ“œ ๊ธฐํš์„œ | ๐ŸŽจ ๋””์ž์ธ | -๐Ÿ” ์œ„ํ‚ค +๐Ÿ” ์œ„ํ‚ค

# ๋ชจ๋ฝ | Morak @@ -46,12 +46,58 @@ ## ๐Ÿง‘โ€๐Ÿ’ป ๊ธฐ์ˆ ์  ๋„์ „ -| ๋ถ„๋ฅ˜ | ๋‚ด์šฉ | -| :------------: | :------------------------------------------------------------------------------------------------------------- | -| **Common** | โ€ข Monorepo
โ€ข socket.io ์ฑ„ํŒ… | -| **FrontEnd** | โ€ข Test Code ์ž‘์„ฑ
โ€ข ์„ฑ๋Šฅ ์ตœ์ ํ™”
โ€ข ํŒจํ‚ค์ง€ ๋ฐฐํฌ | -| **BackEnd** | โ€ข OAuth, ์ธ์ฆใƒป์ธ๊ฐ€
โ€ข Unit Test Code ์ž‘์„ฑ | -| **Infra** | โ€ข Github Action CI/CD ๊ตฌ์ถ•
โ€ข VPN ์„œ๋ฒ„ ๊ตฌ์ถ•
โ€ข Nginx ์„œ๋ฒ„ ๊ตฌ์ถ•
โ€ข Docker Registry, Vault ์„œ๋ฒ„ ๊ตฌ์ถ• | + +### **Monorepo With Turborepo** + +- ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ฝ”๋“œ ๊ณต์œ , ์ผ๊ด€๋œ ์ฝ”๋“œ ์Šคํƒ€์ผ, ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์บ์‹ฑ์„ ํ†ตํ•ด ํšจ์œจ์„ฑ์„ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. + - ๋ชจ๋…ธ๋ ˆํฌ์˜ ๋‚ด๋ถ€ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. + - FrontEnd/BackEnd ๊ฐ„ ํƒ€์ž… ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ์˜ˆ๋ฐฉํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค ๋ณ€๊ฒฝ์— ์‹ ์†ํ•˜๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณตํ†ต ํƒ€์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. + - ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋ฅผ ํŒจํ‚ค์ง€ํ™”ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. + - configuration ํŒŒ์ผ ์žฌ์‚ฌ์šฉ์œผ๋กœ ์ดˆ๊ธฐ ์„ธํŒ… ๋น„์šฉ์„ ์ค„์ž…๋‹ˆ๋‹ค. + - Turborepo์˜ ์บ์‹ฑ ๊ธฐ๋Šฅ์„ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ์— ์ ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. + - [TurboRepo ์„ค์ •](https://www.notion.so/fe9bbfaed0cd411e9a5d0aae7550a863?pvs=21) by ์„œ์ง€์› + +### **Test Code** + +- ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ๊ณผ QA ๋ฐฉ์‹์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค. + - [UI ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€? (์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ)](https://www.notion.so/UI-ee39d501d6b6498a9583859cc64e8a38?pvs=21) by ์ดํƒœ๋ฆผ + +### **์ง€๋„** + +- TMap API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€๋„ ํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. +- ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ฃผ๊ธฐ ์œ„ํ•ด Vector์™€ Raster ์ง€๋„ SDK๋ฅผ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์„ฑ๋Šฅ ํƒญ์œผ๋กœ ๋น„๊ตํ•ด ๋ณด๊ณ , ์„ ํƒํ•œ ๊ณผ์ •์„ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค. + - [Tmap API๋กœ ์ง€๋„ ๋ Œ๋”๋ง](https://www.notion.so/TMap-API-06c9e324d093465ea8da56777d338aaa?pvs=21) by ์ด์ง€์› + - [ํผ ์ž‘์„ฑ ์‹œ ์žฅ์†Œ ์„ ํƒ TMap API ์ ์šฉํ•˜๊ธฐ](https://www.notion.so/TMAP-API-1645d224b33d4f968ee81dca843bd8ae?pvs=21) by ์ดํƒœ๋ฆผ + - [๋Š๋ฆผ์˜ ๋ฏธํ•™ (feat. TMap ์ง€๋„ ์„ฑ๋Šฅ ์ธก์ •)](https://www.notion.so/TMap-063aa40efb0e4d0a95c61a990a188f45?pvs=21) by ์ด์ง€์›, ์ดํƒœ๋ฆผ + +### **์ฑ„ํŒ…** + +- socket.io๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๋“ค์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. +- FE์—์„œ ์ฑ„ํŒ… ๊ตฌํ˜„ ์ค‘ ๊ฒช์€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ ์ƒํ™ฉ๊ณผ ํ•ด๊ฒฐ ๊ณผ์ •์— ๋Œ€ํ•˜์—ฌ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. + - [FE ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ณผ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…](https://www.notion.so/9c866a10d5754c81bf86850a881486ef?pvs=21) by ๋งน์ง€์Šน + +### **OAuth2.0๊ณผ ์ธ์ฆ/์ธ๊ฐ€** + +- NestJS์—์„œ ์†Œ์…œ ๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ ์ธ์ฆ๊ณผ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ธ์ง€ํ•˜์—ฌ ์ธ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. +- ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•ด๋‚ด์–ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. + - [์ง€๊ธˆ ์ ‘์†ํ•œ ๋‹น์‹  ์ •์ฒด๊ฐ€ ๋ฌด์—‡์ด์˜ค?](https://www.notion.so/67f910a8f32140ccb43bf9d9622c8b84?pvs=21) by ์ž„๋™ํ˜ + - [์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization)](https://www.notion.so/Cookie-ea27c771aeef406aadc02709f587c99e?pvs=21) by ์ž„๋™ํ˜ + +### ๊ธฐํƒ€ + +- [assets๋Š” ์™œ, ์–ด๋””์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ• ๊นŒ์š”? public? src?](https://www.notion.so/assets-9b3e50f913cb4fdbabce2c0b5a06851f?pvs=21) by ์ดํƒœ๋ฆผ +- [react-query์™€ ์ปดํฌ๋„ŒํŠธ props ์ „๋‹ฌ](https://www.notion.so/a86d59c0a6924b27b764e589df34af41?pvs=21) by ๋งน์ง€์Šน +- [NestJS ๋นก์น˜๋Š” ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž](https://www.notion.so/f3d7e301dd5040d2950f423ca211ecae?pvs=21) by ์ž„๋™ํ˜ +- [Jest ๊ฒฝ๋กœ๋ฅผ ์ผ์ผํžˆ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ ?](https://www.notion.so/433965335b5845878257813e3e733cac?pvs=21) by ์ž„๋™ํ˜ +- [Jotai vs. Zustand](https://www.notion.so/Jotai-vs-Zustand-e0837b29d53e4fe2a3793dee1a6487c9?pvs=21) by ๋งน์ง€์Šน +- [๋†€๋ž๊ณ  ์žฌ๋ฏธ์žˆ๋Š” ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ](https://www.notion.so/5e26158dc5254aba9b6bff2d706be07d?pvs=21) by ๋งน์ง€์Šน +- [๋ชจ๋ฐ”์ผ์—์„œ ํผ ์ž…๋ ฅ ์‹œ ํ™”๋ฉด์ด ํ™•๋Œ€๋˜๋Š” ํ˜„์ƒโ€ฆ ์ ‘๊ทผ์„ฑ๊ณผ ๊ด€๋ จ ์žˆ๋‹ค๊ณ ?](https://www.notion.so/6f3bad0053f04f84afed52d562d78be6?pvs=21) by ์ดํƒœ๋ฆผ +- [Nginx ์„ค์ •](https://www.notion.so/dd2c18bdc779419b8928424f1a97048e?pvs=21) by ์„œ์ง€์› +- [Docker Registry ์„ค์ •](https://www.notion.so/61b9b8ab5f1440eeb738248832cfaaba?pvs=21) by ์„œ์ง€์› + + +> ์ด ์™ธ์—๋„ [๋ชจ๋ฝ ํŒ€์˜ ๊ฐœ๋ฐœ ์ผ์ง€](https://www.notion.so/ttaerrim/50a6652038d04e61920dbf8faecb80db?v=5eec47d4350b45b8b10da4c1ec7dc5d6)๋ฅผ ๊ตฌ๊ฒฝํ•ด ๋ณด์„ธ์š”! + ## ๊ธฐ์ˆ  ์Šคํƒ @@ -75,19 +121,6 @@ 2. ๊ฐœ๋ฐœ feature๋Š” `develop` ๋ธŒ๋žœ์น˜์—์„œ ๋”ฐ์„œ ์ž‘์—… ํ›„ `develop` ๋ธŒ๋žœ์น˜๋กœ ๋จธ์ง€ํ•œ๋‹ค. 3. ํ˜‘์—…์œผ๋กœ ์ธํ•œ ์ถ”๊ฐ€ ๋ธŒ๋žœ์น˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ upstream์—์„œ `develop` ๊ธฐ์ค€ `feature` ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ 2์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…ํ•œ๋‹ค. -## ๊ฐœ๋ฐœ ์ผ์ง€ - -| ์ž‘์„ฑ์ž|๋‚ด์šฉ | -| ------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ์ดํƒœ๋ฆผ | โ€ข [assets๋Š” ์–ด๋””์— ๋‘์–ด์•ผ ํ• ๊นŒ์š”?](https://www.notion.so/assets-9b3e50f913cb4fdbabce2c0b5a06851f?pvs=21)
โ€ข [ํผ ์ž‘์„ฑ ์‹œ ์žฅ์†Œ ์„ ํƒ TMAP API ์ ์šฉํ•˜๊ธฐ](https://www.notion.so/1645d224b33d4f968ee81dca843bd8ae?pvs=21)
โ€ข [UI ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€? (์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ)](https://www.notion.so/ttaerrim/UI-ee39d501d6b6498a9583859cc64e8a38) | -| ๋งน์ง€์Šน | โ€ข [FE ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ณผ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…](https://www.notion.so/FE-9c866a10d5754c81bf86850a881486ef?pvs=21)
โ€ข [react-query์™€ ์ปดํฌ๋„ŒํŠธ props ์ „๋‹ฌ](https://www.notion.so/a86d59c0a6924b27b764e589df34af41?pvs=21) | -| ์ž„๋™ํ˜ | โ€ข [NestJS JWT ์œ ์ € ์ •๋ณด ๋ฐ˜ํ™˜](https://www.notion.so/NestJS-JWT-67f910a8f32140ccb43bf9d9622c8b84?pvs=4)
โ€ข [NestJS์˜ ๋ณต์žกํ•œ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž](https://www.notion.so/NestJS-f3d7e301dd5040d2950f423ca211ecae?pvs=4)
โ€ข [์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization)](https://www.notion.so/Cookie-HttpOnly-Secure-ea27c771aeef406aadc02709f587c99e?pvs=4)
โ€ข [Jest path alios ์„ค์ •](https://www.notion.so/Jest-path-alios-433965335b5845878257813e3e733cac?pvs=4) | -| ์ด์ง€์› | โ€ข [Tmap API๋กœ ์ง€๋„ ๋ Œ๋”๋ง](https://www.notion.so/Tmap-API-06c9e324d093465ea8da56777d338aaa?pvs=21) | -| ์„œ์ง€์› | | -| ๊ณต๋™ | โ€ข [Jotai vs. Zustand](https://www.notion.so/Jotai-vs-Zustand-e0837b29d53e4fe2a3793dee1a6487c9?pvs=21) | - -์ด ์™ธ์—๋„ [๋ชจ๋ฝ ํŒ€์˜ ๊ฐœ๋ฐœ ์ผ์ง€](https://www.notion.so/ttaerrim/50a6652038d04e61920dbf8faecb80db?v=5eec47d4350b45b8b10da4c1ec7dc5d6)๋ฅผ ๊ตฌ๊ฒฝํ•ด ๋ณด์„ธ์š”! - ## ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป `command` ### package install