2000๋ ๋ ์ค๋ฐ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ์น๊ฐ๋ฐ์ ์์ํ์ฌ ํ์ฌ๊น์ง ํ๋ฆฌ๋์ ๊ฐ๋ฐ์๋ก ํ๋ํ๊ณ ์์ต๋๋ค. ์ฝ5๋ ๊ฐ Amplix BI ์๋ฃจ์ ์ค๋ฌด์ ๊ต์ก์ ์งํํ๊ณ ๊ฐ๋ฐ์ ์ง์ํ๋ฉฐ ์๋ก์ด ๊ธฐ์ ์ ํจ์จ์ ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋ํ ๋ง์ ๊ฒฝํ๊ณผ ๊ณ ๋ฏผ์ ํ์ต๋๋ค.
ํ์ฌ๋ ๊ฐ๋ฐ ์ ๋ฌด์ ํจ๊ป ๊ฐ๋ฐ์๋ค์๊ฒ ๋์์ด ๋ ๋งํ ์น๊ด๋ จ ๋ถ์ผ์ ์๋ก์ด ๊ธฐ์ ์ ์ฐพ๊ณ ๊ฐ์ข์ ์ฑ ์ ํตํด ๊ณต์ ํ๊ณ ์์ต๋๋ค.
ํ) ํ๋ฆฌ๋์
์ ) (์ฃผ) ๋น์ฆํ๋ฌ๊ทธ ์ ๋ต์๋ฃจ์ ์ฌ์ ๋ถ ํ์ฅ
์ ) (์ฃผ) ํผ๋๋ชฝํค์ค ์๋์คํ ๋ฆฌ ์๋น์ค ๊ฐ๋ฐ ํ์ฅ
youtube: https://www.youtube.com/channel/UC3cJspjF4TRTyD_RS0azeaw
email: freeseamew@gmail.com
blog1: https://medium.com/freeseamew
blog2: https://dev.to/freeseamew
๊ฐ์ข ๋ชฉ๋ก
์ฐจ์ธ๋ Node.js ๋ฐฑ์๋ ์๋ฒ ๊ฐ๋ฐ(Fastify & Prisma & Typescript์ ํจ๊ปํ๋)
GraphQL ์์ ์ ๋ณต (๊ฐ์์ ํค์ค์คํฌ๋ฅผ ๊ตฌํํ๋ฉฐ ๋ฐฐ์ฐ๋ ํ์คํ ๊ณผ์ )
์ถ๊ฐ๋์
yes24, ๊ต๋ณด๋ฌธ๊ณ , ์๋ผ๋
Courses
Reviews
- Next-Generation Node.js Backend Server Development (with Fastify & Prisma & Typescript)
- Svelte REST-API project
- Web frontend starting with Svelte
- Web frontend starting with Svelte
- Next-Generation Node.js Backend Server Development (with Fastify & Prisma & Typescript)
Posts
Q&A
prisma migrate ์ค๋ฅ
์ผ๋จ ์ค๋ฅ ๋ด์ฉ ์์ผ๋ก๋ .env์ ์ค์ ๋ postgresSql ๊ด๋ จ DB์ ๋ณด๋ฅผ ํตํด์ ์๋น์ค ์ฐ๋์ด ํ๋ค๋ค๊ณ ๋์ค๋ ๊ฒ ๊ฐ์ต๋๋ค.๋ค์ ์ ๋ณด๋ค์ ํ์ธํด ๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.์์ ํ๋ ์๋ฒ์์ postgresDB์ ์ ์๊ฐ๋ฅํ๊ฐ? (์ ์ ๊ถํ ๋ฑ๋ ํ์ธ ํ์)schmea.prisma ์ datasource db์ provider๊ฐ postgresql๋ก ๋์ด ์๋์ง?.nev์ ์์ฑ๋ DB์ฐ๋ ์ ๋ณด๊ฐ ์ ํํ๊ฐ?.env์ postgres๋ฅผ ํตํด์ ์์ ํด ๋ณธ ๊ฒ์ด ์ค๋๋์ ์ ํํ ๊ธฐ์ต๋์ง ์์ง๋ง ๋๋ต์ ์ผ๋ก ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ ํ ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.DATABASE_URL="postgresql://์ ์ ์ด๋ฆ:์ ์ ํจ์ค์๋@localhost:5432/๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฆ?schema=public ๋ prisma ์ฌ์ดํธ์ ๊ณต์ ๋ฌธ์์์ postgres๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ๋ ํ์ธํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. https://www.prisma.io/docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-postgresql
- 0
- 2
- 37
Q&A
๋ชจ๋ ๋ฒ์ ์ด ์๋ง์์ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ์ต๋๋ค;;;
์ผ๋จ ํด๋น ๋ฉ์์ง๋ง์ผ๋ก ์ค๋ฅ๋ฅผ ํ๋จํ๊ธฐ๋ ์ด๋ ต๊ณ ,ํน์ meteor ๋ฒ์ ์ด ์ด๋ป๊ฒ ๋๋์ง ํ์ธํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค..meteor/release ํ์ผ์ ์ด์ด๋ณด๋ฉด ๋ฒ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.๋ง์ฝ 2.14 ๋ฒ์ ์ด์์ผ ๊ฒฝ์ฐ ์ผ๋จ ์ค์น๋ ๋ฏธํฐ์ด๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๋ช ๋ น์ด๋ก ํด๋น ๋ฒ์ ์ด ๋ฏธํฐ์ด๋ฅผ ๋ค์ ์ค์นํ์๊ธฐ ๋ฐ๋๋๋ค.npm i meteor@2.14 ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๊ณ์ ์ค๋ฅ๊ฐ ๋๋ค๋ฉดํ๋ก์ ํธ ํด๋๋ฅผ ์์ถํด์ ๊ตฌ๊ธ๋๋ผ์ด๋ธ ๋ฑ์ ์ฌ๋ฆฐ ํ ์๋ ๋ฉ์ผ๋ก ๋ณด๋ด์ฃผ์๋ฉด ์ ๊ฐ ํ ์คํธ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.freeseamew@gmail.com
- 0
- 2
- 119
Q&A
meteor ๋ฒ์ ๋๋ฌธ์ ์คํ์ด ์๋ฉ๋๋ค.
์๋ง๋ ๊ฐ์ข์ ์ฌ์ฉ๋ ๋ฒ์ ์ดํ์๋ฏธํฐ์ด๊ฐ ์ค์น๋์ด ๋ฐ์ํ๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.๋ฏธํฐ์ด๋ฅผ ์ญ์ ํ ํ ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ ์ ๋ช ์์ ์ผ๋ก ๋ค์ํ๋ฒ ์ค์นํด์ฃผ์๊ธฐ ๋ฐ๋๋๋คnpm i meteor@2.14 ๋ ์์ ์ ์ผ๋ก ๋น๋ํ๊ธฐ ์ํด์๋ node๋ฒ์ ์ญ์ 14๋ฒ์ ์ผ๋ก ๋ง์ถ๋ ๊ฒ์ด ์ข์ต๋๋ค ๊ฐ์ข์ ํฌํจ๋ nvm์ ์ด์ฉํ๋ฉด node ๋ฒ์์ ์ํ๋๋ฐ๋ก ๋ณ๊ฒฝํ ์ ์์ ๊ฒ๋ฆฝ๋๋ค ์ฐธ๊ณ ๋ก ๋ฏธํฐ์ด3.0 ์ง์์ ์ถํ์ ์ฐ๋๋ ๋ค๋ฅธ ํจํค์ง ๋ค์ด ์์ ํ ๋๋ฉด ์งํ๋ ์์ ์ ๋๋ค ์ด์ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค ์ดํ ์๋๋ค๋ฉด ๋ค์ํ๋ฒ ๋ฌธ์ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค ๊ทธ๋ฆฌ๊ณ ํ์ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ ํ๊ฒฝ์ด ์๋๋ผ 5.6์ผ ์ดํ์ ํ ์คํธ๊ฐ ํ์ํ ๋ฌธ์๋ ๋ต๋ณ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค
- 0
- 2
- 79
Q&A
graghQL์ transaction ์ฒ๋ฆฌ์๋๊ฐ ๊ถ๊ธํฉ๋๋ค.
transaction ์ฒ๋ฆฌ๊ฐ ํ์ํcreate, updat, delete์ ๋ํ ์ค์ ์ ์ธ ๊ตฌํ์ ๊ฒฝ์ฐ ๊ฒฐ๊ตญ mutation์ ์์ฑ๋ ์๋ฒ์ DB์์ ํต์ ๋ถ๋ถ์์ ์ด๋ฃจ์ด ์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด DB์์ ํต์ ๋ถ๋ถ์ ๋ํ ์ฒ๋ฆฌ๋ REST ์๋ฒ๋ฅผ ๋ง๋ค๋์ ํฌ๊ฒ ๋ค๋ฅด์ง๋ ์์ต๋๋ค. graphql์์ ๊ฐ์กฐํ๋ ์ ์ฐ์ฑ์ ๊ฒฝ์ฐ ์๋น์ค๋ฅผ ๋ง๋ค๋ ๋ฐ์ดํฐ ์กฐํ์ ์ ํด์ง ํํ๊ฐ ์๋ ๋ค์ํ ํํ๋ฅผ ์กฐํํ ์ ์๊ฒ ๋ง๋ ๊ฒ์ด ํต์ฌ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์์ฑ๋ ์์ ๋ฅผ ๋ณด๋๋ผ๋ ์ถ๊ฐ, ์์ , ์ญ์ ๋ ๋ฑํ ์ํฉ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ ๋ถ๋ถ์ ์์ต๋๋ค. ์ ์ฐ์ฑ์ด ๊ฐ์กฐ๋ ๋ถ๋ถ์ ๋ฐ์ดํฐ ์กฐํ์ ๋ํ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.์ ๊ฐ ์ดํดํ ๋ถ๋ถ์ด ๋ค๋ฅธ ๋ถ๋ถ์ด๋ผ๋ฉด ๋ค์ ํ๋ฒ ๋ฌธ์ ๋ถํ ๋๋ฆฌ๊ฒ ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 66
Q&A
401 not expired token ์๋ฌ ๋ฉ์ธ์ง๋ ์ธ์ ์ฐ์ด๋์?
์ด๋ถ์ not ์ด ์ ๋ชป ๋ค์ด๊ฐ ๊ฒ ๊ฐ์ต๋๋ค.์ดํดํ์ ๊ฒ ์ฒ๋ผ 401์ ๊ฒฝ์ฐ ํ ํฐ์ด ์ ๋ชป ๋์์ ๋ ๋ณด์ฌ์ฃผ๋ ์ค๋ฅ๊ฐ ๋ง์ต๋๋ค.๊ทธ๋์ ์๋์ ๊ฐ์ด ์์ ํด์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ์ต๋๋ค. expired: { success: false, status: 401, message: 'Token Expired' },
- 0
- 2
- 96
Q&A
์ง๋ฌธ์์ต๋๋ค.
๊ฐ์ข์ ์ฌ์ฉ๋ svelte ๋ฒ์ ์ v3 ๋ฒ์ ์ ๋๋ค.ํ์ง๋ง v5์์๋ v3์ ์ฝ๋๋ฅผ ๋๋ถ๋ถ ์ฌ์ฉ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. (v5๊น์ง๋ v3์ ๊ธฐ๋ฅ๋ค์ ๋๋ถ๋ถ ํ์ ํธํ๋๋๋ก ํ๊ณ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. )๋ค๋ง meteor ํ๊ฒฝ์์ apollo๋ฅผ ์ด์ฉํ ๊ฐ๋ฐ์ ํ๊ธฐ ์ํด์๋ ํ์ฌ๊น์ง๋ v3๊ฐ ์์ ์ ์ธ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.๋ ์ด ๊ฐ์ข์์๋ svelte๊ธฐ์ด ๋ฌธ๋ฒ์ ๋ค๋ฃจ๋ ์ฑํฐ๊ฐ ์์ผ๋ ์ด ๊ฐ์ข๋ง์ผ๋ก ์ถฉ๋ถํ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.ํ์ง๋ง REST API๋ฅผ ์ด์ฉํด ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ๋ โSvelte REST-API ํ๋ก์ ํธโ ๋ผ๋ ๋ฌด๋ฃ ๊ฐ์ข๊ฐ ์์ผ๋ ์ด๋ฅผ ํจ๊ป ํ์ตํด ๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
- 0
- 2
- 63
Q&A
Meteor ์คํ ์ค๋ฅ ๋ฌธ์ ๋๋ฆฝ๋๋ค.
์ผ๋จ ์ค๋ฅ ์์ผ๋ก๋ cpu ํ์ ์ด ์ ๋ชป ๋๋ค๊ณ ๋์ค๋ ๊ฒ ๊ฐ์ต๋๋ค.ํน์ ์ฌ์ฉํ์๋ ํ๊ฒฝ์ด ๋งฅ๋ถ์ m1 ์ด์์ธ์ง ํ์ธํด ๋ณด์๊ณ ๋ง์ฝ m1 ํ์ (m1~m4๊น์ง) ์ด๋ผ๋ฉด ๋ก์ ํ๋ฅผ ์ด์ฉํด ์คํํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. (ํ์ฌ ์ ๊ฐ m1 ๊ณ์ด์ pc๊ฐ ์์ด ํ์ธ์ด ํ๋ค์ง๋ง meteor 2.5.1 ๋ฒ์ ์ดํ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก m1๊ณ์ด์ cpu๋ฅผ ์ง์ ํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ์๋๋ ๊ทธ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋งํฌ์ ๋๋ค. https://docs.meteor.com/about/install.html )๊ทธ๋ฆฌ๊ณ ํน์ ๋ค๋ฅธ os(์๋ฅผ ๋ค์ด ์๋์ฐ์ฆ) ํ๊ฒฝ์์ ์ด๋ฏธ npm install์ ์คํํ๊ณ ๊ทธ๊ฒ์ ํ์ฌ ์ฌ์ฉํ์๋ PC๋ก ๊ทธ๋๋ก ์ฎ๊ธฐ์ จ๋ค๋ฉด cpuํ์ ์ด ๋ฌ๋ผ ์คํ๋์ง ์์ ์ ์์ต๋๋ค. ์ด๋ด ๋์๋ ๊ทธ๋ฅ git์์ ๋ค์ ๋ค์ด๋ฐ์ npm install์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ด์ฐฎ์ผ์๋ค๋ฉด ์ฌ์ฉํ์๋ pc์ ํ๊ฒฝ์ ํ์ธ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- 0
- 1
- 137
Q&A
Swagger ๋ฌธ์ ์ ๊ทผ ๊ถํ
swagger์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก basic-auth๋ผ๋ ๊ฒ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.์ค์ ์ ๊ดํ์ฌ ๊ฐ๋จํ๊ฒ ์ค๋ช ์ ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.์ฐ์ fastify/basic-auth๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์นํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.์ฐธ๊ณ ๋ก ๊ฐ์ข์ fastify๋ฒ์ ์ ๊ฒฝ์ฐ v4๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ basic-auth๋ 5๋ฒ์ ์ ์ฌ์ฉํ์ ์ผ ํฉ๋๋ค. npm i @fastify/basic-auth@5 ๋ค์์ผ๋ก main.ts๋ฅผ ์ด๊ณ ํ์ํ ์ค์ ์ ํด์ผ ํฉ๋๋ค .fastify์์ ํ์ํ FastifyRequest, FastifyReply, HookHandlerDoneFunction์ ๋ถ๋ฌ์ค๊ณ ์ฌ๊ธฐ์ ์ค์นํ BasicAuth๋ฅผ ๊ฐ์ ธ์ ์ค๋๋ค.์ฌ๊ธฐ์ validateํจ์๋ฅผ ๋ง๋ค๊ณ ์ฌ๊ธฐ์์ ์์ด๋, ํจ์ค์๋๋ฅผ ํ์ธํ๋๋ก ์ค์ ํฉ๋๋ค๋ค์์ผ๋ก register๋ก basicAuth๋ฅผ ๋ฑ๋กํ๊ณ validate ํจ์๋ฅผ ์ฐ๋ํด ์ค๋๋ค.์ด์ addHook์ onRequest๋ฅผ ์ค์ ํ๊ณ ์ ๊ทผํ๋ url์ด documentation์ผ ๊ฒฝ์ฐ ์ด basic-auth๊ฐ ์๋ํ๊ฒ ๋ง๋ค๋ฉด ๋๊ฒ ์ต๋๋ค.์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ผ๋ก ๊ธฐ์กด ์์ ์ ๋ฌ๋ฆฌ main.ts์์ register๋ก ๊ฐ์ข ํ๋ฌ๊ทธ์ธ์ ๋ฑ๋กํ ๊ฒฝ์ฐ await์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.์ด๋ถ๋ถ์ ์ ์ํด์ ์ฌ์ฉํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. main.tsimport Fastify from 'fastify' import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox' import type { FastifyCookieOptions } from '@fastify/cookie' import fasstifyCookie from '@fastify/cookie' import routes from './routes' import { SECRET_KEY } from './lib/constants' import { currentlyAuthPlugin } from './plugin/authPlugin' import { checkStartupUser, checkStartupArticle } from './startup' import cors from '@fastify/cors' import fastifySwagger from '@fastify/swagger' import fastifySwaggerUi from '@fastify/swagger-ui' import { swaggerConfig, swaggerUiConfig } from './config/swagger' //์ถ๊ฐ์ฝ๋ import { FastifyRequest, FastifyReply, HookHandlerDoneFunction } from 'fastify' import BasicAuth from '@fastify/basic-auth'; const fastify = Fastify({ logger: true, // https: { // key: fs.readFileSync('./server.key'), // cert: fs.readFileSync('./server.crt'), // } }).withTypeProvider() // fastify.get('/ping', async (request, reply) => { // return 'pong\n' // }) // ๊ฐ register๋ฑ๋ก์ await ์ฌ์ฉ await fastify.register(cors, { origin: true, // Access-Control-Allow-Origin credentials: true, //Access-Control-Allow-Credentials }) await fastify.register(fastifySwagger, swaggerConfig) await fastify.register(fastifySwaggerUi, swaggerUiConfig) await fastify.register(fasstifyCookie, { secret: SECRET_KEY, } as FastifyCookieOptions ) await fastify.register(currentlyAuthPlugin) await fastify.register(routes) // basic-auth with swagger ์ถ๊ฐ ์ฝ๋ const authenticate = {realm: 'Westeros'} await fastify.register(BasicAuth, {validate, authenticate}) function validate (username:string, password:string, req:FastifyRequest, reply:FastifyReply, done:HookHandlerDoneFunction) { if (username === 'admin' && password === '1111') { done() } else { done(new Error('Winter is coming')) } } fastify.addHook("onRequest", (req:FastifyRequest, res:FastifyReply, done:HookHandlerDoneFunction) => { if (req.url.startsWith(`/documentation`)) { fastify.basicAuth(req, res, done); } else { done(); } }) const start = async () => { try { await checkStartupUser() await checkStartupArticle() await fastify.listen({port: 8083}) console.log(`Server Start!!`) } catch(error) { fastify.log.error(error) process.exit(1) } } start()
- 0
- 1
- 140
Q&A
Window ํ๊ฒฝ์์ meteor ์ค์นํ๋ ๋ถ๋ถ์ ๋ํด ์ค์ตํ๊ฒฝ ๊ตฌ์ถ ๋ถ๋ถ์ ์ถ๊ฐ๋ด์ฉ์ด ์์ต๋๋ค.
windows, mac ๋ชจ๋ npm ๋ช ๋ น์ด๋ก ์ธ์คํจ์ด ๊ฐ๋ฅํฉ๋๋ค.ํ์ง๋ง ์ผ๋ง์ meteor version3๋ก ์ ๋ฐ์ดํธ ๋์ด ๊ฐ์ข์์ ์ฌ์ฉํ version2์ ํธํ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค.๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด meteor๋ค์ @2๋ฅผ ์์ฑํด์ meteor version2๋ฅผ์ค์นํ์๊ธฐ ๋ฐ๋๋๋ค. npm install -g meteor@2
- 0
- 3
- 163
Q&A
์ฑ์ refreshToken์ ์ ์กํ ๋ ๊ถ๊ธํ์ ์ด ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ ๋ณดํต ์น ๊ธฐ๋ฐ์ ์๋น์ค์ ํ์ด๋ธ๋ฆฌ๋์ฑ ์ ์์ ์ฃผ๋ก ํด์ ๋ค์ดํฐ๋ธ์ ๋ํ ์ง์์ ํ์ ์ ์ด๋ผ๋ ๊ฒ์ ์ฐ์ ์ํด ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค.jwt์ ํต์ฌ์ ๊ฒฐ๊ตญ json ํค๋ฅผ ์ด์ฉํ ์ธ์ฆ์ด๊ธฐ ๋๋ฌธ์ cookie๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ฉด access token๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก json ํ์ผ์ header๋ฑ์ ์ค์ด ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ์ฌํํ ๋ฐฉ๋ฒ์ผ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.๋์ ํค์ ์ ์ฅ์ ios๋ ์๋๋ก์ด๋์์ ์ข ๋ ์์ ํ ๊ณณ์ ๋ณด๊ดํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์ ๊ด๋ฆฌ๋ฅผ ํด์ผ ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
- 0
- 2
- 240