๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[React Native] RTK-Query๋กœ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ (feat. Typescript) Install redux-toolkit npm install @reduxjs/toolkit TodoModel interface TodoModel { id: number; title: string; content: string; } Create API Slice createApi์™€ fetchBaseQuery๋ฅผ import ํ•ด์ค๋‹ˆ๋‹ค. import {createApi, fetchBaseQuery} from '@reduxjs/toolkit/query/react'; ์ €๋Š” TodoList๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. reducerPath: ์Šคํ† ์–ด์˜ reducer๋กœ ์ง€์ •ํ•  Path์˜ ์ด๋ฆ„ baseQuery: ๊ธฐ๋ณธ์œผ๋กœ ์ง€์ •ํ•  ์„œ๋ฒ„ URL tagTypes: ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ํŒจ์น˜๋˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ํƒ€์ž… endpo.. 2022. 8. 6.
[React Native] Redux-Toolkit์ด๋ž€? (feat. ๊ธฐ์กด Redux์™€ ๋น„๊ต) ์•ˆ๋…•ํ•˜์„ธ์š”. Foma ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ๊ธ€์—์„œ Redux๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ์š”. (์•„์ง ์•ˆ ๋ณด์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!) Redux์— ๋Œ€ํ•ด ์ฐพ์•„๋ณด๋‹ˆ Redux๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ํšจ์œจ์ ์ธ Redux-Toolkit์ด ์žˆ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Redux-Toolkit์ด ๋ฌด์—‡์ด๊ณ  ์™œ ๋” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ํšจ์œจ์ ์ธ์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Redux-Toolkit์ด๋ž€? Redux-Toolkit์€ Redux๋ฅผ ๋งŒ๋“  ๊ณณ์—์„œ ๊ณต์‹์ ์œผ๋กœ ํšจ์œจ์ ์ธ Redux ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํˆดํ‚ท์ž…๋‹ˆ๋‹ค. Redux ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , Redux ๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ ์ด๋ฏ€๋กœ ์‚ฌ์šฉ์„ ๊ณต์‹์ ์œผ๋กœ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ฉด์—์„œ ๋” ํšจ์œจ์ ์ด๋ผ๋Š” ๊ฒƒ ์ผ๊นŒ์š”? ๊ธฐ.. 2022. 8. 6.
[React Native] Redux๋ฅผ ์ด์šฉํ•ด Counter ์•ฑ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ (feat. Typescript) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์ด์ „ ๊ธ€์—์„œ Redux์— ๋Œ€ํ•ด ๋‹ค๋ค˜๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ๊ทธ Redux๋ฅผ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•œ Counter ์•ฑ์„ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ (ํ™˜๊ฒฝ์€ React Natvie CLI, Typescript๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.) Preview Install Typescript Project Init npx react-native init "ํ”„๋กœ์ ํŠธ ์ด๋ฆ„" --template react-native-template-typescript redux npm install redux react-redux npm install react-redux @types/react-native npm install @types/react-native Counter ๊ฐ€์žฅ ๋จผ์ € ์นด์šดํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ค.. 2022. 8. 4.
[React Native] Redux๋ž€? (feat. Flux) Redux๋ž€? Javascript ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "์ƒํƒœ?๋Š” ๋ฐ”๋€Œ๋Š” ์–ด๋–ค ๊ฐ’๋“ค์„ ์˜๋ฏธํ•˜๋Š”๋ฐ์š”. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ณ„์‚ฐ๊ธฐ์—์„œ ์–ด๋–ค ๋ฒ„ํŠผ๋“ค์„ ๋ˆ„๋ฅด๋ฉด ๊ณ„์‚ฐํ•œ ๊ฐ’์ด ๊ณ„์†ํ•ด ๋‹ฌ๋ผ์ง€์ฃ ? ๋ฐ”๋กœ ๊ณ„์‚ฐํ•œ ๊ฐ’์ด => ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ์ธ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. Flux๋ž€? Redux๋Š” Facebook์˜ Flux ๋””์ž์ธ ํŒจํ„ด์—์„œ ์œ ๋ž˜๋œ ๊ฒƒ์ธ๋ฐ์š”. Flux๋Š” Web ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ MVC ํŒจํ„ด์œผ๋กœ ๊ตฌํ˜„ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ๋งŒ๋“ค์–ด ์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋– ํ•œ ๋ฌธ์ œ๋“ค์ด ๋ฐœ์ƒํ–ˆ์„๊นŒ์š”? ๊ธฐ์กด MVC๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด Model๊ณผ View๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ฑ์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก Model๊ณผ View์˜ ์–‘๋ฐฉํ–ฅ ์†Œํ†ต์ด ๋Š˜์–ด๋‚ฌ๊ณ , ์ด๊ฒƒ์€ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ.. 2022. 8. 3.
[Node.js] Prisma CRUD ๊ตฌํ˜„ํ•ด ๋ณด๊ธฐ (feat Prisma Studio) ์•ˆ๋…•ํ•˜์„ธ์š”. Foma ์ž…๋‹ˆ๋‹ค. ์ €๋ฒˆ ๊ธ€์— Prisma์— ๊ด€ํ•œ ๋‚ด์šฉ๊ณผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ–ˆ๋Š”๋ฐ์š”. (ํ˜น์‹œ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!) ์˜ค๋Š˜์€ Prisma๋ฅผ ์ด์šฉํ•˜์—ฌ CRUD๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Init Prisma ๋นˆ ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  npm์„ ์ดˆ๊ธฐํ™” ํ•ด์ค๋‹ˆ๋‹ค. npm init -y ๊ทธ ๋‹ค์Œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ prisma์™€ ts-node, @types/node๋ฅผ ์„ค์น˜ํ•ด ์ค๋‹ˆ๋‹ค. npm install prisma @prisma/client typescript ts-node @types/node --save-dev ๊ทธ ๋‹ค์Œ prisma๋ฅผ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค๋‹ˆ๋‹ค. npx prisma init ์•„๋ž˜์™€ ๊ฐ™์ด ์ž๋™์œผ๋กœ prisma ํด๋”์™€ env ํŒŒ์ผ์ด ์ƒ์„ฑ๋  ๊ฑฐ์—.. 2022. 8. 2.
[Node.js] Prisma๋ž€? (feat. ์‚ฌ์šฉํ•ด์•ผ ๋˜๋Š” ์ด์œ ) ์•ˆ๋…•ํ•˜์„ธ์š”. Foma ์ž…๋‹ˆ๋‹ค! ์ง€๋‚œ Sequelize, TypeORM๊ณผ ๊ฐ™์€ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ด์–ด์„œ Prisma๋ผ๋Š” ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ (ํ˜น์‹œ ORM์— ๋Œ€ํ•ด ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”!) Prisma๋ž€? ํ”„๋ฆฌ์ฆˆ๋งˆ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„  ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "์šฐ๋ฆฐ ์ฐจ์„ธ๋Œ€ Node.js์™€ TypeScript ORM์•ผ" ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐ€์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Prisma Client: Node.js์™€ Typescript๋ฅผ ์œ„ํ•œ ์ž๋™ ์ƒ์„ฑ๊ณผ ์•ˆ์ „ํ•œ ํƒ€์ž… ์ฟผ๋ฆฌ ๋นŒ๋” Prisma Migrate: ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ Prisma Studio: ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” GUI ํŽธ์ง‘๊ธฐ Prisma Client๋Š” REST API,.. 2022. 8. 2.
[Node.js] TypeORM๋กœ CRUD ๊ตฌํ˜„ํ•ด ๋ณด๊ธฐ (feat. MySQL) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค. ์ €๋ฒˆ ๊ธ€์—์„œ TypeORM์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ๋‹ค๋ค„ ๋ณด์•˜๋Š”๋ฐ์š”. ์ด๋ฒˆ ๊ธ€์—์„  TypeORM์œผ๋กœ ์ƒ์„ฑ, ์กฐํšŒ, ์‚ญ์ œ, ์ˆ˜์ •์„ ๋‹ค๋ค„๋ณด๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Init TypeORM ์šฐ์„  typeORM์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ์ƒ์„ฑํ•  ํ”„๋กœ์ ํŠธ ํด๋”์— typeorm ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. npm install typeorm -g ์•„๋ž˜์™€ ๊ฐ™์ด typeorm ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค. typeorm init --name ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ --database ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด๋‹น ๊ฒฝ๋กœ์— ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„๊ฑฐ์—์š”. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ VSCode๋กœ ์ผœ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ช‡ ๊ฐ€์ง€ ํด๋”์™€ ํŒŒ์ผ์ด ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ.. 2022. 8. 2.
[Node.js] TypeORM์ด๋ž€? (feat. ORM Library) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ €๋ฒˆ ๊ธ€ Sequelize์— ์ด์–ด์„œ Node.js ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ TypeORM์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‰์†Œ์— Typescript๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— "Sequelize๋ฅผ Typescript๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‚˜?" ํ•˜๊ณ  ์ฐพ์•„๋ดค๋”๋‹ˆ Typescript ๊ธฐ๋ฐ˜์œผ๋ก  TypeORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๋”๋ผ๊ตฌ์š”. (๋ฌผ๋ก  Sequlize๋„ Typescript๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ TypeORM์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ORM์ด๋ž€? ๋จผ์ € Sequelize๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ORM์˜ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ์š”. ๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ Sequelize๊ฐ€ Node.js์˜ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ .. 2022. 8. 2.
[iOS/UI] ํŠน์ • ๋ถ€๋ถ„๋งŒ ํˆฌ๋ช…ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ (feat. fillRule, evenOdd) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์— ํŠน์ • ๋ถ€๋ถ„๋งŒ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•ด์„œ ๊ทธ ๋ถ€๋ถ„๋งŒ ๋ณด์ด๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Preview Add a label ๋ฐฐ๊ฒฝ์— ๋ ˆ์ด๋ธ”์„ ํ•˜๋‚˜ ๋„ฃ์–ด ํˆฌ๋ช…ํ•œ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. let label = UILabel(frame: CGRect(x: view.center.x - 100, y: view.center.y - 100, width: 200, height: 200)) label.backgroundColor = .systemBlue label.textColor = .white label.font = UIFont.boldSystemFont(ofSize: 20) label.text = "Fomagran".. 2022. 7. 31.
[Node.js] Sequelize๋กœ C.R.U.D ๊ตฌํ˜„ํ•ด ๋ณด๊ธฐ (feat. MySQL) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ €๋ฒˆ Sequelize ์ด๋ก  ๊ธ€์— ์ด์–ด์„œ C.R.U.D๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (ํ˜น์‹œ ์ €๋ฒˆ ๊ธ€์„ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์„ ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•ด ์ฃผ์„ธ์š”) ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Install express npm install --save express cors npm install --save cors sequelize npm install --save sequelize mysql2 npm install --save mysql2 Sequelize init sequelize init Sequelize๋ฅผ init ํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ config, migrations, models, seeders ์ด๋ ‡๊ฒŒ 4๊ฐœ์˜ ํด๋”๊ฐ€ ์ƒ๊ธธ๊ฑฐ์—์š”. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” seeders๋Š” ์ด์šฉ๋˜์ง€ ์•Š์œผ๋‹ˆ ์‚ญ์ œํ•ด ์ค.. 2022. 7. 30.
[Node.js] Sequelize๋ž€? (feat. ORM) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ํ‰์†Œ์— SQL๋ฌธ์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ๋ถˆํŽธํ•œ ์ ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ์š”. ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ์ฝ”๋“œ๋กœ SQL๋ฌธ ์ž‘์„ฑ ๋Œ€์‹  ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์กฐ์ž‘์„ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Sequelize์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ORM์ด๋ž€? ๋จผ์ € Sequelize๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ORM์˜ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ์š”. ๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ Sequelize๊ฐ€ Node.js์˜ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ORM์€ Object Relational Mapping์˜ ์ค„์ž„๋ง๋กœ ๊ฐ์ฒด์™€ ๊ด€๊ณ„๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๊ฐ์ฒด์™€ ๊ด€๊ณ„๋ฅผ ๋งคํ•‘ํ•ด์ค€๋‹ค๋Š” ๊ฒŒ ์–ด๋–ค ๊ฒƒ์ผ๊นŒ์š”? ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ๋ชจ๋ธ์„ ์ •์˜ํ•  ๋•Œ Class๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„  Table์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. .. 2022. 7. 30.
[Data Structure] Trie๋ž€? (feat. ์ด๋ก ) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ž์—ด์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ด ๊ฒ€์ƒ‰์„ ํšจ์œจ์ ์œผ๋กœ ๋„์™€์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ ํŠธ๋ผ์ด(Trie)์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Trie๋ž€? ํŠธ๋ผ์ด(trie)๋Š” ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์ผ์ข…์ด๋‹ค. ๋™์  ์ง‘ํ•ฉ์ด๋‚˜ ์—ฐ๊ด€ ๋ฐฐ์—ด์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์ฃผ๋กœ ๋ฌธ์ž์—ด์ด ํ‚ค์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์™€ ๋‹ฌ๋ฆฌ ํŠธ๋ฆฌ์˜ ์–ด๋–ค ๋…ธ๋“œ๋„ ๊ทธ ๋…ธ๋“œ ์ž์ฒด์™€ ์—ฐ๊ด€๋œ ํ‚ค๋Š” ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  ๋…ธ๋“œ๊ฐ€ ํŠธ๋ฆฌ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ์œ„์น˜๊ฐ€ ์—ฐ๊ด€๋œ ํ‚ค๋ฅผ ์ •์˜ํ•œ๋‹ค. ์ฆ‰, ํ‚ค์˜ ๊ฐ’์€ ์ž๋ฃŒ ๊ตฌ์กฐ ์ „์ฒด์— ๋ถ„์‚ฐ๋œ๋‹ค. ๋…ธ๋“œ์˜ ๋ชจ๋“  ์ž์†์€ ๋…ธ๋“œ์— ์—ฐ๊ด€๋œ ๋ฌธ์ž์—ด์˜ ๊ณตํ†ต ์ ‘๋‘์‚ฌ๋ฅผ ๊ณต์œ ํ•œ๋‹ค. ๋ฃจํŠธ๋Š” ๋นˆ ๋ฌธ์ž์—ด์— ์—ฐ๊ด€๋œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ž์—ด์„ ์ฐจ๋ก€๋กœ ์ €์žฅํ•˜๋Š”.. 2022. 7. 29.
728x90
๋ฐ˜์‘ํ˜•