javascript(44)
-
[ JavaScript ์๊ณ ๋ฆฌ์ฆ (ํ๋ก๊ทธ๋๋จธ์ค)] ๋ฌธ์์ด์์ ๋ฌธ์์ด
๋ฌธ์์ด์์ ๋ฌธ์์ด 1. ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด str1, str2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. str1 ์์ str2๊ฐ ์๋ค๋ฉด 1์ ์๋ค๋ฉด 2๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ 1 ≤ str1์ ๊ธธ์ด ≤ 100 1 ≤ str2์ ๊ธธ์ด ≤ 100 ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์, ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. 2. ์ ์ถ๋ ฅ ์ ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 "ab6CDE443fgh22iJKlmn1o" str1์ str2๊ฐ ์กด์ฌํ๋ฏ๋ก 1์ returnํฉ๋๋ค. ์ ์ถ๋ ฅ ์ #2 "ppprrrogrammers" str1์ str2๊ฐ ์์ผ๋ฏ๋ก 2๋ฅผ returnํฉ๋๋ค. ์ ์ถ๋ ฅ ์ #3 "AbcAbcA" str1์ str2๊ฐ ์์ผ๋ฏ๋ก 2๋ฅผ returnํฉ๋๋ค. [ ๋ด๊ฐํ ๋ฌธ์ ํ์ด ] function ..
2023.11.23 -
[ JavaScript ์๊ณ ๋ฆฌ์ฆ (ํ๋ก๊ทธ๋๋จธ์ค)] ํธ์ง
ํธ์ง 1. ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ ํ ๋จธ๋๊ป ์์ ์ถํ ํธ์ง๋ฅผ ์ฐ๋ ค๊ณ ํฉ๋๋ค. ํ ๋จธ๋๊ฐ ๋ณด์๊ธฐ ํธํ๋๋ก ๊ธ์ ํ ์ ํ ์๋ฅผ ๊ฐ๋ก 2cm ํฌ๊ธฐ๋ก ์ ์ผ๋ ค๊ณ ํ๋ฉฐ, ํธ์ง๋ฅผ ๊ฐ๋ก๋ก๋ง ์ ์ ๋, ์ถํ ๋ฌธ๊ตฌ message๋ฅผ ์ ๊ธฐ ์ํด ํ์ํ ํธ์ง์ง์ ์ต์ ๊ฐ๋ก๊ธธ์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๊ณต๋ฐฑ๋ ํ๋์ ๋ฌธ์๋ก ์ทจ๊ธํฉ๋๋ค. 1 ≤ message์ ๊ธธ์ด ≤ 50 ํธ์ง์ง์ ์ฌ๋ฐฑ์ ์๊ฐํ์ง ์์ต๋๋ค. message๋ ์๋ฌธ ์ํ๋ฒณ ๋์๋ฌธ์, ‘!’, ‘~’ ๋๋ ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. 2. ์ ์ถ๋ ฅ ์ ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 message์ ๊ธ์ ์๊ฐ 15๊ฐ๋ก ์ต์ ๊ฐ๋ก 30cm์ ํธ์ง์ง๊ฐ ํ์ํฉ๋๋ค. ์ ์ถ๋ ฅ ์ #2 message์ ๊ธ์ ์๊ฐ 11๊ฐ๋ก ์ต์ ๊ฐ๋ก 22cm..
2023.11.23 -
[ TIL ] [ ์ ๊ท๊ณผ์ : ์ค์ ํ๋ก์ ํธ์ฃผ์ฐจ ] ๊ธฐ์ ๋ฉด์ ๋๋น 1. Hoisting, async/await, Arrow Function
Q1. Hoisting์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์? ๋ณ์์ ํจ์ ์ ์ธ์ด ๊ทธ๋ค์ ์ค์ฝํ ์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ๋์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๋์์ ์คํ ์ปจํ ์คํธ์ ์์ฑ ๋จ๊ณ์์ ๋ฐ์ํ๋ค. (๋๋ ์ฒ์, ํธ์คํ ์ผ๋ก ๊ณต๋ถํด๋ฒ๋ ธ๋ค... ํธ์ด์คํ ์ด๋ผ๋๊ฑธ ๋ค์ ํ์ธํ๊ณ , ์๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํด์ ๊ณต๋ถํ๋ค.) https://tecoble.techcourse.co.kr/post/2021-04-25-hoisting/ ํธ์ด์คํ ์ ๋ํ ์คํด์ ์ง์ค … tecoble.techcourse.co.kr Q2. async/await ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์? async์ await๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด ์ค ๊ฐ์ฅ ์ต๊ทผ์ ๋์จ ๋ฌธ๋ฒ์ ๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ธ ์ฝ๋ฐฑ ํจ์์ ํ๋ก๋ฏธ์ค์ ๋จ์ ์ ๋ณด์ํ๊ณ ..
2023.10.12 -
[ TIL ] [ ์ ๊ท๊ณผ์ : ์ฃผํน๊ธฐํ๋ก์ ํธ์ฃผ์ฐจ ] PRISMA schema 1:1๊ด๊ณ / 1:N๊ด๊ณ
์ฃผํน๊ธฐ์์ ๋ฐฐ์ด API์์ฑ, ๊ทธ๋ฆฌ๊ณ ERD๋ฅผ ์ ์ํ๋ค. ๊ต์ก๋ฐ์ ๋๋ณด๋ค ํ๋ก์ ํธ์ ์ค์ฝํ๊ฐ ์กฐ๊ธ ์ปค์ก๋ค๊ณ ๊ทธ๋งํผ ์์ฑ์๋ ์ด๋ ค์์ ๋๊ผ๋ค. ERD๋ ์ปฌ๋ผ์ด ๋ช ๊ฐ ๋ ์๊ธฐ๋, ์ ๋ฆฌ๊ฐ ๋์ง ์๊ณ ์ฐ๊ฒฐ์ด ์ด๋๋ก ๋์ด์ผ ํ ์ง ๋ณต์กํด์ง๊ธฐ ์์ํ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋, API์์ฑ๊ณผ, schema๋ฅผ ์์ฑํ๋๋ฐ๋ ๊ณ์ ๋น ๊ณณ์ด ๋ฐ๊ฒฌ๋์๋ค. ํ์ ์ ๊ฐ๋ฉด ์ด๊ฒ๋ณด๋ค ๋ช ๋ฐฐ๋ ๋ ํฐ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋ ๊ฑด๋ฐ, ๊พธ์คํ ๊ณต๋ถํด์ผ๊ฒ ๋ค! ERD๋ง๋ค๊ธฐ : https://drawsql.app/teams/no-55/diagrams/prisma-community-hub Prisma-Community-Hub | DrawSQL Database schema diagram for Prisma-Community-Hub. drawsql.app [ ๋ผ์ด๋ธ..
2023.09.16 -
[ TIL ] [ ์ ๊ท๊ณผ์ : ์ฃผํน๊ธฐ์ฃผ์ฐจ ] JWTํ ํฐ (.env๋ก SECRET_KEY์ฒ๋ฆฌ๊น์ง!)
๊ฒ์๊ธ์ ๋ง๋๋ LEVEL3์ ํ๊ณผ์ ์์ ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ์์ ๋, JWT ํ ํฐ์ ๋ฐ๊ธํ๋๋ก ํ๋ค. ๋๋, JWTํ ํฐ์ ๋จ์ํ๊ฒ ์ฐ๊ธฐ๋ง ํ๊ณ JWT๋ฅผ secret_key๋ก ์ฒ๋ฆฌํ์ง ์์๋ค. ์์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ JWT์ ๋ชฉ์ ์ ์์ค ํ๊ฒ์ด๋ค. ์์ฐํ ๋งํ์๋ฉด secret_key ํ์ฉํด์ผ์ง ๋ผ๋ ์ฃผ์๋ง ๋ฌ์๋๊ณ ์ ์ . envํด๋์๋ ์๋ฌด๊ฒ๋ ์ฐ์ง ์์๋ค. ๊ทธ๋ ๋ค. ๋๋ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ชฐ๋๋ค(?) ์ฝ๋๋ฆฌ๋ทฐ ์๊ฐ์ ์ด ๋ถ๋ถ์ ๋ํ ํผ๋๋ฐฑ์ด ์์๊ณ , ๋ช ์๋ง ํ๋ฉด ์ด์ฐ ๋ ์ค ์์๋๋ฐ. env ํด๋ ์์ ๋ค์ด๊ฐ ๋ณด๋ ์ ๋ง ๋ฐ๋ก ํ๊ธฐ๋ ๋ถ๋ถ์ด ์์๋ค. ๊ฐ์ฌํ๊ฒ๋ ํผ๋๋ฐฑ๊ณผ ์ฌ์ฉ๋ฒ์ ํจ๊ป ์๋ ค์ฃผ์ จ๊ณ Til๋ก ์ถ๊ฐ ์ ๋ฆฌํ๋ฉด์ ์ดํด๋ณด๋,. envํ๊ฒฝ๋ณ์๋ก host.pass, user ๋ฑ์ secret์ผ๋ก ์ฒ๋ฆฌํ๊ณ ..
2023.09.11 -
[ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] JWT(Json Web Token)
JWT(Json Web Token) JWT(Json Web Token)์ ์น ํ์ค์ผ๋ก์จ, ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํด ๋์์ ์ฃผ๋ ์น ํ ํฐ(Web Token)์ด๋ค. JSON ํํ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ณ ๊ฒ์ฆํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต. ์ธํฐ๋ท ํ์ค์ผ๋ก์ ์๋ฆฌ ์ก์ ๊ท๊ฒฉ์ด๋ค. ๋ค์ํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์์ด, ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค. header/ payload/ signature์ ํ์์ผ๋ก 3๊ฐ์ง์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค. (๊ฐ๋ฏธ์ฒ๋ผ ๋จธ๋ฆฌ, ๊ฐ์ด, ๋ฐฐ) ์ถ๊ฐ๋ก ํน์ง์ ๋ ์์๋ณด์๋ฉด, 1) JWT๋ ๋น๋ฐ ํค๋ฅผ ๋ชจ๋ฅด๋๋ผ๋ ๋ณตํธํ(Decode)๊ฐ ๊ฐ๋ฅํ๋ค. JWT๋ฅผ ๊ฐ์ง ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ํด๋น ํ ํฐ์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋์ง ํ์ธํ ์ ์๋ค. ๋ณ์กฐ๋ง ๋ถ๊ฐ๋ฅ ํ ๋ฟ, ๋๊ตฌ๋ ๋ณตํธํํ..
2023.09.11