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. ์ด์ 1 2 3 4 5 ยทยทยท 49 ๋ค์ 728x90 ๋ฐ์ํ