nestjs๋ก ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ winston์ ์ด์ฉํด logging์ ์ ์ฉํ ๊ฒฝํ์ ๊ธฐ๋กํฉ๋๋ค. ๋ค์ ์์๋ก ๊ธฐ๋กํฉ๋๋ค. http-logger-middleware ์ ์ฉ (morgan X) nest-winston + winston-daily-rotate-file log๋ฅผ ๋จ๊ฒจ์ผํ๋ ์ด์ log๋ฅผ ๋จ๊ฒจ์ผํ๋ ์ด์ ๋ ๋ค์ํ๊ฒ ์ง๋ง ๋ด๊ฐ ํด๋น ์ฌ์ด๋ ํ๋ก์ ํธ์์ log๋ฅผ ๋จ๊ฒจ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๋ณดํต ํผ๋๋ฐฑ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ด๋ค. ์์ ๋ ์๋น์ค๋ฅผ ์ํด log๋ฅผ ํตํ ์๋น์ค ์ํ ๋ฐ ๋ก์ง์ ์ถ์ error ๋ฐ์ ์์ error ์ํฉ ์ถ์ file ํํ๋ก log๋ฅผ ๋จ๊ฒจ ์ ๊ณผ์ ์ ์ข ๋ ์ ์ฐํ๊ฒ ๋ง๋ค๊ธฐ ๋ก๊ทธ๋ฅผ ํ์ฉํ ๋ชจ๋ํฐ๋ง ํ๊ฒฝ ๊ตฌ์ถ http-logger-middleware ์ ์ฉํ๊ธฐ ๋จผ์ ,..
์ด๋๋ง 2021๋ ์ด ์ง๋๊ฐ๊ณ , 2022๋ ์ด๋ค. ์๊ฐ์ด ์ ์ด๋ ๊ฒ ๋น ๋ฅธ์ง,, ๋์๋ณด๋ฉด ์ ๋ง ๋ง์ ๊ฒ๋ค์ ํ๊ณ , ๋๋ฌด ๊ณ ์ํ๋ค. ๊ทธ๋ ์ง๋ง ๋ง์ ํ ์ผ ์๋ ์์ฌ์์ด ๋ง์ด ๋จ๋๋ค. ๊ทธ๋์ 2021๋ ์ ์๋ฐ๊ธฐ์ ํ๋ฐ๊ธฐ๋ก ๋๋์ด ๋๋์๋ณด๋ฉด์ ์์ฌ์์ ๋ฌ๋๊ณ ์๋์ง๋ฅผ ์ถฉ์ ํด๋ณด์ 2021 ์๋ฐ๊ธฐ 2021 ์๋ฐ๊ธฐ์๋ ํ๊ต๋ฅผ ์กธ์ ํ๊ณ ์ ๋ณด์ฒ๋ฆฌ๋ถ์ผ ์ฐ์ ๊ธฐ๋ฅ์์(๋ณ์ญํน๋ก) ์ทจ์ ์ ์ํด์ ์๊ฐ์ ์ ๋ถ ๋ณด๋ธ ๊ฒ ๊ฐ๋ค. ์ทจ์ ์ ์ค๋นํ๋ฉด์ ์ฌ๋ฌ ๋์ ์ ํด๋ดค๊ณ , ํํ๋ ํด๋ดค๊ณ , ์จ์ ํ ๋ํํ ์ง์คํด์ ์๋์ง๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์๊ฐ์ด์๋ค. ๊ทธ ์ด์ผ๊ธฐ๋ฅผ ํ๋์ฉ ํ์ด๋ณด๋ ค๊ณ ํ๋ค. ์กธ์ ์ ํ๊ณ ๋ ๋ฐฑ์๊ฐ ๋์๋ค 2021๋ 2์์ ์ง ๊ทผ์ฒ์ ์๋ ์์ธ 2๋ ์ ์ปด๊ณต๊ณผ๋ฅผ ์กธ์ ํ๊ณ ์ ๋ฌธํ์ฌ์ ์ ๋ณด์ฒ๋ฆฌ์ฐ์ ๊ธฐ์ฌ๋ฅผ ๋ค๊ณ ์กธ์ ํ๋ค. ์ด๋๊น์ง ๋ ๊ทธ๋ค์ง ์ทจ์ ..
๊ฐ์ ํ๋ก์ ํธ์์ JPAํ๊ฒฝ์์ UUID๋ฅผ PK๋ก ๋์ ํ๋ ๊ณผ์ ์์ ๋ถํธํ๋ ์ ๋ค๊ณผ ๊ฐ์ ํ ๊ฒฝํ๋ค์ ๊ธฐ๋กํ๋ค. UUID๋? + ๋์ ๊ณ ๋ฏผ UUID(๋ฒ์ฉ ๊ณ ์ ์๋ณ์(universally unique identifier))๋ 128๋นํธ์ ์์ด๋ค. ํ์ค ํ์์์ UUID๋ 32๊ฐ์ 16์ง์๋ก ํํ๋๋ฉฐ ์ด 36๊ฐ ๋ฌธ์(32๊ฐ ๋ฌธ์์ 4๊ฐ์ ํ์ดํ)๋ก ๋ 8-4-4-4-12๋ผ๋ 5๊ฐ์ ๊ทธ๋ฃน์ ํ์ดํ์ผ๋ก ๊ตฌ๋ถํ๋ค. ์ด๋ฅผํ ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 550e8400-e29b-41d4-a716-446655440000 ์์์ UUID์ ๋ํด ์ด์ง ์์๋ดค๋ค. ํ์๋ UUID๋ ๊ฑฐ์ ์ค๋ณต๋์ง ์๋ ๊ธ๋ก๋ฒ ์ ๋ํฌ ๊ฐ์ด๋ค ๋ผ๋ ๊ฒ์ ์ฃผ๋ชฉํ๊ณ , React Dom์ด ๋ณ๊ฒฝ ๊ฐ์ง๋ฅผ ํ๋ ๊ธฐ์ค์ด key๊ฐ์ธ๋ฐ key๊ฐ์ ์ค๋ณต๋๊ธฐ ์ฝ๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ..
๊ฐ์ nginx ์ค์ ์ค์ ์ค์ ํ directory๋ฅผ ์ฐพ์ง ๋ชปํ๋ ๊ฒ์ผ๋ก ํ๋จ๋์ด log๋ฅผ ํ์ธํด๋ณด๋ 403 (13: Permission denied) ์๋ฌ๊ฐ ๋ฐ์ํ์๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํฉ๋๋ค. error ๋ฐ์ ์ํฉ server { listen 80; root /xxx/xxx/build; index index.html; server_name _; location / { try_files $uri $uri/ /index.html; } } /etc/nginx/sites-available/default์ ์์ ๊ฐ์ด ์ค์ ์ ํด๋๊ณ ํด๋น ํฌํธ๋ก ์ ์ํด๋ณด๋ 500 Error์ ํจ๊ป ํ์ด์ง๋ฅผ ์ฐพ์ ์ ์์๋ค. ๊ทธ๋์ ๋ฐ๋ก log๋ฅผ ํ์ธํด๋ณด์๊ณ , /var/log/nginx/error.log์์ ๋ค์๊ณผ ๊ฐ์ ..
๊ฐ์ Spring-validation์ ๋ํด์ ํ์ตํ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํด๋น ๊ธ์ spring-boot 2.5.2 ์์ ์งํ๋์์ต๋๋ค. Spring Validation์ ์ด๋ ธํ ์ด์ ์ผ๋ก ๊ฐํธํ๊ฒ ํน์ ๊ฐ์ validationํ ์ ์๋๋ก ๋์์ค๋๋ค. Gradle spring validation ์ฌ์ฉ์ ์ํด์ ๊ทธ๋์ด๋ค ์์กด์ฑ์ ์ถ๊ฐํฉ๋๋ค. dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-validation' ... } ์์ spring-validation์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๋ง๋ Annotation์ ๋ถ์ฌ์ค์ผ๋ก์จ ๊ฐ์ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ๋จผ์ ์๋ ์์ ์ฝ๋๋ฅผ ๋ณด๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๊ฐ์ ์ก์๋ณด์ธ์. ์๋ช ์ด ..
๊ฐ์ 21.06.01 ~ 21.06.24 4์ฃผ๊ฐ ์จ๋ผ์ธ์ผ๋ก ์งํ๋ ์ฐ์ํ ํ ํฌ๋ฌ๋ 4๊ธฐ์ ๋ํ ํ๊ณ ๊ธ์ ๋๋ค. ์ฐ์ํํ ํฌ๋ฌ๋ 4๊ธฐ ์ฐ์ํํ ํฌ๋ฌ๋ 4๊ธฐ๋ ๊น๋ฏผํ ์ด์ฌ๋๊ป์ ๋ฆฌ๋ํด์ฃผ์๊ณ 6์ 1์ผ ~ 6์ 24์ผ๊น์ง ๋งค์ฃผ ํ, ๋ชฉ 2๋ฒ์ฉ ์ด 8ํ ์จ๋ผ์ธ์ผ๋ก ์งํํ ๊ต์ก ํ๋ก๊ทธ๋จ์ ๋๋ค. ์ง์ ๋๊ธฐ์ ์ ๋ฐ ๊ณผ์ ์ ๋ ํ๊ต์์๋ถํฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฃผ๋ก ํด์ค๋ค๊ฐ ์ต๊ทผ์ ํ๋ก ํธ์ชฝ์ ๊ด์ฌ์ด ์๊ฒจ์ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ๊ณ ์์๋๋ฐ์! ์ฐ์ฐํ GitHub์ Dev-Event ๋ฆฌํฌ๋ฅผ ํตํด์ ์ฐ์ํํ ํฌ๋ฌ๋์ ๋ํด์ ์๊ฒ ๋์์ต๋๋ค. ๋น์์ ์ํตํ ๊ต์ก์ ์ฐธ์ฌํด์ ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ๊ณต์ ํ๊ณ ์ถ์๊ณ , ์ธ์ ๊ฐ ์๋์ด ๊ฐ๋ฐ์๊ฐ ๋๋ ๊ฒ์ ์ค๋นํ๊ธฐ ์ํด์ ์๋์ด ๊ฐ๋ฐ์์ ์์ ๋ ๊ถ๊ธํ์ด์ ๊ทธ๋ฆฌ๊ณ ์ฐ์ํํ์ ๋ค์ ๊ด์ฌ์ด ์๊ธฐ๋ ํด์ ์ง์ํ๊ฒ ๋์..
๊ฐ์ ์ฐ์ํํ ํฌ๋ฌ๋ ๋์ค dispatch๋ผ๋ ๋จ์ด๋ฅผ ์๊ฒ ๋์๊ณ , ์ด ๋จ์ด์ ์ด์์ ์ฐพ์๊ฐ๋ ์ค ํ๋ก์ธ์ค์ ๋ํด์ ์ด์ผ๊ธฐ๊ฐ ๋์ค๊ณ ๋จธ๋ฆฌ ์์ ์ ์ ๋ฆฌ๋์ง ์์ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ์ ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ ๊ธ์ด๋ค. ํ๋ก์ธ์ค ํ๋ก์ธ์ค(process)๋ ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค. ์ข ์ข ์ค์ผ์ฅด๋ง์ ๋์์ด ๋๋ ์์ (task)๋ผ๋ ์ฉ์ด์ ๊ฑฐ์ ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ธ๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฉํฐํ๋ก์ธ์ฑ์ด๋ผ๊ณ ํ๋ฉฐ ๊ฐ์ ์๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์ฐ๋ ์๋ถํ ๋ฐฉ์์ ๋ฉํฐํ์คํน์ด๋ผ๊ณ ํ๋ค. ํ๋ก์ธ์ค ๊ด๋ฆฌ๋ ์ด์ ์ฒด์ ์ ์ค์ํ ๋ถ๋ถ์ด๋ค. ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค ํ๋ก๊ทธ๋จ ์ผ๋ฐ์ ์ผ๋ก ํ๋๋์คํฌ ๋ฑ์ ์ ์ฅ๋์ด ์๋ ์คํ ์ฝ๋ ํ๋ก์ธ์ค ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ์ฌ ํ๋ก๊ทธ๋จ ์์ฒด์ ํ๋ก๊ทธ๋จ์ ์ํ๊ฐ ๋ฉ๋ชจ..
JSON WEB TOKEN JWT๋? ํ ํฐ ์์ฒด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ ๋ฌด๊ฒ์ง ์๊ณ ๊ฐํธํ๊ณ ์ฝ๊ฒ ์ ์ฉ ๊ฐ๋ฅ Base64 URL Safe Encoding์ ์ด์ฉํด์ URL, Cooke, Header ๋ฑ์ ์ฌ์ฉ ๊ฐ๋ฅ ์ค์์ ์ธ์ฆ ์๋ฒ, ๋ฐ์ดํฐ ์คํ ์ด์ ๋ํ ์์กด์ฑ์ด ์์ด์ ์์คํ ์ํ ํ์ฅ์ ์ ๋ฆฌํจ → ๊ธฐ์กด์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ธ์ ์ ์ ์ฅํ๋ ๋ฐฉ์์ ํด๋น ์๋ฒ์์๋ง ํด๋น ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์์ด์ ๋ฐ๋ก ์ธ์ ์๋ฒ๋ฅผ ๋ฌ์ผํ์ง๋ง, ํ ํฐ์ ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ธ์ ์๋ฒ๊ฐ ํ์ ์์ด์ง. JWT๋ ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ aaaaaa.bbbbbb.cccccc // ์์์๋ถํฐ .์ ๊ธฐ์ค์ผ๋ก ๋ค์๊ณผ ๊ฐ์ // ํค๋(header).๋ด์ฉ(payload).์๋ช (signature) ํค๋(Header) S..
- Total
- Today
- Yesterday
- mysql ์คํ ๊ณํ
- 2023 ํ๊ณ
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- Go
- ์ฅ์ ํ๊ณ
- ํด์
- ํ(Heap)
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- grpc client
- ์คํ/ํ
- mysql
- golang oomkilled
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- HTTP
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- 2๋ ์ฐจ ์๋ฒ ๊ฐ๋ฐ์
- rate limit
- ์ข์ ๊ฐ๋ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ข์ ์์ง๋์ด
- ์ถ์ ์ง๋
- Golang
- kotlin s3 upload
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- Aws Reinvent 2023
- ์ข์ ์ฝ๋๋ ๋ฌด์์ธ๊ฐ?
- ์ฝ๋ฉํ ์คํธ
- AWS re:Invent 2023
- ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ์
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |