[statUs] ์ํํ ํ ์ ๋ฌด์ ํ ๋ด ์ปค๋ฎค๋์ผ์ด์ ์ ๋์์ฃผ๋ ์๋น์ค
ํ์ ์ผ์ ์ ํ์ธํ๋ค! ๋๊ฐ ์ด๋ค ์ผ์ ์ด ์๋์ง ํ์ธํ๋ค! ํ์์ด ์ด๋ค ์ํ์ธ์ง ๋ณด์ฌ์ค๋ค!
๐ Status ์๋น์ค ์ด์ฉํ๊ธฐ
๐ Status ๋ ธ์ ๋ฐ๋ก๊ฐ๊ธฐ
- ๊ฐ๋ฐ ๊ธฐ๊ฐ: 2022๋ 11์ 11์ผ ~ 2022๋ 12์ 16์ผ
- ์ด์ ๊ธฐ๊ฐ: 2022๋ 12์ 07์ผ ~ 2022๋ 12์ 15์ผ
๐จ๐ปโ๐ป ํ์ธ์ค: https://github.com/hansejun/
๐จ๐ปโ๐ป ์์น์: https://github.com/Returnmakdo
๐จ๐ปโ๐ป ๊น์ ํ: https://github.com/1005jh
๐จ๐ปโ๐ป ์ ํ์ง: https://github.com/hyunjin9603
๐จ๐ปโ๐ป ์ ๋ํฌ: https://github.com/donghee44
๐จ๐ปโ๐ป ๋ฌธ์์ง
-
- ์ด๋ฉ์ผ ์ธ์ฆ์ ํตํ ํ์๊ฐ์
- ์นด์นด์ค ๋ก๊ทธ์ธ์ ํตํ ๊ฐํธํ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ
- ๋ก๊ทธ์ธ ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ ์ํ ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋
-
- ์์ ๊ฒ์ํ๊ณผ ๊ณต์ง๊ฒ์ํ์ผ๋ก ๋๋์ด ๋ณด์ฌ์ค
- ์์ ๊ฒ์ํ์ ๊ฒ์๊ธ์ ๋ฑ๋กํ์ฌ ๊ณต์ง๊ฒ์ํ์ผ๋ก ์ด๋ ๊ฐ๋ฅ
- ์ข์์ ๋ฐ ๋๊ธ ์์ฑ ๊ฐ๋ฅ
- ์์ฑํ ๊ธ์ ์์ฝ๋ ์ ๋ณด๋ก ๋ณด์ฌ์ง๋ฉฐ ํด๋ฆญ์ ํตํด ์์ธ ๊ฒ์๊ธ ๋ชจ๋ฌ์ ํ์ธ ๊ฐ๋ฅ
- ์์ธ ๊ฒ์๊ธ ๋ชจ๋ฌ์์๋ ๊ฒ์๊ธ์ ๋ํ ์ ์ฒด ์ ๋ณด๊ฐ ๋ณด์ฌ์ง๋ฉฐ ์ด๋ฏธ์ง ํด๋ฆญ์ ํตํด ์์ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ผ์ด๋๋ก ํ์ธ ๊ฐ๋ฅ
๐ท๐ปโโ๏ธ ๊น์ ํ
- ๊ทธ๋ฃน,์ค์ผ์ฅด,์ด๋,๊ฒ์ํ,๋๊ธ,๋ฃธ,์ฑํ ,์ด๋ฏธ์ง ๊ธฐ๋ฅ๊ตฌํ
- redis ๋ฐ์ดํฐ ์บ์ฑ
- lambda ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง
- socket.io : ์ค์๊ฐ ์ฑํ / ์์ฝ์ ๋ฉ์์ง ์๋ฆผ / ์ค์๊ฐ ์ ์ ์ ์ ํ์
- CICD
- swagger
- morgan/winton ์๋ฌ๋ก๊ทธ ์ ์ฅ
- ๋ถํํ ์คํธ (artillery)
- test
- nginx(https , Load Balancer)
- ์ ๋ฐ์ ์ธ ์๋ฌ์์ ๋ฐ ํผ๋๋ฐฑ ๋ฐ์
- ๋ฐ์ดํฐ ๊ด๊ณ ์ค์
๐ท๐ปโโ๏ธ ์ ํ์ง
- ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์ ์ ํ๋กํ, ๋๋ค์/๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๊ตฌํ
- ๊ทธ๋ฃน๋ด ์ ์ , ์ปฌ๋ฌ, ๊ฒ์๊ธ/๋๊ธ ์ข์์ ๊ตฌํ
- ์นด์นด์ค ์์ ๋ก๊ทธ์ธ : axios ์ฌ์ฉ ๊ตฌํ
- ๊ตฌ๊ธ/๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ : passport ๊ตฌํ
- nodemailer (๋ค์ด๋ฒ๋ฉ์ผ)
- ๋ก๊ทธ์ธ ๋ฏธ๋ค์จ์ด
- nginx (https)
- jwt
- test
- DB ๋ชจ๋ธ ์ค๊ณ(ERD)
๐ท๐ปโโ๏ธ ์ ๋ํฌ
- ์ค์ผ์ฅด, ๊ทธ๋ฃน, ์ปฌ๋ฌ CRUD
- socket.io ์ฑํ
์ฌ์ฉ ๊ธฐ์ | ๊ธฐ์ ๊ฒฐ์ ์ด์ |
---|---|
Socket.io |
webSocket์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๋ณ๋ก ์ง์ ๋ฒ์ ์ด ๋ค๋ฅด๊ฑฐ๋ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ด์ ์ผ๊ด๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ socket.io๋ฅผ ์ ์ฉํ์์ต๋๋ค. |
redis |
In-Memory ๊ธฐ๋ฐ์ Dictionary ๊ตฌ์กฐ ๋ฐ์ดํฐ๊ด๋ฆฌ ์๋ฒ๋ก key-value์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๋จ์ํ๊ฒ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ด ์ฟผ๋ฆฌ ์ฐ์ฐ์ ์ง์ํ์ง ์์ง๋ง, ๋ฐ์ดํฐ์ ๊ณ ์์ฝ๊ธฐ์ ์ฐ๊ธฐ์ ์ต์ ํ๊ฐ ๋์ด ์๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์์ ์๋๊ฐ ๋น ๋ฅธ ์ฅ์ ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ์ฌ ์๋ฒ์ ๋ถ๋ด์ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค. |
lambda |
์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ์์ ์ด CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ์๋ฒ์์ ์์ ์ ๋๋ฆฌ๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ฒญ์ ๋ชป ๋ฐ๋ ํ์์ด ์๊ธธ ์ ์๊ณ , node.js์ ํน์ฑ์ ๋น๋๊ธฐํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฐ์ผ๋ก I/O ์์ ์ ์ ๋ฆฌํ๊ณ CPU์์ ์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ S3๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก ์ฌ์ฉํ ์ ์๋ lambda๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ต๋๋ค. |
git action(CICD) |
๋ฐ๋ณต์ ๋น๋, ํ
์คํธ ๋ฐ ๋ฐฐํฌ์์
์ ์ฒ๋ฆฌํ๊ณ , ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํด์ฃผ๋ ์๋ํ ํ์ดํ๋ผ์ธ์ ํตํด ์ฝ๋๋ณ๊ฒฝ์ ์ํํ๊ฒ ํ ์ ์์ด ์ ํํ์ต๋๋ค. jenkins๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด ์ปดํจํฐ์์์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ ์ฅ์ ์ด ์์ง๋ง git action์ ์ฌ์ฉํจ์ผ๋ก์จ github๊ณผ ํต์ผ๋ ํ๊ฒฝ์์ CICD๋ฅผ ์ํํ ์ ์๊ณ , ๋ณด๋ค ์น์ํ ๋ฌธ๋ฒ์ yamlํ์ผ๋ก ๊ฐ๋จํ๊ฒ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ git action์ ์ ํํ์ต๋๋ค. |
Nginx |
https๋ฅผ ์ ์ฉํด ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์ ์ ๊ณตํ๋ ์ ๋ณด๋ฅผ ์ํธํํ์ฌ ๋ณด์์ ๊ฐํํ๊ณ ํ์ฌ ํ๋ก์ ํธ์ ์ฌ์ด์ฆ์ ์ฌ์ฉ์ ์ ๋ฐ ๋น์ฉ์ ์ธ ๋ฉด์ ๊ณ ๋ คํด ELB๋ณด๋ค Nginx๋ฅผ Load Balancer๋ก ์๋ฒ์ ๋ถํ๋ฅผ ๋ถ์ฐ์ํค๊ณ ์๋ต์๋๋ฅผ ๋์ด๋๋ฐ ๋ ํจ๊ณผ์ ์ผ๊ฑฐ๋ผ ํ๋จํ๊ณ ์ฌ์ฉํ์ต๋๋ค. |
axios |
response timeout (fetch์๋ ์๋ ๊ธฐ๋ฅ) ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ด ์กด์ฌ Promise ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ํธ๋ฆฌํฉ๋๋ค. ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ต์ ํ๋ก ๋ธ๋ผ์ฐ์ ํธํ์ฑ(๊ตฌํ ๋ธ๋ผ์ฐ์ ์ง์)์ด ๋ฐ์ด๋ฉ๋๋ค. |
artillery |
JMETER๋ผ๋ ํด๋ ์์ง๋ง ์ฐ๋ฆฌ์๊ฒ ์น์ํ ์ฝ๋๋ก ๋ถํํ ์คํธ๋ฅผ ์งํํ ์ ์๋ค๋ ์ ์์ ์ฌ์ฉํ๊ฒ ๋์ต๋๋ค. |
mysql |
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ๋ฉด๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ํ์์ผ๋ก ์ ์ฅํ๊ณ ๊ณ ์ ํ ์คํค๋ง๋ฅผ ์ ์ํ ์ ์๋๋ก ํ์ฌ ๋ฐ์ด๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋์ต๋๋ค. |
sequelize |
๊ฐ์ฒด์งํฅ์ ์ฝ๋๋ก ์ง๊ด์ ์ด๋ฉฐ ๋ก์ง์ ๋์ฑ ์ง์คํ ์ ์๊ฒ ํด์ฃผ๊ณ , ์ ์ง๋ณด์๊ฐ ์ข๋ค๋ ์ ๊ทธ๋ฆฌ๊ณ DBMS์ ๋ํ ์ข ์์ฑ์ด ์ค์ด๋ค๊ฒ ํ๋ฉฐ ์ฟผ๋ฆฌ๋ฌธ์ javascript๋ก ์ฌ์ฉํ ์ ์๋ ์ฅ์ ์ด ์์ด ๋ณด๋ค ํด๋ฆฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ์ชฝ์ ๋ ์ง์คํ ์ ์๋ค๋ ์ ์์ ์ฌ์ฉํ๊ฒ ๋์ต๋๋ค. |
Lambda Access denied
-
๋ฌธ์ ์ํฉ
- S3 ๋ฒ์ผ์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ๊ฐ์ง๋ง lambda ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ ํ์ง ์๊ณ access denied 403 ์๋ฌ๋ฅผ ๋์
-
์ฒซ๋ฒ์งธ ์ ๊ทผ
- access denied๊ฐ ๋จ๋ฏ๋ก ๊ถํ์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋จํ๊ณ IAM ๊ถํ์ชฝ์ผ๋ก ์์ ํ๊ณ ๋ค์์๋ โ ์คํจ(access denied 403) โ ใน๋ค์ ์ฒ์๋ถํฐ AWS ์ธํ โ ์คํจ(access denied 403)
-
๋๋ฒ์งธ ์ ๊ทผ
- AWS์ ์ธํ ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด lambda์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ ํ๋จํ๊ณ ํจ์์ ํธ๋ฆฌ๊ฑฐ ์์ ํ๊ณ ๋ค์์๋ โ ์คํจ(access denied 403) โ lambda์ s3๋ฅผ ๋ค์ ๋ง๋ค๋ฉฐ ์งํ โ ์คํจ(access denied 403)
-
์ธ๋ฒ์งธ ์ ๊ทผ(ํด๊ฒฐ)
- lambda์ ๊ถํ์ ๊ฑด๋๋ ค๋ดค์ผ๋ ํด๊ฒฐ์ด ๋์ง ์์ multerMiddleware ์ฝ๋ ๋ค์์์ฑ ์๋ โ ์คํจ(access denied 403) โ multer ์ธํ ์ ๋ฐ๊พธ๋ฉฐ ๋ค์์๋ โ ์ด๋ฆ์ ํ์ฌ๋ ์ง๋ก๋ง ๋ฐ๊ฟ์คฌ์ ๋ ์ฑ๊ณต
-
access denied๊ฐ ํด๊ฒฐ๋ ์ด์ ?
stackoverflow์์ ๊ฒ์ํ๋ค๊ฐ ๋ฐ๊ฒฌํ ๊ธ์ ๋ฐ๋ฅด๋ฉด AWS๋ ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด 404 NOT FOUND๊ฐ ์๋๋ผ 403 ACCESS DENIED๋ฅผ ๋์ด๋ค๊ณ ํฉ๋๋ค. ๊ทผ๋ฐ ์ ๋ ๊ธฐ์กดํ์ผ๋ช ์ ๋ ์ง๋ฅผ ๋ํด์ ํ์ผ๋ช ์ ์ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์งํ์ ํ์๊ณ , ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ S3์ ํ๊ธ๋ก ๋ ํ์ผ๋ช ์ด ์ฌ๋ผ๊ฐ ๋ ํ๊ธ์ด ๊นจ์ ธ์ ์ฌ๋ผ๊ฐ๊ฒ ๋์ต๋๋ค. ์ฌ๊ธฐ์ S3์๋ ์ฌ๋ผ๊ฐ์ง๋ง lambda์์๋ ๊นจ์ง ํ๊ธ์ ์ธ์ํ์ง ๋ชปํด S3์ ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ํ๋จ์ ํ๊ณ access denied๋ฅผ ๋์ด ๊ฒ์ด๋ผ ์๊ฐ๋ฉ๋๋ค.
์ฌ๋ฌ์ฅ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ ธ์ ๋ S3์ ๋ช์ฅ์ ์ด๋ฏธ์ง๊ฐ ์์ค๋๋ ๋ฌธ์
-
๋ฌธ์ ์ํฉ
- ์ฌ๋ฌ์ฅ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ ธ์ ๋ S3์ ๋ช์ฅ์ ์ด๋ฏธ์ง๊ฐ ์์ค๋๋ ๋ฌธ์
-
์ฒซ๋ฒ์งธ ์ ๊ทผ
- multerMiddleware๋ฅผ ํต๊ณผํด์ S3์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ๊ฐ๋ฏ๋ก multerMiddleware๋ฅผ ์ฌ์ฉํ๋ route ๋ถ๋ถ์ ์์ โ ์คํจ
-
๋๋ฒ์งธ ์ ๊ทผ
- S3์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ๋ค๊ฐ ํ์ผ๋ช ์ด ํฌ๊ฒ ์ฐจ์ด๊ฐ ๋์ง ์๋ ๊ฒ์ ํ์ โ ์๋ก ๋ช ํํ ์ฐจ์ด๋ฅผ ์ฃผ๊ธฐ ์ํด ๋๋ค์ซ์์ ํ์ฌ์๊ฐ์ ๋ํด์ ํ์ผ๋ช ์ ๋ง๋ค์ด์ค โ ์ฑ๊ณต
-
์ด๋ฏธ์ง๊ฐ ์ ์์ค๋๊ฑธ๊น?
๋๋ฒ์งธ ์ ๊ทผ์ ํ์ ๋ ํ์ ํ๊ธฐ๋ก๋ ์ฌ๋ฌ์ฅ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ด ์ฌ๋ฆด ๋ ๋ช์ฅ์ ์ด๋ฏธ์ง์ ํ์ผ๋ช ์ด ๊ฐ๊ฒ ๋์ด ์์ค๋๋๊ฑธ๋ก ํ์ ๋ฉ๋๋ค. ๊ฐ์ ํ์ผ๋ช ์ด ์ฌ๋ผ์ค๊ธฐ ๋๋ฌธ์ S3์์๋ ํ๋์ ํ์ผ๋ก ์ธ์ํ๊ณ ์ด๋ฆ์ด ๊ฒน์น๋ ํ์ผ์ด ์ฌ๋ผ์ง๊ฒ ๋์๋ค.
Lambda๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ํ์ฅ์๋ช ์ ๋ฌธ์
-
๋ฌธ์ ์ํฉ
- lambda๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ํ์ฅ์๋ช ์ ๋ฌธ์
-
์ฒซ๋ฒ์งธ ์ ๊ทผ
- ํ์ฅ์๋ช ์ ์ ํ์ ๋์ด lambda๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ํ์ฅ์๋ช ์ ๊ฑธ๋ฌ๋ด๋ ์์ โ ์ฑ๊ณต โ ์ด๋ฏธ์ง ํ์ฅ์๋ช ์ ๋ํด ๋ชจ๋ฅด๋ ์ฌ์ฉ์๊ฐ ์์ ๊ฒ์ด๋ผ ํ๋จ โ ๋ค๋ฅธ ํด๊ฒฐ๋ฐฉ๋ฒ ๋ชจ์
-
๋๋ฒ์งธ ์ ๊ทผ
- ์ด๋ฏธ์ง ํ์ฅ์๋ช ์ multerMiddleware์์ ๋ณ๊ฒฝ โ ์ฑ๊ณต โ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆด ๋ ์ ๊ฒฝ ์ธ ์ผ์ด ์๊ฒ ๋จ โ ์ฑํ
-
lambda๊ฐ ์ธ์ํ์ง ๋ชปํ๋ JFIF, ๋ณ๊ฒฝํด์ค ํ์ฅ์๋ช webp
lambda๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ํ์ฅ์๋ช ์ด ์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ ํฌ๊ฒ ํ์ง ๋ชปํ์ต๋๋ค. ๊ทธ์ jpg๋ jpeg๋ก ํด์ค์ผ ํ๋ค๋ ๊ฒ๋ง ์๊ณ ์์๋๋ฐ JFIF๋ผ๋ ํ์ฅ์๋ช ์ด ๋ค์ด์์ ๋ 1๋ฒ ๋ฌธ์ ์ ๋น์ทํ๊ฒ ๋๋ค ํธ๋ฆฌ๊ฑฐ๊ฐ ๋ฐ๋ํ์ง ์์์ต๋๋ค. ํ์ฅ์๋ช ์ ๋ณ๊ฒฝํ๊ธฐ๋ก ํ์ ๋ ๊ฐ์ฅ ํํ JPEG๋ก ํ์๋๋ฐ webp๋ผ๋ ํ์ฅ์๊ฐ ์์ถ์ฑ๋ ๋ฐ์ด๋๊ณ ํ์ง์ ์ธ๋ฉด์์๋ png์ ๋น์ทํ๋ค๋ ๊ฑธ ์๊ฒ๋์ด webp๋ผ๋ ํ์ฅ์๋ช ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ฒ ๋์์ต๋๋ค. ๋ฌผ๋ก webp๋ผ๋ ํ์ฅ์๋ฅผ ์ ํํ๋ฏ๋ก ๋ช๋ช ๋ธ๋ผ์ฐ์ ์์ ์ง์์ ํ์ง ์๋ ์ ๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ์ ๋ฐ๋ผ ์ง์์ ํ์ง ์์ ์ ์๋ค๋ ๋จ์ ์ ๊ฐ์ ธ๊ฐ์ผ ํ์ง๋ง webp๋ฅผ ์ผ์ ๋์ ๋งค๋ฆฌํธ๊ฐ ์ถฉ๋ถํ ํฌ๋ค๊ณ ์๊ฐ๋์ด ์ฐ๊ฒ ๋์์ต๋๋ค.
Redis ์บ์ฑ ๊ด๋ จ ๋ฌธ์
-
๋ฌธ์ ์ํฉ
- get ์์ฒญ์ ์บ์ฑ ํ์ ๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ถ๊ฐ ๋๊ฐ์ ์ค๋ฅ
-
์ฒซ๋ฒ์งธ ์ ๊ทผ
- cacheMiddleware์์ redis.set ๋ถ๋ถ์ ์์ โ ์คํจ
-
๋๋ฒ์งธ ์ ๊ทผ
- set์ key ๊ฐ์ผ๋ก req.originalUrl์ ์ด์ฉํ์๋๋ฐ ์ ์ ๋ง๋ค key ๊ฐ์ ์ฐจ๋ณํ๋๊ฒ ๋ณ๊ฒฝ -> ์ฑ๊ณต โ ๋ฐ์ดํฐ๊ฐ ๋ณํด๋ ๋ณํ๊ธฐ ์ ๋ฐ์ดํฐ ์๋ต โ ์คํจ
-
์ธ๋ฒ์งธ ์ ๊ทผ
- set์ key ๊ฐ์ ์ฐจ๋ณํ๋ฅผ ์ฃผ๊ณ , ์บ์ฑ๋ ๋ฐ์ดํฐ์ ์๋ช ์ ์งง๊ฒ ํด์ค โ ์คํจ
-
๋ค๋ฒ์งธ ์ ๊ทผ
- ๋ฐ์ดํฐ๊ฐ ๋ณ๋๋ ๋๋ง๋ค ์บ์ฑ ๋ฐ์ดํฐ ์์ โ ์ฑ๊ณต โ ๋ฐ์ดํฐ์ ๋ณ๋์ด ์์ ๋๋ง๋ค ์์ ์ ๊ฑฐ๋ญํ๋ค๋ณด๋ ํ์ฌ ์๋น์ค์์ ๋นํจ์จ์ ์ผ๋ก redis๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๊ณ ํ๋จ โ ๋ค๋ฅธ ๋ฐฉ๋ฒ ๋ชจ์
-
๋ค์ฏ์งธ ์ ๊ทผ
- ๋ฐ์ดํฐ์ ๋ณ๋์ด ์ ๊ณ , ์์ฃผ ํธ์ถ๋๋ ๋ฐ์ดํฐ๋ฅผ ํ๊ฒ์ผ๋ก ์บ์ฑ โ ์ฑ๊ณต
-
์คํจ์ ์ด์
์ ์ ๊ฐ๊ฐ์ key ๊ฐ์ ์ฐจ๋ณํ๋ฅผ ๋์ง ์์ ๋ชจ๋ ์ ์ ๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋ฌธ์ ๊ฐ ๋ฐ์์ ํ๋ ๊ฒ์ด๊ณ , ๋๋ฒ์งธ ์ ๊ทผ์์๋ ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋ ์บ์ฑ๋ ๋ฐ์ดํฐ๊ฐ ์ด์์๊ณ ์บ์ฑ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟ์ฃผ์ง ์์์ ์๊ฒผ๋ ๋ฌธ์ ์ด๋ค. ์ธ๋ฒ์งธ ์ ๊ทผ,๋ค๋ฒ์งธ ์ ๊ทผ์์๋ ์ฒ์์ ์๋ช ์ ์งง๊ฒ ํด์ ์บ์ฑ์ ์์ฃผ ํ๊ฒ ํ๋๋ฐ ์ ๋ง ์งง์ผ๋ฉด ์บ์ฑ์ ํ๋ ์ด์ ๊ฐ ์๋๊ฑฐ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๊ณ , ์ด๋์ ๋ ์๊ฐ์ ์ฃผ๋ฉด ๋๋ฒ์งธ ์ ๊ทผ์์์ ์ผ์ด ๋ฐ๋ณต๋์๋ค. ๋ฐ์ดํฐ๊ฐ ์๋ก ์๊ธฐ๊ฑฐ๋ ์์ ๋๊ณ ์ญ์ ๋ ๋๋ง๋ค ๋ ๋์ค์ ์ ๊ทผ์ ํ์๋๋ฐ ์ด๋ ๊ฒ ํ์ ์ ์ฐ๋ฆฌ์ ์๋น์ค ๋๋น ๋ ๋์ค์ ํฌ์๋๋ ๋น์ฉ์ด ๋๋ฌด ๋นํจ์จ์ ์ผ๋ก ๋์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ์ ๋ณํ๊ฐ ์์ฃผ ์ผ์ด๋์ง ์๋ ๊ณณ์ ์บ์ฑ์ ํ๊ธฐ๋ก ํ๋ค. (๋ค์ฏ๋ฒ์งธ ์ ๊ทผ)
Time ๊ด๋ จ ๋ฌธ์
-
๋ฌธ์ ์ํฉ
- ์๊ฐ์ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์์ด ํ๋ก ํธ์์ ๋ฐฑ์ผ๋ก ์์ ๋ ์๋ฒ์ ์ ์ฅ๋์์ ๋ ์๊ฐ์ด ๋ค๋ฅธ ๋ฌธ์
-
์ฒซ๋ฒ์งธ ์ ๊ทผ
- ํ๋ก ํธ์์ ์๊ฐ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ฉด ์ํ๋ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝ โ ์คํจ(์๋ต์๋ ๋ถ๋ง์กฑ)
-
๋๋ฒ์งธ ์ ๊ทผ
- ๋ฐฑ์์ ์ผ๊ด์ ์ผ๋ก 9์๊ฐ์ ๋ํ๊ฑฐ๋ ๋นผ๋ ์ฒ๋ฆฌ์์ โ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํด๊ฒฐํ ์ ์์(์คํจ)
-
์ธ๋ฒ์งธ ์ ๊ทผ
- ์๊ฐ ๋ฐ์ดํฐ๋ฅผ string ๊ฐ์ผ๋ก ์ ์ฅํ๋ค๊ฐ ํ์์์ ๋ณํ โ ์ฑ๊ณต โ ๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ ์ด ์๋
-
๋ค๋ฒ์งธ ์ ๊ทผ
- timezone ์ค์ ์ ํ์ฌ UTC๊ธฐ์ค์ผ๋ก ์ ์ฅํ๊ณ ์ง์ญ๋์ ๋ง๊ฒ ํด๋ผ์ด์ธํธ์์ ์ฒ๋ฆฌ โ ์ฑ๊ณต
-
์คํจ์ ์ด์
ํ๋ก ํธ๊ฐ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์ ๋์ด ์๋ ํ์ค ์๊ฐ๋๋ ์๊ณ ์๋ฒ๋ ์ค์ ๋ ํ์ค ์๊ฐ๋๊ฐ ์์์ต๋๋ค. ์ธ๊ณ์์ ํ๊ตญํ์ค์์ 9์๊ฐ์ ์ฐจ์ด ๋๋ฌธ์ ์ฒ์์๋ 9์๊ฐ์ ์ฐจ์ด๋ฅผ ๋ฐฑ์์ ์ง์ ์ ๋ ฅ์ ํด์ฃผ๊ณ ํ์ง๋ง ์บ๋ฆฐ๋๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์์ด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ํด๊ฒฐํ ์ ์๋ ์ํฉ์ด ๋ฐ์ํ๊ณ , ๊ฐ๊ณต์ ์ด๋ป๊ฒ ํด๋ ๊ฒฐ๊ตญ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค. ๊ทธ๋์ UTC ๊ธฐ์ค์ผ๋ก ์ ์ฅํ๊ณ ํด๋ผ์ด์ธํธ์์ ์ฒ๋ฆฌ๋ฅผ ํด์ ํด๋ผ์ด์ธํธ์ ์๊ฐ๋๋ฅผ ๋ฐ๋ผ๊ฐ๊ฒ ํ์ต๋๋ค.
์์ ๋ก๊ทธ์ธ ๋ฌธ์
- ๋ฌธ์ ์ํฉ
- passport๋ฅผ ํ์ฉํด ์์ ๋ก๊ทธ์ธ ์๋โ์๋ฒ์์ ๋ณด๋ด๋ ์นด์นด์ค ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ํ๋ก ํธ์์ ๋ณด์ฌ์ง๊ธด ํ๋, ํ๋ก ํธ ์์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์
- ์ฒซ๋ฒ์งธ ์ ๊ทผ
- redirectURI์ callbackURL์ด ์๋ก ๋ค๋ฅธ ๊ฒ์ธ๊ฐ ๊ณ ๋ฏผํด๋ด
- ๋๋ฒ์งธ ์ ๊ทผ
- redirectURI์ callbackURL์ด ๊ฐ๋ค๋ ๊ฒ์์ ๊นจ๋ซ๊ณ ํ๋ก ํธ์ชฝ URI์๋ ๋ง์ถฐ๋ณด๊ณ ๋ฐฑ์๋์ชฝ URI์๋ ๋ง์ถฐ๋ด โ ์คํจ
- ์ธ๋ฒ์งธ ์ ๊ทผ
- passport์ ๋ต์ ์ฌ์ฉํ์ง๋ง๊ณ ๋ฐฑ์๋์์ axios๋ฅผ ํ์ฉํด ์์ ๋ก๊ทธ์ธ ๋ฐฉ์์ ํด๋ณด์๋ ์๊ฒฌ์ด ๋์ ์๋ํจ
- ๋ค๋ฒ์งธ ์ ๊ทผ - axios๋ฅผ ํ์ฉํด ์ ์ ์ ๋ณด๋ฅผ ๋ฐ์ ์จ ํ ์์ ๋ก๊ทธ์ธ์ ์ฑ๊ณต