๋งจ๋ ์ ํด์ ธ์๋ ํ
ํ๋ฆฟ์ ์ด์ฉํ ๊ธฐ๋ฅ ๊ฐ๋ฐ๋งํ๋ค๊ฐ ๋ชจ์ฒ๋ผ ์๋ก์ด UI๋ฅผ ์ง์ผํ๋ ์ผ์ด ์๊ฒผ๋ค. ๋ฐ๋ฐฅ์ ๊น์๋ณด์๋ฉด ใ
ใ
... ์ฒ์๋ถํฐ ๋น๋ํ ํ๋ก์ ํธ๊ฐ ์๋๋ผ ์ค๊ฐ์ ๋ผ์ฌ๋ ํ๋ก์ ํธ์๊ธฐ์ ์ฝ๋๋ฅผ ์ฝ์ ๋๋ถํฐ ๋ฒ๋ฒ
์ด๊ธด ํ๋ค. ์ ์ด์ ๋ฐ๋ฐฅ์ ๊น๋ฆผ. ๋ด๊ฐ ํด์ผํ ๋ชฉ๋ก 1. swiper ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ค. 2. navigator ๋ฒํผ์ ๋์ค๊ฒํ๊ณ ์ฒซ ์ฌ๋ผ์ด๋์์๋ ์ผ์ชฝ ๋ฒํผ์ด ์ฌ๋ผ์ง๊ฒ ๋ง์ง๋ง ์ฌ๋ผ์ด๋๋ ์ค๋ฅธ์ชฝ ๋ฒํผ์ด ์ฌ๋ผ์ง๊ฒํ๋ค. 3. ์ฌ๋ผ์ด๋๋ ๋ง์ฐ์ค ๋๋๊ทธ๋ก๋ ๊ฐ๋ฅํ๊ฒํ๋ค. Code import React, { useState } from 'react'; import { Swiper, SwiperSlide } from 'swiper/react'; const Projects = () => { const [sw..
typescript
NextJs ์ TypeScript ํ๊ฒฝ์์ Jest , React-Testing-Library ์
ํ
ํ๊ธฐ (์ฝ์ง์ค์ง๊ฒํจ...)
์
๋ฌด๋ฅผ ๋ณด๋ฉด์ ํ์ฌ ์งํ ์ค์ธ ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ์กฐ๊ธ ๋ ๊ฐ์ ์ํค๊ณ ์์ผ๋ก์ ์์
์ ํธํ๊ฒ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด์ ์ด๋ค ์ผ๋ค์ ํ ์ ์์๊น? ํ๋ ์๊ฐ์ ํ๋ค๊ฐ ํ
์คํธ ์ฝ๋ ์
ํ
์ ํด๋ณด์๋ผ๋ ๋ค์ง์ ํ๊ฒ ๋์๋ค. ํ์ฌ ์งํ ์ค์ธ ์ฝ๋์์๋ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น์ทํ ํ๊ฒฝ์ ์กฐ์ฑํ ํ
์คํธ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์ํ ์ผ์์ ํ
์คํธ ๊ฐ๋ฐํ๊ฒฝ์ ์กฐ์ฑํ๋ ค๊ณ ์๋ํ๋ค. ์ฌ๊ฑธ? ์ฝ์ง์ ์ดํ ์ฌํ ๋์ ํ๊ณ ๋๋๋ค. ํ์ง๋ง ์ฌ์ ํ ๋ฏธ๊ถ์ ๋น ์ ธ์๊ณ ์ด๊ฑธ ๋ค์ ์ฌ์ฐํด๋ผ ์ ์์๊น? ํ๋ ์๋ฌธ์ด ๊ฐํ๊ฒ ๋ค์ด์ ๋ค๊ธํ๊ฒ ์ด๊ณณ์ ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ๋งจ๋ ๋ฃ๊ธฐ๋งํ๊ณ ์ฌ๊ธฐ์ ๊ธฐ ๊ตฌ๊ธ๋ง ํ๋ค๊ฐ ๋ณด๊ธฐ๋ง ํ์ง. ์ ์ ์จ๋ณธ ์ ์ ์๋ ํ
์คํธ ์ฝ๋. ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ์งํ์ ํ์๋๋ฐ, ๋ญํ๋ ์ ๋๋ก ์ดํดํ๋ ๊ฒ ์์ผ๋ ์ฝ๋๋ ์์ ์งฌ๋ฝ์ด ๋๊ณ tes..
โช Literal types const userName1 = "Bob"; let userName2 = "Tom"; const๋ ์์๋ก ๋ณํ์ง ์๋ ๊ฐ์ ์ ์ธํ ๋, let๋ ์ฌํ ๋น์ด ๊ฐ๋ฅํ ๊ฐ์ ์ ์ธํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ ์ํ์์ VSC๊ฐ์ ์๋ํฐ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋ณด๋ฉด const๋ "Bob"์ด๋ผ๊ณ ์ ์ธ ๋ ๊ฐ์ด ๋จ๊ณ , let์ let userName2 : string์ด๋ผ๋ ํ์
๊ฐ์ด ๋น๋๋ค. let์ ์ธ์ ๋ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. userName2 ์ ์ซ์๋ฅผ ๋ฃ๊ณ ์ถ๋ค๋ฉด? let userName2 : string | number = "Tom"; ์ด๋ ๊ฒ ํ์
์ ๋ ๋ค ๋ช
์ํด์ค๋๋ค. type Job = "police" | "developer" | "teacher"; interface User..