JavaScript
-
- [React Native] FlatList
FlatList๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์ @FlatList@ ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FlatList๊ฐ๋ ํจ์จ์ ์ผ๋ก ๋๋์ ์คํฌ๋กค ๊ฐ๋ฅํ ํญ๋ชฉ์ ๋ ๋๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ต์ ํ๋ ๊ฐ์ ์คํฌ๋กค๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ , ์คํฌ๋กค ์ ํ์ํ ํญ๋ชฉ๋ง ๋ ๋๋งํ๋ค.@ScrollView@ ์ปดํฌ๋ํธ์์ ์ฐจ์ด์ ์ฃผ์ ์์ฑ์์ฑ์ค๋ช @data@- ๋ ๋๋งํ ๋ฐ์ดํฐ ๋ฐฐ์ด(Array)์ ์ ๋ฌ- ๋ฐฐ์ด์ ๊ฐ ์์๋ ๋ ๋๋ง๋ ํญ๋ชฉ์ ๋ฐ์ดํฐ@renderItem@- ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ ๋๋งํ ์ง ์ ์ํ๋ ํจ์- ๋งค๊ฐ๋ณ์๋ก @{ item, index }@ ํํ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ค.@keyExtractor@- ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํค๋ฅผ ๋ฐํํ๋ ํจ์- ๊ธฐ๋ณธ์ ์ผ๋ก @item.key@ ๋๋ @item.id@๋ฅผ ์ฌ์ฉ..
2024.12.10 -
- [Service] Contentful
Contentful๋ค์ด๊ฐ๋ฉฐHeadless CMS ์ค ํ๋์ธ Contentful ์๋น์ค์ ๋ํ์ฌ ์ ๋ฆฌํด๋ณธ๋ค. Contentful๊ฐ๋ 2013๋ ๋ ์ผ ๋ฒ ๋ฅผ๋ฆฐ์์ ๋ง๋ค์ด์ง Headless CMS(Content Management System, ์ปจํ ์ธ ๊ด๋ฆฌ ์์คํ ) ์๋น์คํ์ฌ Spotify, Red Bull, IKEA ๋ฑ ๊ตต์งํ ๊ธ๋ก๋ฒ ๊ธฐ์ ๋ค์ด ์ด ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ ์๋ค.ํ๋ก ํธ์๋์ ๋ฐฑ์๋(์ปจํ ์ธ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ)๊ฐ ๊ฒฐํฉ๋ ๊ตฌ์กฐ์ ๋ฌ๋ฆฌ, ํ๋ก ํธ์๋์ ๋ฐฑ์๋๊ฐ ๋ถ๋ฆฌ๋ ํํ์ ์ปจํ ์ธ ๊ด๋ฆฌ ์์คํ ์ด๋ค. Content that takes you everywhereBusiness moves faster when teams producing content have a platform that empowers them to ..
1 2024.11.28 -
- [JavaScript] EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ
EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ๊ฐํธํ๊ฒ ํ์๊ฐ์ ์ผ๋ก ๋ฌด๋ฃ๋ก ์ 200๊ฑด๊น์ง ์ด๋ฉ์ผ์ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ EmailJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. EmailJS๊ฐ๋ ์ฌ์ฉ์๊ฐ ์๋ฒ ์์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ผ ์ ์๋๋ก ๋์์ฃผ๋ ์๋น์ค์ฌ์ฉ์๋ ๋ฐฑ์๋ ์ค์ ์์ด ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ด๋ฉ์ผ์ ์ ์กํ ์ ์๋ค.SMTP ์๋ฒ๋ฅผ ํ์ฉํ์ฌ ์ด๋ฉ์ผ์ ์ ์กํ๋ฉฐ, Gmail, Outlook ๋ฑ์ ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ์ง์ํ๋ค. ์ฃผ์ ํน์งํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ง์ ์ด๋ฉ์ผ์ ์ ์กํ ์ ์์ด ๋ฐฑ์๋๊ฐ ํ์์๋ค.Gmail, Yahoo, Outlook ๋ฑ ์ฌ๋ฌ ์๋น์ค์ ํธํ๋๋ค.์ฌ์ฉ์ ์ ์ ํ ํ๋ฆฟ์ ๋ง๋ค์ด ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ค.์ ์ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ฉฐ API ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ค.๋ช ์ค์ ์ฝ๋๋ง์ผ๋ก..
2024.11.26 -
- [JavaScript] FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ
FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ FusionCharts ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FusionCharts๊ฐ๋ ์น ๊ธฐ๋ฐ ๋์๋ณด๋์ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ๋ฐ์์ ๊ธฐ์ ์ด ๋ค์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ฐจํธ, ๊ทธ๋ํ, ๊ฒ์ด์ง(Gauge), ์ง๋ ๋ฑ์ผ๋ก ์๊ฐํ ํ ์ ์๋ค.๋ฌด๋ฃ ๋ฐ ์ ๋ฃ ํ๋์ด ์์ด ํ๋ก์ ํธ์ ํ์์ ๋ฐ๋ผ ์ ํ ๊ฐ๋ฅํ๋ค.๊ณต์ ํํ์ด์ง : JavaScript charts for web & mobile | FusionCharts ํน์ง์ ์ฐจํธ, ํ์ด ์ฐจํธ, ๊ฒ์ด์ง, ํํธ๋งต ๋ฑ 100๊ฐ ์ด์์ ์ฐจํธ ์ ํ ์ง์๋ณต์กํ ๋น์ฆ๋์ค ๋์๋ณด๋๋ ๋ณด๊ณ ์๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.๋ชจ๋ ์ฐจํธ๋ ๋ฐ์ํ ๋์์ธ์ด ์ ์ฉ๋์ด ๋ชจ๋ฐ์ผ, ํ๋ธ๋ฆฟ, ..
1 2024.11.18 -
- [JavaScript] Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์์ ๋ ์ง์ ์๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ Moment.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. moment.js๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ ์ง์ ์๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ง ๋ฐ ์๊ฐ ๊ณ์ฐ, ํ์ํ, ํ์ฑ, ์๊ฐ๋ ๋ณํ, ์๋์ ์ธ ์๊ฐ ํํ ๋ฑ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค.์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ @Date@ ๊ฐ์ฒด์ ๋น๊ตํ์ฌ ํจ์ฌ ๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.2020๋ ๋ถํฐ Moment.js๋ ์ ์ง๋ณด์ ์ ์ฉ ๋ชจ๋๋ก ์ ํ๋์๊ณ , ์๋ก์ด ํ๋ก์ ํธ์์๋ Day.js๋ Luxon, Date-fns๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ์ฌ์ฉํ๋๋ก ๊ถ์ฅ๋๊ณ ์๋ค. (ํ์ง๋ง ์ฌ์ ํ ๋ง์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๊ณ ์๋ค.)Day.jsMom..
2024.11.14 -
- [JavaScript] Faker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Faker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐFaker.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Faker.js๊ฐ๋ ๋ค์ํ ์ ํ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐ๋ชจ์ฉ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ ๋ ์ ์ฉํ๋ค.์ด๋ฆ, ์ฃผ์, ์ ํ๋ฒํธ, ์ด๋ฉ์ผ, ๋ ์ง, ์ด๋ฏธ์ง URL ๋ฑ์ ๋ฌด์์๋ก ์์ฑํ ์ ์๋ค.๊ด๋ฆฌ ๋ฌธ์ ๋ก 2021๋ ์ ๊ฐ๋ฐ์ด ์ค๋จ๋์๊ณ , ์ดํ ์ปค๋ฎค๋ํฐ์์ @๏ผ faker-js/faker@๋ผ๋ ์ด๋ฆ์ผ๋ก ํฌํฌ(Fork)ํ์ฌ ์ ์ง๋ณด์ํ๊ณ ์๋ค.๊ธฐ์กด์ @faker.js@๋ ๋ ์ด์ ์ ์ง๋ณด์๋์ง ์๋๋ค.์์ธํ ๋ด์ฉ์ ์ด ๊ธ์ ์ฐธ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์ปค๋ฎค๋ํฐ์ ์ํด ๊ด๋ฆฌ๋๊ณ ์๋ @๏ผ faker-js/faker@๋ฅผ ์ฌ์ฉํ๋ค.Faker๋ก ์์ฑํ ๋ฐ์ดํฐ๋ ๋ฌด์์์ด๋ฉฐ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋๋ฏ..
2024.10.30 -
- [Service] ํ๋ฆฌ์ฆ๋ง(Prisma)
ํ๋ฆฌ์ฆ๋ง(Prisma)๋ค์ด๊ฐ๋ฉฐORM(Object-Relational Mapping) ๋๊ตฌ ์ค ํ๋์ธ ํ๋ฆฌ์ฆ๋ง(Prisma)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ํ๋ฆฌ์ฆ๋ง(Prisma)๊ฐ๋ ORM(Object-Relational Mapping) ๋๊ตฌ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐํธํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ฐ๋ฐ ๋๊ตฌ์ฃผ๋ก Node.js์ TypeScript ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ค.SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ ํ์ ์์ด ์์ ํ ํ์ ์ ์ฝ๋๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ๋์์ค๋ค. ORM(Object-Relational Mapping)๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๋ ๊ฐ์ฒด(Object)์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database)์ ํ ์ด๋ธ ๊ฐ์ ๋งคํ์ ์๋ํํ๋ ๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ SQL์ด ์..
3 2024.10.22 -
- [JavaScript] ์ ๊ฐ ์ฐ์ฐ์ (Spread Operator, ...)
์ ๊ฐ ์ฐ์ฐ์ (Spread Operator, ...)๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์์ ์ฌ์ฉํ ์ ์๋ ์ ๊ฐ ์ฐ์ฐ์(Spread Operator, @...@)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ์ ๊ฐ ์ฐ์ฐ์(Spread Operator, @...@)๊ฐ๋ ๋ฐฐ์ด(Array)์ด๋ ๊ฐ์ฒด(Object)๋ฅผ ์ฝ๊ฒ ํ์ฅํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์๋ ๊ธฐ๋ฅ๋ฐฐ์ด, ๊ฐ์ฒด, ํจ์ ํธ์ถ์์ ๋ค์ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.๋ฐฐ์ด์ ๋ณํฉ & ๋ณต์ฌ๊ฐ์ฒด์ ๋ณํฉ & ๋ณต์ฌํจ์ ํธ์ถ ์ ์ธ์ ํ์ฅ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋, ์์ ๋ณต์ฌ(Shallow Copy)๊ฐ ์ด๋ฃจ์ด์ง๋ค.ES6(ECMAScript 2015)๋ถํฐ ์ฌ์ฉํ ์ ์๋ค. ์์ ๋ณต์ฌ๋ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ์ต์์ ์์ค๋ง ๋ณต์ฌํ๋ค. (์ค์ฒฉ๋ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ์๋ณธ ๋ฐ์ดํฐ์ ๋ํ '์ฐธ์กฐ'๋ฅผ ์ ์งํ๋ค.) ๋ฐ๋ผ์ ์ ๊ฐ ์ฐ์ฐ์๋ฅผ..
2024.08.27 -
- [JavaScript] for ๋ฌธ ์ ๋ฆฌ (for, for...in, for...of, forEach, for await...of)
for ๋ฌธ ์ ๋ฆฌ (for, for...in, for...of, forEach, for await...of)๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์์ ์ฌ์ฉํ ์ ์๋ for ๋ฌธ(@for@, @for...in@, @for...of@, @forEach@, @for await...of@)์ ๋ํด ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ์ข ๋ฅโ @for@ ๋ฌธํน์ ํ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํ๋ค.for (initialization; condition; increment) { // ๋ฐ๋ณตํ ์ฝ๋} ์์ ์ฝ๋for (let i = 0; i โก @for...in@ ๋ฌธ๊ฐ์ฒด์ ์ด๊ฑฐ ๊ฐ๋ฅํ ์์ฑ์ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํ๋ค.๋ฐฐ์ด(Array)์์๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๋ณตํ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฒด(Object)์ ์ฌ์ฉ๋๋ค.for (const key in ob..
2024.08.25 -
- [JavaScript] JSON(JavaScript Object Notation) ๋ค๋ฃจ๊ธฐ
JSON(JavaScript Object Notation) ๋ค๋ฃจ๊ธฐ๋ค์ด๊ฐ๋ฉฐ์น ์๋ฒ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ฌ์ฉ๋๋ ํ์ผ ํ์์ธ JSON(JavaScript Object Notation)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. JSON(JavaScript Object Notation)๊ฐ๋ ๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๋ฌธ์์ด๋ก ์ธ์ฝ๋ฉ๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ JSON ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด JSON ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๋ค. ์ฃผ์ ๋ฉ์๋JSON ๊ฐ์ฒด์ ์ฃผ์ ๋ฉ์๋๋ก๋ @JSON.stringify()@์ @JSON.parse()@๊ฐ ์๋ค. โ JSON.stringfy()์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด(@{ prop: value, ... }@)๋ ๋ฐฐ์ด(@[value1, ..., valueN]@)..
2024.07.05 -
- [React.js] React Router์ loader ์์ฑ
React Router์ loader ์์ฑ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ผ์ฐํฐ(@react-router-dom@)์ @loader@ ์์ฑ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React Router์ @loader@ ์์ฑReact Router Version 6 ๋ถํฐ ์ฌ์ฉํ ์ ์๋ค.์ปดํฌ๋ํธ๊ฐ ๋๋๋ง๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.๋ก๋ ํจ์์์ ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ํด๋น ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.๋ก๋๋ ํจ์๋ก ์ ์๋๋ฉฐ, ํด๋น ํจ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ปดํฌ๋ํธ์ ์ ๋ฌํ๋ค.๋ก๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด, ์ปดํฌ๋ํธ๊ฐ ์ด๊ธฐ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ์ง ์๊ณ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ ์ ์๋ค.๋ฐ๋ผ์ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋ค. ์์ ์ฝ๋import { RouterProvider, cre..
2024.07.03 -
- [React.js] <form> ์์์์ ์ ์ถ(Submit) ๋ฒํผ ์ฌ์ฉ ์ ๊ธฐ๋ณธ ๋์ ๋ง๋ ๋ฐฉ๋ฒ
์์์์ ์ ์ถ(Submit) ๋ฒํผ ์ฌ์ฉ ์ ๊ธฐ๋ณธ ๋์ ๋ง๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ@@ ์์ ์์ @type@์ด @submit@์ธ ๋ฒํผ์ ๋๊ณ , ํด๋ฆญํ ๋, ํผ ์ ์ถ ํจ๊ณผ๊ฐ ๋ฐ์ํ๋ค.ํด๋น ๋ฒํผ์ ํด๋ฆญํ ๋ ํผ ๋ฐ์ดํฐ๊ฐ ์๋ฒ๋ก ์ ์ก๋๋ฉด์ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ ๋๋๋ฐ, ์ด๊ฒ์ ํผ์ ๊ธฐ๋ณธ ๋์์ด๋ค. // ... ์ ์ถ ์ด๋ ํผ ์ ์ถ ํจ๊ณผ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๋ฐฉ๋ฒ 1 : @@ ์์์ @type@ ์์ฑ์ @button@์ผ๋ก ์ง์ ํ๊ธฐ@@ ์์์ @type@ ์์ฑ์ @submit@์ด ์๋ @button@์ผ๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.function handleSubmit() { console.log("Submitted!");} ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ 2 : @@ ์์์ @onClick@ ์ด๋ฒคํธ ํจ์์ @event...
2024.06.28 -
- [JavaScript] Intl.NumberFormat ๊ฐ์ฒด
Intl.NumberFormat ๊ฐ์ฒด๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ @Intl.NumberFormat@ ๊ฐ์ฒด์ ๋ํด ์์๋ณด์.@Intl.NumberFormat@ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ซ์๋ฅผ ํน์ ๋ก์ผ์ผ๊ณผ ์ต์ ์ ๋ง์ถฐ ํฌ๋งทํ (Formatting) ํ ์ ์๋ค. Intl.NumberFormat ๊ฐ์ฒด๊ฐ๋ ์ํฌ๋ง์คํฌ๋ฆฝํธ(ECMAScript) ๊ตญ์ ํ API์ ์ผ๋ถ๋ก, ์ซ์์ ํ์์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.๋ก์ผ์ผ(Locale)๊ณผ ์ต์ (Option)์ ์ฌ์ฉํ์ฌ ์ซ์์ ํ์์ ์ธ๋ถ์ ์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ฃผ๋ก ํตํ, ์์์ ์๋ฆฌ์, ์ซ์ ๊ทธ๋ฃนํ ๋ฑ์ ํ์์ ์ง์ ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒnew Intl.NumberFormat(locales, options) @locales@๋ก์ผ์ผ ์ง์ ๋ก์ผ์ผ(Locale)์ปดํจํฐ ํ๋ก๊ทธ..
2024.06.28 -
- [React.js] map ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ({})์ ์๊ดํธ(())
map ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ({})์ ์๊ดํธ(())๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React)์์ ์ค๊ดํธ @{}@์ ์๊ดํธ @()@๋ ์ฃผ๋ก JSX ์์์ ์ฌ์ฉ๋๋ฉฐ, ํนํ @map()@ ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉ๋ ๋ ์ฃผ์ํด์ผ ํ ์ ์ด ๋ช๊ฐ์ง ์๋ค.@map@ ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ(@{}@)์ ์๊ดํธ(@()@)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ฐจ์ด์ ๋ํด ์์๋ณด์. ์ค๊ดํธ(@{}@)์๋ฐ์คํฌ๋ฆฝํธ ํํ์(Expression)์ ๊ฐ์ธ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.์ค๊ดํธ๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฐ๋์ ๋ฐํ๊ฐ์ด ์์ด์ผ ํ๋ฉฐ, ๋ช ์์ ์ผ๋ก @return@ ํค์๋๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๋ฐํํด์ผ ํ๋ค.์ฌ๋ฌ ์ค์ ์ฝ๋๊ฐ ํ์ํ๊ฑฐ๋ ์กฐ๊ฑด๋ฌธ ๋ฑ ๋ณต์กํ ๋ก์ง์ ์์ฑํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.const items = ['Apple', 'Banana', 'Cherry'];const listItem..
2024.05.29 -
- [React.js] ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ
์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์ ์ ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ์ฐ์ @useRef@๋ฅผ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ฌ ์์๋ฅผ ์ง์ ํด์ค๋ค.import {useRef} from 'react';// ...const horiRef = useRef(null);// ...return ( {/* ... */} ); ๋ค์๊ณผ ๊ฐ์ด @useEffect@์ @ResizeObserver@๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์์์ ์ฌ์ด์ฆ๊ฐ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.import { useEffect } from 'react';useEffect(() => { const resizeObserver = new ResizeObserver((entries) => ..
2024.03.26 -
- [React.js] ๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ์ปค์คํ ํ ๋ง๋ค๊ธฐ (useHover.js)
๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ์ปค์คํ ํ ๋ง๋ค๊ธฐ (useHover.js) ๋ค์ด๊ฐ๋ฉฐ ์์ ์์ ๋ง์ฐ์ค ์ปค์๋ฅผ ํธ๋ฒ ์, ํจ๊ณผ๊ฐ ์๋ํ ์ ์๋๋ก ์ปค์คํ ํ ์ ๋ง๋ค์ด๋ณด์. ๋ฐฉ๋ฒ ๊ธฐ์กด์ ๋ฐฉ๋ฒ ์ปค์คํ ํ ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ, @mouseover@, @mouseout@์ ๋ํ ๊ฐ๊ฐ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉ์ํค๊ณ ์ถ์ ๋์์ ์ฐ๊ฒฐํด ์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์์๋ค. import React, { useState } from react; const MyComponent = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseOver = () => { setShowPopup(true); }; cons..
2024.02.20 -
- [JavaScript] ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming)
์๋ฐ์คํฌ๋ฆฝํธ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming)์ ๋ํด ๊ณต๋ถํ๋ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming) ๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์๋ฒ์ ํต์ ์ ํ๋ค ๋ณด๋ฉด ์ด๋ค ์๋ฃ๋ฅผ ์์ฒญํ๊ณ ๋ฐ๋์ง์ ๋ฐ๋ผ, ๋๋ ๋คํธ์ํฌ ์๋์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ์ฒ๋ฆฌ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ ์ฐจ์ด๊ฐ ๋๋ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋๋ฐ, ์ด๋ฌํ ์ฒ๋ฆฌ ๋ฐฉ์์ '๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์'์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ๋ง์ ํจ์๋ค์ด ๋ชจ์ฌ์ ํ๋์ ๊ธฐ๋ฅ์ ๋ง๋ ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ค ํจ์์ ์คํ ์๊ฐ์ด ์๋ก ๋ค๋ฅด๋ฏ๋ก ํน์ ์์ ์ด ๋๋๋ฉด ๋ค๋ฅธ ์์ ์ ํ๊ณ , ๊ทธ ์์ ์ด ๋๋๋ฉด ์ด์ด์ ๋..
2024.01.24 -
- [JavaScript] ๋ณ์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น (var, let, const)
๋ณ์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น (var, let, const) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์(@var@, @let@, @const@)์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น์ ๋ํ์ฌ ์์๋ณด์. ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น โ @var@ ์ฌ์ ์ธ ๋ฐ ์ฌํ ๋น์ด ๋ชจ๋ ๊ฐ๋ฅํ๋ค. var sum = add(10, 20); console.log(sum); // 30 var sum = 100; // ์ฌ์ ์ธ (๊ฐ๋ฅ) console.log(sum); // 100 sum = 200; // ์ฌํ ๋น (๊ฐ๋ฅ) console.log(sum); // 200 ํ์ง๋ง @var@์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ํธ์ด์คํ (Hoisting)์ด ๋ฐ์ํ ์ ์๋ค. var x = 10; var sum = x + y; // y ๋ณ์๊ฐ ์ ์ธ๋๊ธฐ ์ ์ ์คํ var y = 20; console.log..
1 2024.01.18 -
- [JavaScript] ์คํ๋ ๋ ์ฐ์ฐ์(Spread Operator)
์คํ๋ ๋ ์ฐ์ฐ์(Spread Operator) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ES6์ ์ถ๊ฐ๋ ์คํ๋ ๋ ์ฐ์ฐ์(Spread Operator)์ ๋ํด ์์๋ณด์. ์คํ๋ ๋ ์ฐ์ฐ์(Spread Operator) ๊ฐ๋ ์คํ๋ ๋ ์ฐ์ฐ์(@...@)๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐฐ์ด(Array)์ด๋ ๊ฐ์ฒด(Object)๋ฅผ ํ์ฅํ๊ฑฐ๋ ํผ์น๋๋ฐ ์ฌ์ฉ๋๋ค. ์ด ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์๋ฅผ ์ถ์ถํ๊ฑฐ๋ ๋ณต์ ํ์ฌ ๋ค๋ฅธ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ํฌํจ์ํฌ ์ ์๋ค. ์คํ๋ ๋ ์ฐ์ฐ์๋ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค๊ณ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ฅผ ์กฐ์ํ๊ฑฐ๋ ๋ณต์ ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ํ์ฉ ๋ฐฉ๋ฒ โ ๋ฐฐ์ด(Array)์์์ ์คํ๋ ๋ ์ฐ์ฐ์ ํ์ฉ ๋ฐฐ์ด์์ ์คํ๋ ๋ ์ฐ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ ์ ์๋ค. const numbers = [1, 2, 3];..
2023.12.14 -
- [React.js] ํด๋์ค ์ปดํฌ๋ํธ(Class Components)์ ํจ์ํ ์ปดํฌ๋ํธ(Functional Components)
ํด๋์ค ์ปดํฌ๋ํธ(Class Components)์ ํจ์ํ ์ปดํฌ๋ํธ(Functional Components) ๋ค์ด๊ฐ๋ฉฐ ๋ฆฌ์กํธ(React)๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋์ค ์ปดํฌ๋ํธ(Class Components)์ ํจ์ํ ์ปดํฌ๋ํธ(Functional Components) 2๊ฐ์ง ์ ํ์ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ค. ์ต์ ๋ฆฌ์กํธ ๋ฒ์ ์์๋ ํจ์ํ ์ปดํฌ๋ํธ์ ํ ์ค(Hooks)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ฉฐ, ์ํ ๊ด๋ฆฌ๋ ๋ผ์ดํ์ฌ์ดํด ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๋ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ ํด๋์ค ์ปดํฌ๋ํธ๋ก ์์ฑ๋ ์ฝ๋๊ฐ ๋ง๋ค๋ฉด, ๋ฐ๋ก ๋ณ๊ฒฝํ ํ์๋ ์๋ค. ํด๋์ค ์ปดํฌ๋ํธ์ ํจ์ํ ์ปดํฌ๋ํธ์ ๋ํด ์์๋ณด์. ํด๋์ค ์ปดํฌ๋ํธ(Class Components) ES6์ ํด๋์ค ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ์์ฑ๋๋ค. @class@ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ..
2023.12.14 -
- [JavaScript] ๋์คํธ๋ญ์ฒ๋ง(Destructuring)
๋์คํธ๋ญ์ฒ๋ง(Destructuring) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ ES6์ ์ถ๊ฐ๋ ๋์คํธ๋ญ์ฒ๋ง(Destructuring) ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด์. ๋์คํธ๋ญ์ฒ๋ง(Destructuring) ๊ฐ๋ ECMAScript 2015(ES6)์์ ๋์ ๋ ๊ธฐ๋ฅ ์ค ํ๋ ES6์์ ๋ฐฐ์ด(Array)๊ณผ ๊ฐ์ฒด(Object)์ ์์๋ค์ ํด์ฒด(Destructuring)ํ์ฌ ๋ณ์์ ํ ๋น(Assign)ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฑ์ฅํ๋ค. ์ด์ ์๋ ์์๋ค์ ํ๋์ฉ ๋ณ์์ ํ ๋นํ๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ ํด์ผํ๋๋ฐ, ๋์คํธ๋ญ์ฒ๋ง์ ์ด๋ฅผ ๋ณด๋ค ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ผ ์ ์๊ฒ ๋์๋ค. ์ข ๋ฅ ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ ๋์คํธ๋ญ์ฒ๋ง์ ๋ณ์ ์ด๋ฆ๊ณผ ๊ฐ์ฒด ๋๋ ๋ฐฐ์ด์ ์์ฑ ์ด๋ฆ์ด๋ ์์๊ฐ ์ผ์นํด์ผ ํ๋ค. const an..
2023.12.14 -
- [React.js] ํ (Hook)
ํ (Hook)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React)์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ์ ์ธ ํ (Hook)๋ค์ ๋ํด ์์๋ณด์. ํ (Hook)๊ฐ๋ ํจ์ ์ปดํฌ๋ํธ์์ ์ํ(State)๋ ์๋ช ์ฃผ๊ธฐ ๊ธฐ๋ฅ ๋ฑ์ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ธฐ๋ฅํด๋์ค ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ํจ์ ์ปดํฌ๋ํธ์์๋ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ ์ผ๋ก๋ @useState@, @useEffect@, @useContext@ ๋ฑ์ด ์๋ค.๊ฐ๊ฐ์ ํ ์ ํ์ฉํ๋ฉด ํจ์ ์ปดํฌ๋ํธ์์ ์ํ ๊ด๋ฆฌ, ๋ถ์ ํจ๊ณผ ์ฒ๋ฆฌ, ์ ์ญ์ ์ธ ๋ฐ์ดํฐ ๊ณต์ ๋ฑ์ ํธ๋ฆฌํ๊ฒ ํ ์ ์๋ค.์ด ์ธ์๋ ๋ง์ ๋ค์ํ ํ ์ด ์์ผ๋ฉฐ, ์ง์ ์ปค์คํ ํ ์ ๋ง๋ค์ด ์ฌ์ฉํ ์๋ ์๋ค.ํ ์ ์ฌ์ฉํ๋ฉด ํจ์ ์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์์ด ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ ์ฐํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋๋ค. ์ข ๋ฅ..
2023.12.13 -
- [JavaScript] Map / Filter / Reduce / Find / FindIndex / IndexOf / Includes
Map / Filter / Reduce / Find / FindIndex / IndexOf / Includes ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ ES6์ @Map@, @Filter@, @Reduce@, @Find@, @FindIndex@, @IndexOf@, @Includes@ ํจ์์ ๋ํด ์์๋ณด์. ์ด ํจ์๋ค์ ๋ฐฐ์ด์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์กฐ์ํ๊ณ ํํฐ๋งํ๋ฉฐ, ๋ฐฐ์ด ์์๋ฅผ ๊ฐ๊ณตํ์ฌ ํ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ์ค๋ช โ Map Map ํจ์๋ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ๊ณ , ๊ทธ ํจ์๊ฐ ๋ฐํํ๋ ๊ฐ์ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ค. ๊ธฐ์กด ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ณํํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ๋ ์์๋ฅผ 2๋ฐฐ๋ก ๋ง๋๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ฐ ์์๋ฅผ ์์ ํ๊ณ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ..
2023.12.13 -
- [React.js] ๋ฆฌ์กํธ(React.js) ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (Windows)
๋ฆฌ์กํธ(React.js) ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (Windows) ๋ค์ด๊ฐ๋ฉฐ ์๋์ฐ(Windows)์์ ๋ฆฌ์กํธ(React.js) ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด์. ๋ฐฉ๋ฒ โ Node.js ์ค์นํ๊ธฐ Node.js ํ๋ก๊ทธ๋จ์ ์ปดํจํฐ์ ์ค์นํด์ค๋ค. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org โก ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code) ์ค์น ๋ฐ ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code)๋ฅผ ์ค์นํ๊ณ , VS Code์ ์๋์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ค. Babel JavaScript vscode-icons JS JSX Snippets โข ๋ฆฌ์กํธ ์ฑ ์์ฑํ๊ธฐ @my-app@ ์ด๋ผ๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ..
2023.11.27 -
- [JavaScript] ๋ชจ๋ ์์คํ (import/export)
๋ชจ๋ ์์คํ (import/export) ๋ค์ด๊ฐ๋ฉฐ ES6์์ ๋์ ๋ ๋ชจ๋ ์์คํ (Module System)์ ๋ํด์ ์์๋ณด์. ๋ชจ๋ ์์คํ ๊ฐ๋ ES6์์ ๋์ ๋ ๋ชจ๋ ์์คํ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฌ๋ฌ ํ์ผ๋ก ๋๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋๋ก ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด ๊ธฐ๋ฅ์ @import@์ @export@ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋์ ๊ฐ์ ธ์ค๊ณ ๋ด๋ณด๋ด๋ ๊ฒ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ๋ด๋ณด๋ด๊ธฐ(Export) ๋ชจ๋์์ ํน์ ํ ๊ธฐ๋ฅ, ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ๋ค๋ฅธ ํ์ผ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ด๋ณด๋ด๋ ค๋ฉด @export@ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. โ Named Export ๋ด๋ณด๋ด๋ ค๋ ๋์์ ์ด๋ฆ์ ๋ถ์ฌ์ ๋ด๋ณด๋ด๋ ๋ฐฉ๋ฒ์ด๋ค. // ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ๋ด๋ณด๋ด๊ธฐ export const myVariable = 10; export f..
2023.11.27 -
- [React.js] ๋ฆฌ์กํธ(React)์์ HTML ์์์ ํด๋์ค๋ฅผ ์ง์ ํ ๋ class๊ฐ ์๋ className์ ์ฌ์ฉํ๋ ์ด์ ?
๋ฆฌ์กํธ(React)์์ HTML ์์์ ํด๋์ค๋ฅผ ์ง์ ํ ๋ class๊ฐ ์๋ className์ ์ฌ์ฉํ๋ ์ด์ ? ๋ค์ด๊ฐ๋ฉฐ ๋ฆฌ์กํธ(React)์์ HTML ์์์ ํด๋์ค๋ฅผ ์ง์ ํ ๋ @class@๊ฐ ์๋ @className@์ ์ง์ ํ๋ ์ด์ ๋ฅผ ์์๋ณด์. ์ด์ ๋ฆฌ์กํธ(React)์์ HTML ์์์ ํด๋์ค๋ฅผ ์ง์ ํ ๋, ๋ค์๊ณผ ๊ฐ์ด @class@๊ฐ ์๋ @className@์ ์ง์ ํ๋ค. ๊ทธ ์ด์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด์์ด๋ค. ๋ฆฌ์กํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ JSX๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ์์ฑํ๋ค. JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ ๋ฌธ๋ฒ์ด๋ค. JSX๋ HTML๊ณผ ์ ์ฌํ๊ฒ ๋ณด์ด์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์ ์ผ๋ถ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์๋ @class@๋ผ๋ ํค์๋(Keyword)๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฆฌ์กํธ์์ HTM..
1 2023.11.26 -
- [JavaScript] splice ๋ฉ์๋, slice ๋ฉ์๋, split ๋ฉ์๋ ๋น๊ต
splice ๋ฉ์๋, slice ๋ฉ์๋, split ๋ฉ์๋ ๋น๊ต ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ @splice@ ๋ฉ์๋์ @slice@ ๋ฉ์๋, @split@ ๋ฉ์๋๋ฅผ ๋น๊ตํด๋ณด๊ณ ์ฐจ์ด์ ์ ์์๋ณด์. @splice@ ๋ฉ์๋ ์ค๋ช ๋ฐฐ์ด์ ์์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ฝ์ ํ ์ ์๋ค. ์ฌ์ฉ๋ฒ array.splice(start, deleteCount[, item1, item2, ...]) @start@ : ๋ณ๊ฒฝ์ ์์ํ ์ธ๋ฑ์ค @deleteCount@ : ์ ๊ฑฐํ ์์์ ๊ฐ์ @item1, item2, ...@ : ์ถ๊ฐํ ์์ [์ ํ ์ฌํญ] ์ฌ์ฉ ์ let array = [1, 2, 3, 4, 5]; array.splice(2, 1); // ์ธ๋ฑ์ค 2์์ 1๊ฐ์ ์์ ์ ๊ฑฐ -> [1, 2, 4, 5] array.splice(1, 0..
1 2023.11.16 -
- [JavaScript] ํ์ดํ ํจ์(Arrow Function)
ํ์ดํ ํจ์(Arrow Function)๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ ํ์ดํ ํจ์(Arrow Function)์ ๋ํด ์์๋ณด์. ํ์ดํ ํจ์(Arrow Function)๊ฐ๋ ES6(ECMAScript 2015)์์ ๋์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ก์ด ํจ์ ์ ์ธ ๋ฐฉ์์ผ๋ฐ ํจ์ ์ ์ธ๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ ์งง์ ๋ฌธ๋ฒ์ ์ ๊ณตํ์ฌ ์ฝ๋๋ฅผ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค์ด์ค๋ค.ํ์ดํ ํจ์๋ ๊ฐ๊ฒฐํ๊ณ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ฐ, ํนํ ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ์ ์ค์ฌ์ฃผ๋๋ฐ ๋์์ ์ค๋ค.๊ทธ๋ฌ๋ ๋ชจ๋ ์ํฉ์์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ ์๋๋ฉฐ, ํนํ ๋ฉ์๋ ํจ์์์๋ ์ผ๋ฐ ํจ์์์ ์ฐจ์ด์ ์ ๊ณ ๋ คํ์ฌ ์ฌ์ฉํด์ผ ํ๋ค. ๊ธฐ๋ณธ ๋ฌธ๋ฒํ์ดํ ํจ์๋ @const functionName = (parameters) => { function body }..
2023.11.16 -
- [Axios] Axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด๊ฐ๋ฉฐAxios ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์์๋ณด์. Axios๊ฐ๋ Node.js ๋ฐ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ HTTP ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ฃผ๋ก HTTP ์์ฒญ(Request)์ ์์ฑํ๊ณ ์๋ต(Response)์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.Axios๋ Promise ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์ด ์์ด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.๋์ผํ ์ฝ๋๋ฒ ์ด์ค๋ก ๋ธ๋ผ์ฐ์ ์ Node.js์์ ์คํํ ์ ์๋ค.์๋ฒ ๋จ(Server-Side)์์๋ ๋ค์ดํฐ๋ธ Node.js์ @http@ ๋ชจ๋์ ์ฌ์ฉํ๊ณ , ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์์๋ @XMLHttpRequests@๋ฅผ ์ฌ์ฉํ๋ค.Axios๋ฅผ ์ฌ์ฉํ๋ฉด HTTP ์์ฒญ์ ์ฝ๊ฒ ์์ฑํ๊ณ ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค.ํนํ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์์ Promise๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ฝ๋๊ฐ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ์ ..
2023.11.15 -
- [Node.js] EJS(Embedded JavaScript)
EJS(Embedded JavaScript) ๋ค์ด๊ฐ๋ฉฐ EJS(Embedded JavaScript)์ ๋ํด ์์๋ณด์. EJS(Embedded JavaScript) ๊ฐ๋ JavaScript ๊ธฐ๋ฐ์ ํ ํ๋ฆฟ ์์ง ์๋ฒ ์ธก(Server-side)์์ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. EJS๋ฅผ ์ฌ์ฉํ๋ฉด HTML ์ฝ๋ ์์ JavaScript ์ฝ๋๋ฅผ ์ฝ์ ํ์ฌ ๋์ ์ผ๋ก ํ์ด์ง๋ฅผ ์์ฑํ ์ ์๋ค. ํน์ง โ ํธ๋ฆฌํ ๋ฌธ๋ฒ EJS๋ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ๋ฌธ๋ฒ์ ์ ๊ณตํ๋ค. HTML ์์ @@์ ๊ฐ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ JavaScript ์ฝ๋๋ฅผ ์ฝ์ ํ ์ ์๋ค. โก ํ ํ๋ฆฟ ์ฌ์ฌ์ฉ EJS๋ฅผ ์ฌ์ฉํ๋ฉด ํ ํ๋ฆฟ์ ์์ฑํ์ฌ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค. ์ด๊ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๊ด๋ ๋ ์ด์์์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ค. โข ๋ณ์ ์ฝ..
2023.11.09