์ ์ฒด ๊ธ
-
- [React Native] npm install vs. expo installnpm install vs. expo install๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native) Expo ํ๋ก์ ํธ์์ ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ผ๋ก @npm install@๊ณผ @expo install@ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.์ด 2๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐจ์ด์ ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ํจํค์ง ์ค์น ๋ช ๋ น์ด1๏ธโฃ npm install$ npm install ํจํค์ง๋ช Node.js ํจํค์ง ๊ด๋ฆฌ ๋ช ๋ น์ดnpm(Node Package Manager)์ ์ฌ์ฉํ์ฌ, ํ๋ก์ ํธ์ package.json ํ์ผ์ ์ ์๋ ํจํค์ง๋ค์ ์ค์นํ๋ค.Expo ํ๋ก์ ํธ์์ @npm install@์ ์ฌ์ฉํ๋ฉด, Expo์ ๊ด๋ จ๋ ๋ฒ์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ง์ ํด๊ฒฐํด์ผ ํ ์ ์๋ค.Expo๊ฐ ์๊ตฌํ๋ ํน์ ๋ฒ์ ์ ํจํค์ง์ ํธํ๋์ง ์์ ์ ์์ผ๋ฏ๋ก ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ผ..
2025.04.03 -
- [React Native] ํ๊ฒฝ ๋ณ์ ํ์ผ ์ฌ์ฉํ๊ธฐ (react-native-dotenv)ํ๊ฒฝ ๋ณ์ ํ์ผ ์ฌ์ฉํ๊ธฐ (react-native-dotenv)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์์ ํ๊ฒฝ ๋ณ์ ํ์ผ(@env@)์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.@react-native-dotenv@ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐฉ๋ฒ1๏ธโฃ react-native-dotenv ํจํค์ง ์ค์นํ๊ธฐํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ ์คํํ์ฌ ํ๋ก์ ํธ์ @react-native-dotenv@ ํจํค์ง๋ฅผ ์ค์นํ๋ค.$ npm install react-native-dotenv # yarn add react-native-dotenv 2๏ธโฃ @.env@ ํ์ผ ์์ฑํ๊ธฐํ๋ก์ ํธ ์ต์๋จ ๊ฒฝ๋ก์ @.env@ ํ์ผ์ ์์ฑํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ค.API_URL=https://api.example.comAPP..
2025.04.03 -
- [CS ๊ฐ๋ ] ์์ง๋(Cohesion)์ ๊ฒฐํฉ๋(Coupling)์์ง๋(Cohesion)์ ๊ฒฐํฉ๋(Coupling)๋ค์ด๊ฐ๋ฉฐCS ๊ด๋ จ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ฉด ์์ฃผ ์ ํ๋ ์ฉ์ด์ธ ์์ง๋(Cohesion)์ ๊ฒฐํฉ๋(Coupling)์ ๋ํ์ฌ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ์์ง๋(Cohesion)๊ฐ๋ ๋ชจ๋ ๋ด๋ถ์ ๊ตฌ์ฑ ์์๋ค์ด ์๋ก ์ผ๋ง๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ฒ๋๋์ ์์ง๋๋ฅผ ๊ฐ์ง ๋ชจ๋์ ํ๋์ ๋ช ํํ ๊ธฐ๋ฅ์ด๋ ์ฑ ์์ ์ํํ๋ฉฐ, ๋ด๋ถ ์์๋ค์ด ๊ธด๋ฐํ๊ฒ ํ๋ ฅํ๋ค.์ ์ง๋ณด์์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ์ค๋ค. ์์ํ ํด๋์ค๊ฐ ํน์ ํ ๋ฐ์ดํฐ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๋ค๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด, ํด๋น ํด๋์ค๋ ๋์ ์์ง๋๋ฅผ ๊ฐ์ง๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ์์ ์ฝ๋์๋์ ํด๋์ค๋ ๊ณ์ข์ ๊ด๋ จ๋ ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ(์: ์ ๊ธ, ์ถ๊ธ, ์์ก ์กฐํ)์ ํ ๊ณณ์ ๋ชจ์๋์ด ํ๋์ ๋ช ํํ ์ญํ ๋ง ์ํํ๋๋ก ์ค๊ณ๋์๋ค.c..
2025.03.08 -
- [PyQt] ๋ค์ด์ผ๋ก๊ทธ(Dialog)๋ค์ด์ผ๋ก๊ทธ(Dialog)๋ค์ด๊ฐ๋ฉฐPyQt์์ ๋ค์ด์ผ๋ก๊ทธ(Dialog)์ ์๋ฏธ์ ์ข ๋ฅ๋ฅผ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ๋ค์ด์ผ๋ก๊ทธ(Dialog)๊ฐ๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ธฐ ์ํด ๋ํ๋๋ ๋ณ๊ฐ์ ์ฐฝ์ผ๋ฐ์ ์ผ๋ก ๋ค์ด์ผ๋ก๊ทธ๋ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ์ ๋ฐ๊ฑฐ๋, ํ์ธ ๋ฐ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ข ๋ฅPyQt์์๋ ์ฃผ๋ก @QDialog@ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๊ตฌํํ๋ค.PyQt์์ ๋ค์ด์ผ๋ก๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ 2๊ฐ์ง ํํ๋ก ์ ๊ณต๋๋ค. 1๏ธโฃ ๋ชจ๋ฌ ๋ค์ด์ผ๋ก๊ทธ(Modal Dialog)์ฌ์ฉ์์๊ฒ ํด๋น ์ฐฝ๊ณผ ์ํธ์์ฉ์ ์๋ฃํ๊ธฐ ์ ๊น์ง๋ ๋ค๋ฅธ ์ฐฝ๊ณผ์ ์ํธ์์ฉ์ ํ์ฉํ์ง ์๋๋ค.@exec_()@ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํ์ํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๋ซ๊ธฐ ์ ๊น์ง ๋ค๋ฅธ ์ฐฝ๊ณผ์ ์ํธ์์ฉ์ ์ฐจ๋จํ๋ค. 2๏ธโฃ ๋ชจ๋ธ๋ฆฌ์ค(๋น๋ชจ๋ฌ) ๋ค์ด์ผ๋ก๊ทธ(Mode..
2025.02.25 -
- [React Native] ์นด๋ฉ๋ผ ๊ถํ ์์ฒญ ๋ฉ์์ง ํ์ ๋ฐฉ๋ฒ (Expo)์นด๋ฉ๋ผ ๊ถํ ์์ฒญ ๋ฉ์์ง ํ์ ๋ฐฉ๋ฒ (Expo)๋ค์ด๊ฐ๋ฉฐ์์คํฌ(Expo)๋ฅผ ์ด์ฉํ์ฌ ์์ฑํ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native) ํ๋ก์ ํธ์์ ์นด๋ฉ๋ผ ๊ถํ ์์ฒญ ๋ฉ์์ง๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒํจํค์ง ์ค์นํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ ์คํํ์ฌ @expo-camera@ ํจํค์ง๋ฅผ ์ค์นํด์ค๋ค.$ npx expo install expo-camera ์ฑ ์ค์ ํ์ผ ๊ตฌ์ฑํ๊ธฐ (@app.json@)ํ๋ก์ ํธ์ ์ต์๋จ์ ์๋ ์ฑ ์ค์ ํ์ผ(@app.json@)์ ์๋์ ๋ด์ฉ์ ์ถ๊ฐํด์ค๋ค. /app.json{ "expo": { "plugins": [ [ "expo-camera", { "cameraPermission": "Allow $(PRODUCT_NAME) t..
2025.02.24 -
- [React Native] ํด๋ฆฝ๋ณด๋ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (expo-clipboard)ํด๋ฆฝ๋ณด๋ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (expo-clipboard)๋ค์ด๊ฐ๋ฉฐ์์คํฌ(Expo)๋ฅผ ์ด์ฉํ์ฌ ์์ฑํ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native) ํ๋ก์ ํธ์์ ํด๋ฆฝ๋ณด๋(Clipboard) ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๊ฐ๋จํ๊ฒ @expo-clipboard@ ํจํค์ง๋ฅผ ์ค์นํ์ฌ ํด๋ฆฝ๋ณด๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ค. expo-clipboard ํจํค์ง ์ค์นํ๊ธฐ$ npx expo install expo-clipboard ์ฌ์ฉํ๊ธฐํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ ๋๋ @Clipboard.setStringAsync()@ ํจ์๋ฅผ ์ฌ์ฉํ๊ณ , ํด๋ฆฝ๋ณด๋์ ์๋(๋ณต์ฌ๋) ๊ฐ์ ๊ฐ์ ธ์ฌ ๋๋ @fetchCopiedText()@ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.import { useState } from 'react';import { View, Text, Button..
2025.02.24 -
- [React Native] blurOnSubmit ์์ฑ๊ณผ submitBehavior ์์ฑblurOnSubmit ์์ฑ๊ณผ submitBehavior ์์ฑ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์ @TextInput@ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๋ @blurOnSubmit@ ์์ฑ๊ณผ @submitBehavior@ ์์ฑ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. blurOnSubmit ์์ฑ๊ฐ๋ ์ฐ์ @blurOnSubmit@ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ด @TextInput@ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๋ค. { setIsFocused(false); Keyboard.dismiss(); }}/> @blurOnSubmit@ ์์ฑ์ @TextInput@ ์ฐฝ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ , ์ํฐ(Enter) ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ๋ ฅํ ํ ์คํธ๊ฐ ์ ์ถ(Submit)๋๋๋ก ํด์ฃผ๋ ์์ฑ์ด๋ค.๋ฐ๋ผ์ ํ ์คํธ ํ๋๊ฐ ๋ธ๋ฌ ์ฒ๋ฆฌ๋๊ฒ ๋๋ค.๊ธฐ๋ณธ๊ฐ์..
2025.02.23 -
- [React Native] TailwindCSS IntelliSense ํ์ฑํํ๊ธฐ (VS Code)TailwindCSS IntelliSense ํ์ฑํํ๊ธฐ (VS Code)๋ค์ด๊ฐ๋ฉฐVS Code์์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)๋ฅผ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋, TailwindCSS IntelliSense๋ฅผ ํ์ฑํ ์ํค๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ(1) Tailwind CSS IntelliSense ํ์ฅ ์ค์นํ๊ธฐVS Code์์ Tailwind CSS IntelliSense ํ์ฅ์ ์ค์นํ๋ค. Tailwind CSS IntelliSense - Visual Studio MarketplaceExtension for Visual Studio Code - Intelligent Tailwind CSS tooling for VS Codemarketplace.visualstudio.com (2) Tailwi..
2025.02.19 -
- [Testing] ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (Vite, TypeScript, React)๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (Vite, TypeScript, React)๋ค์ด๊ฐ๋ฉฐVite, TypeScript, React๋ฅผ ์ด์ฉํ์ฌ ํ๋ก์ ํธ ํ ํ๋ฆฟ์ ์์ฑํ๊ณ , ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ1๏ธโฃ ํ๋ก์ ํธ ์์ฑํ๊ธฐVite ํ๋ก์ ํธ ์ค์ ํ๊ธฐํ๋ก์ ํธ ์ด๋ฆ์ ์ค์ ํ๋ค.@React@์ @TypeScript@๋ฅผ ์ ํํ๋ค.$ npm create vite@latest ์์กด์ฑ ์ค์นํ๊ธฐ์๋์ ๋ช ๋ น์ ์คํํ์ฌ ํจํค์ง๋ฅผ ์ค์นํ ํ, ์คํํด๋ณธ๋ค.$ npm install$ npm run dev 2๏ธโฃ Vite ํ๊ฒฝ์์ ํ ์คํธ ์ค์ ํ๊ธฐVitest ์ค์นํ๊ธฐ์๋์ ๋ช ๋ น์ ์คํํ์ฌ Vitest๋ฅผ ์ค์นํ๋ค.$ npm install -D vitest VitestVite ๊ธฐ๋ฐ์ ๋น ๋ฅด๊ณ ๊ฐ..
1 2025.02.15 -
- [Testing] ์ํํธ์จ์ด ํ ์คํธ ๋ฐฉ๋ฒ์ํํธ์จ์ด ํ ์คํธ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ๋ค์ํ ์ํํธ์จ์ด ํ ์คํธ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. โ ๋จ์ ํ ์คํธ(Unit Test)๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฅ ์์ ๋จ์(๋ฉ์๋, ํจ์, ํด๋์ค ๋ฑ)๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธํ๋ ๋ฐฉ๋ฒ๋จ์ผ ๋ชจ๋, ํจ์, ๋ฉ์๋๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๊ฒ์ฆ์ธ๋ถ ์ข ์์ฑ(DB, ๋คํธ์ํฌ ๋ฑ)์ ๋ฐฐ์ ํ๊ธฐ ์ํด Mocking(๋ชจ์ ๊ฐ์ฒด) ํ์ฉ๋น ๋ฅด๊ฒ ์คํ๋๋ฉฐ, ๊ฐ๋ฐ ์ด๊ธฐ์ ๋ฒ๊ทธ๋ฅผ ์ฝ๊ฒ ์ก์ ์ ์๋ค. ์์@add(2, 3)@ ํจ์๊ฐ @5@๋ฅผ ๋ฐํํ๋์ง ํ์ธํ๊ธฐimport unittestdef add(a, b): return a + bclass TestMathOperations(unittest.TestCase): def test_add(self): self.assertEqual(add(2, 3), ..
2025.02.15 -
- [Tip] ์์ถ ํด์ ์ "ํ์ผ ์ด๋ฆ์ด๋ ํ์ฅ๋ช ์ด ๋๋ฌด ๊น๋๋ค" ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์์ถ ํด์ ์ "ํ์ผ ์ด๋ฆ์ด๋ ํ์ฅ๋ช ์ด ๋๋ฌด ๊น๋๋ค" ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ์น ๊ฐ๋ฐ ํ๋ก์ ํธ ํด๋๋ฅผ ์์ถํ ํ, ์์ถ ํด์ ๋ฅผ ํ ๋, "ํ์ผ ์ด๋ฆ์ด๋ ํ์ฅ๋ช ์ด ๋๋ฌด ๊น๋๋ค" ์ ๊ฐ์ ์ค๋ฅ๋ก ์ธํด ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.์๋์ฐ(Windows)์์ '๊ฒฝ๋ก + ํ์ผ ์ด๋ฆ + ํ์ฅ์'์ ์ต๋ ๊ธธ์ด๊ฐ 260์์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.์ด๋, ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒโ ์์ ๊ธธ์ด ์ ํ ํด์ ํ๊ธฐ@[Window]@ + @[R]@ ํค๋ฅผ ๋๋ฌ ์คํ์ฐฝ์ ๋์ด ํ, @regedit@์ ์คํํ๋ค. ๋ ์ง์คํธ๋ฆฌ ํธ์ง๊ธฐ์์ ์๋์ ๊ฒฝ๋ก๋ก ์ด๋ํ๋ค.์ปดํจํฐ\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem @LongPathsEnabled@ ๊ฐ์ @1@๋ก..
1 2025.02.11 -
- [Database] ์ ๊ทํ ๋ฐฉ๋ฒ ์ ๋ฆฌ (1NF, 2NF, 3NF, BCNF, 4NF, 5NF)์ ๊ทํ ๋ฐฉ๋ฒ ์ ๋ฆฌ (1NF, 2NF, 3NF, BCNF, 4NF, 5NF)๋ค์ด๊ฐ๋ฉฐ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทํ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ์ฉ์ด ์ ๋ฆฌ์์ฑ(Attribute) : ํ ์ด๋ธ์ ์ปฌ๋ผ(Column)ํค(Key) : ํ ํ(Row)์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ (๋๋ ์์ฑ๋ค์ ์งํฉ)๊ธฐ๋ณธํค(Primary Key) : ํ ์ด๋ธ์ ๋ํํ๋ ์ ์ผํ ํคํ๋ณดํค(Candidate Key) : ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ๋ชจ๋ ํค๊ธฐ๋ณธํค๋ ํ๋ณดํค ์ค์์ ์ ํํ ํ๋์ ํค์ด๋ค.ํ๋ณดํค๋ ์ํผํค ์ค์์ ์ต์์ฑ์ ๋ง์กฑํ๋ ํค์ด๋ค.์ํผํค(Super Key) : ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง ์ต์์ฑ์ ๋ง์กฑํ์ง ์์ ์ ์๋ ํค์ ์ผ์ฑ(Uniqueness)ํน์ ์์ฑ(๋๋ ์์ฑ๋ค์ ์กฐํฉ)์ด ์ค๋ณต๋์ง ์๊ณ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ ์ฑ์ง์ ์ผ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ธฐ๋ณธํค(P..
2025.02.10 -
- [Database] ์ ๊ทํ(Normalization), ๋ฐ์ ๊ทํ(Denormalization), ์ด์(Anomaly)์ ๊ทํ(Normalization), ๋ฐ์ ๊ทํ(Denormalization), ์ด์(Anomaly)๋ค์ด๊ฐ๋ฉฐ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๊ทํ(Normalization)์ ๋ฐ์ ๊ทํ(Denormalization), ์ด์(Anomaly)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ์ ๊ทํ(Normalization)๊ฐ๋ ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ต์ํํ๊ณ , ์ด์ ํ์(Anomalies)์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ตฌ์กฐํํ๋ ๊ณผ์ 1์ฐจ ์ ๊ทํ(1NF), 2NF, 3NF, BCNF, 4NF, 5NF ๋ฑ์ ์ ๊ทํ์ด ์๋ค. ์ฅ์ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์ ์ด์ ธ ๊ฐฑ์ ์ด๋ ์ญ์ ์ ํ ๋ฒ๋ง ๋ณ๊ฒฝํด๋ ์ผ๊ด์ฑ์ด ์ ์ง๋๋ค.๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ณณ์ ๋ณด๊ดํ์ง ์์๋ ๋์ด ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์๋ค.ํ ์ด๋ธ ๊ตฌ์กฐ๊ฐ ์ ์ ๋ฆฌ๋์ด ์์ด ๊ฐฑ์ ์ด์, ์ญ์ ์ด์, ์ฝ์ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ค์..
2025.02.10 -
- [Network] GraphQL (with Apollo GraphQL)GraphQL (with Apollo GraphQL)๋ค์ด๊ฐ๋ฉฐ๋ฐ์ดํฐ ์ง์ ์ธ์ด ์ค ํ๋์ธ GraphQL์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. GraphQL๊ฐ๋ Meta(Facebook)๊ฐ ๊ฐ๋ฐํ ๋ฐ์ดํฐ ์ง์ ์ธ์ด(Data Query Language)ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ ์์ฒญ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ๊ธฐ์ REST API์ ๋์์ผ๋ก ์ฃผ๋ชฉ๋ฐ๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์์ฒญ์ ์์ด ๋ ์ ์ฐํ๊ณ ํจ์จ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ค.ํด๋ผ์ด์ธํธ๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ง ์ ํํ ์์ฒญํ ์ ์๋๋ก ์ง์ํ๋ค.๋ฉํ(Meta)์ ์๋น์ค, Pinterest, Airbnb, AWS, Microsoft ๋ฑ ๋ง์ ๊ณณ์์ ์ด์ฉํ๊ณ ์๋ค. GraphQL | A query language for your APIEvolve your API without..
2025.01.24 -
- [React.js] ํผ(Form) ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (React 19)ํผ(Form) ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (React 19)๋ค์ด๊ฐ๋ฉฐ์์ ์ฝ๋์ ํจ๊ป React 19์์ ์ ๋ฐ์ดํธ ๋ ํผ(Form) ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํ์ฌ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์๋์ ์ฝ๋๋ React 19์์ ์๋ก ์ถ๊ฐ๋ Form ๊ด๋ จ ๊ธฐ๋ฅ๋ค์ ์ ์ฉํ ์ฝ๋์ด๋ค. Signup.jsximport { useActionState } from 'react';import { isEmail, isNotEmpty, isEqualToOtherValue, hasMinLength,} from '../util/validation';export default function Signup() { // React 19 ์ด์์์๋ ํผ ์ ์ถ ์, formData ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ ํจ์์ ์ธ์๋ก ๊ฐ์ ธ์ ํน์ ํ๋์ ์ ๋ ฅ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค..
2025.01.21 -
- [PyQt] ํ ์ด๋ธ(QTableWidget) ๋ด์ฉ ์ง์ฐ๋ ๋ฐฉ๋ฒํ ์ด๋ธ(QTableWidget) ๋ด์ฉ ์ง์ฐ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐPyQt์ ํ ์ด๋ธ(QTableWidget)์ ๋ด์ฉ์ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ด์ฉ๋ฐฉ๋ฒ โ : @setRowCount(0)@ ํ ์ด๋ธ์ ํ ์๋ฅผ 0๊ฐ๋ก ์ค์ ํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.๋น ๋ฅด๊ณ ๊ฐ๋จํ๊ฒ ํ ์ด๋ธ์ ํ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฆ์ ์ ๊ฑฐํ๋ค.์ด ํค๋(Header)๋ ๊ทธ๋๋ก ์ ์ง๋๋ค.table_widget.setRowCount(0) ๋ฐฉ๋ฒ โก : @clearContents()@ํ ์ด๋ธ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋น์ฐ์ง๋ง, ํ๊ณผ ์ด์ ๊ตฌ์กฐ๋ ์ ์งํ๋ ๋ฐฉ๋ฒ์ด๋ค.์ด ํค๋์ ํ์ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.๊ธฐ์กด์ ์ค์ ํ ํ ์์ ์ด ์๋ฅผ ์๋์ผ๋ก ์ด๊ธฐํํ๋ ค๋ฉด ์ถ๊ฐ ์์ ์ด ํ์ํ๋ค.table_widget.clearContents() ๋ฐฉ๋ฒ โข : ๋ชจ๋ ํ์ ๋ฐ๋ณตํ์ฌ..
2025.01.16 -
- [Next.js] <Link> ์ปดํฌ๋ํธ ํด๋ฆญ ์, ์ต์๋จ์ผ๋ก ์คํฌ๋กค ๋๋ ํ์ ๋ง๋ ๋ฐฉ๋ฒ์ปดํฌ๋ํธ ํด๋ฆญ ์, ์ต์๋จ์ผ๋ก ์คํฌ๋กค ๋๋ ํ์ ๋ง๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐNext.js์ @@ ์ปดํฌ๋ํธ๋ฅผ ํด๋ฆญํ๋ฉด, ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฉด์ ์ต์๋จ์ผ๋ก ์คํฌ๋กค์ด ๋๋ค.์ด๋ฌํ ํ์์ ๋ง๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๊ฐ๋จํ๋ค. ๋ค์๊ณผ ๊ฐ์ด @@ ์ปดํฌ๋ํธ์ @scroll@ ์์ฑ์ ๊ฐ์ @false@๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.import Link from 'next/link'; Move ์ฐธ๊ณ ์ฌ์ดํธ | Next.js" data-og-description="Enable fast client-side navigation with the built-in `next/link` component." data-og-host="nextjs.org" data-og-source-url="https://nextjs.org/docs/app/api-refe..
2024.12.20 -
- [React Native] ํด๋ฆญ ์, ๋ฆฌํ ํจ๊ณผ(Ripple Effect) ์ฃผ๋ ๋ฐฉ๋ฒํด๋ฆญ ์, ๋ฆฌํ ํจ๊ณผ(Ripple Effect) ์ฃผ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์์ ์์ ํด๋ฆญ ์, ๋ฆฌํ ํจ๊ณผ(Ripple Effect)๋ฅผ ์ค ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ์ฐ์ ํน์ ์์์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๋ฃ๊ธฐ ์ํด์๋ @Pressable@ ์ปดํฌ๋ํธ๋ก ํด๋น ์์๋ฅผ ๊ฐ์ธ์ค์ผ ํ๋ค.import { View, Text, Pressable } from 'react-native';function MyComponent(props) { return ( {/* ํด๋ฆญ ํจ๊ณผ๋ฅผ ๋ฃ์ ์์๋ฅผ ๊ฐ์ธ์ค๋ค. */} {props.text} );} Android OS@Pressable@ ์ปดํฌ๋ํธ์ @android_ripple@ ์์ฑ์ ์ถ๊ฐํ์ฌ ์์ ํด๋ฆญ..
1 2024.12.11 -
- [React Native] FlatListFlatList๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์ @FlatList@ ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FlatList๊ฐ๋ ํจ์จ์ ์ผ๋ก ๋๋์ ์คํฌ๋กค ๊ฐ๋ฅํ ํญ๋ชฉ์ ๋ ๋๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ต์ ํ๋ ๊ฐ์ ์คํฌ๋กค๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ , ์คํฌ๋กค ์ ํ์ํ ํญ๋ชฉ๋ง ๋ ๋๋งํ๋ค.@ScrollView@ ์ปดํฌ๋ํธ์์ ์ฐจ์ด์ ์ฃผ์ ์์ฑ์์ฑ์ค๋ช @data@- ๋ ๋๋งํ ๋ฐ์ดํฐ ๋ฐฐ์ด(Array)์ ์ ๋ฌ- ๋ฐฐ์ด์ ๊ฐ ์์๋ ๋ ๋๋ง๋ ํญ๋ชฉ์ ๋ฐ์ดํฐ@renderItem@- ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ ๋๋งํ ์ง ์ ์ํ๋ ํจ์- ๋งค๊ฐ๋ณ์๋ก @{ item, index }@ ํํ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ค.@keyExtractor@- ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํค๋ฅผ ๋ฐํํ๋ ํจ์- ๊ธฐ๋ณธ์ ์ผ๋ก @item.key@ ๋๋ @item.id@๋ฅผ ์ฌ์ฉ..
2024.12.10 -
- [TypeScript] ํ๊ฒฝ ๋ณ์ ํ์ ์ค์ ํ๊ธฐํ๊ฒฝ ๋ณ์ ํ์ ์ค์ ํ๊ธฐ๋ค์ด๊ฐ๋ฉฐํ์ ์คํฌ๋ฆฝํธ์์ ํ๊ฒฝ ๋ณ์(Environment Variable)์ ํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ์ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ ๋ณ์ ํ์ผ์ด ์๋ค๊ณ ํด๋ณด์.์ด์ ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ํ๋ก์ ํธ ๋ด์ ๋ค๋ฅธ ํ์ผ์์ ๋ถ๋ฌ์์ ์ฌ์ฉํด๋ณผ ๊ฒ์ด๋ค. (Next.js ํ๋ ์์ํฌ ์ฌ์ฉ).env.localNEXT_PUBLIC_API_KEY="="***********"NEXT_PUBLIC_SPACE_ID="**************************" (1) @!@(Non-Null Assertion) ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ@!@๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ด @undefined@๊ฐ ์๋์ ํ์ ์คํฌ๋ฆฝํธ์ ๋ช ์ํ๋ค.ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ํด๋น ํ๊ฒฝ ๋ณ์๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋..
3 2024.12.09 -
- [Android] ADB(Android Debug Bridge) ๋ช ๋ น์ด ์ ๋ฆฌADB(Android Debug Bridge) ๋ช ๋ น์ด ์ ๋ฆฌ๋ค์ด๊ฐ๋ฉฐADB(Android Debug Bridge) ๋ช ๋ น์ด๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค. ๋ช ๋ น์ด ์ฌ์ฉ ์ ์ฃผ์ ์ฌํญ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์ @[์ค์ ]@์์ @[๊ฐ๋ฐ์ ๋๊ตฌ]@๋ฅผ ํ์ฑํ ์ํจ ํ, @USB ๋๋ฒ๊น @์ ํ์ฑํ ํด์ค์ผ ํ๋ค.PC์ Android SDK Platform-Tools๋ฅผ ์ค์นํด์ผ ํ๋ค.์๋๋ก์ด๋ ์คํ๋์ค(Android Studio)๋ฅผ ์ค์นํ ๊ฒฝ์ฐ, ํจ๊ป ์ค์น๋๋ค. SDK ํ๋ซํผ ๋๊ตฌ ์ถ์ ๋ ธํธ | Android Studio | Android DevelopersAndroid SDK ํ๋ซํผ ๋๊ตฌ๋ Android SDK์ ๊ตฌ์ฑ์์์ ๋๋ค.developer.android.com ๋ช ๋ น์ด๊ธฐ๋ณธ ๋ช ๋ น์ด๋ช ๋ น์ด์ค๋ช @adb devices@์ฐ๊ฒฐ๋ ์๋๋ก์ด๋ ๊ธฐ๊ธฐ ๋ชฉ..
2024.12.05 -
- [Android] VS Code์์ ๋ช ๋ น์ด๋ก ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ ์คํ ๋ฐฉ๋ฒVS Code์์ ๋ช ๋ น์ด๋ก ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ ์คํ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๋ ค๋ฉด ์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ์คํํ ํ, ์ง์ ๊ฐ์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํ์์ผ์ค์ผ ํ๋ค.์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ์คํ์ํฌ ํ์ ์์ด, ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code) ํฐ๋ฏธ๋์์ ๋ช ๋ น์ด๋ก ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒWindows@[ํ๊ฒฝ ๋ณ์]@์ @[์์คํ ๋ณ์]@์์ @Path@ ํญ๋ชฉ์ ์ ํํ๊ณ ์๋์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํด์ค๋ค.C:\Users\\AppData\Local\Android\Sdk\emulator ์ค์น๋ ๊ฐ์ ์ฅ์น ๋ชฉ๋ก์ ํ์ธํ๋ค.$ emulator -list-avds ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๋ค.$ emulator -avd @AVD_NAME@์ ์คํ์ํค๊ณ ์ ํ๋ ๊ฐ์ ์ฅ์น ์ด๋ฆ์ ๋ฃ..
2024.12.02 -
- [Android] adb ๋ช ๋ น์ด ์คํ ๋ฐฉ๋ฒ (adb: command not found ๋ฌธ์ ํด๊ฒฐ๋ฒ)adb ๋ช ๋ น์ด ์คํ ๋ฐฉ๋ฒ (adb: command not found ๋ฌธ์ ํด๊ฒฐ๋ฒ)๋ค์ด๊ฐ๋ฉฐํฐ๋ฏธ๋์ @adb@ ๊ด๋ จ ๋ช ๋ น์ ์คํํ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.$ adb --versionbash: adb: command not found ADB(Android Debug Bridge)๊ฐ๋ ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์ ์ปดํจํฐ ๊ฐ์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๊ณ ๋๋ฒ๊น ์์ ์ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ช ๋ น์ค(CLI) ๋๊ตฌ์๋๋ก์ด๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ์๋์ ๊ฐ์ ์์ ์ ์ฌ์ฉ๋๋ค.โ๏ธ ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์์ ํต์ โ๏ธ ์ฑ ์ค์น ๋ฐ ํ ์คํธโ๏ธ ๋๋ฒ๊น โ๏ธ ํ์ผ ์ ์ก โ๏ธ ์ ๋ช ๋ น ์คํโ๏ธ ํฌํธ ํฌ์๋ฉADB๋ Android SDK์ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์๋๋ก์ด๋ ์คํ๋์ค(Android Studio)๋ฅผ..
2 2024.12.02 -
- [๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ] ํผ์ด์จ ์๊ด ๊ณ์ ๊ตฌํ๊ธฐํผ์ด์จ ์๊ด ๊ณ์ ๊ตฌํ๊ธฐ๋ค์ด๊ฐ๋ฉฐํผ์ด์จ ์๊ด ๊ณ์(Pearson Correlation Coefficient)๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.2024๋ 9ํ ์ 3์ ํ ๊ธฐ์ถ ๋ฌธ์ ๋ก ํผ์ด์จ ์๊ด ๊ณ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ์ถ์ ๋์๋ค. ํผ์ด์จ ์๊ด ๊ณ์(Pearson Correlation Coefficient)๊ฐ๋ ๋ ๋ณ์ ๊ฐ์ ์ ํ ๊ด๊ณ์ ๊ฐ๋์ ๋ฐฉํฅ์ ์ธก์ ํ๋ ํต๊ณ์ ์งํ-1์์ 1 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋ค.$$r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2 \cdot \sum (y_i - \bar{y})^2}}$$โ๏ธ $x_i, y_i$ : ๋ฐ์ดํฐ ๊ฐโ๏ธ $\bar{x}, \bar{y}$ : ๊ฐ๊ฐ์ ํ๊ท ๊ฐ ํน์ง๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๊ฐ ์ ํ..
3 2024.11.30 -
- [๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ] ์ํ์ฅ์์ ์์๋๋ฉด ์ข์ ํ์ํ์ฅ์์ ์์๋๋ฉด ์ข์ ํ๋ค์ด๊ฐ๋ฉฐ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ ์ํ์ฅ์์ ์์๋๋ฉด ์ข์ ํ์ ์ ๋ฆฌํด๋ณธ๋ค. ํ1๏ธโฃ ๋ฉ๋ชจ ๊ธฐ๋ฅ ํ์ฉํ๊ธฐ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ ์ํ์ ๊ตฌ๋ฆ ์จ๋ผ์ธ IDE๋ฅผ ํตํด ์งํ๋๋ค. ๊ตฌ๋ฆEDU - ๋ชจ๋๋ฅผ ์ํ ๋ง์ถคํ IT๊ต์ก๊ตฌ๋ฆEDU๋ ๋ชจ๋๋ฅผ ์ํ ๋ง์ถคํ IT๊ต์ก ํ๋ซํผ์ ๋๋ค. ๊ฐ์ธ/ํ๊ต/๊ธฐ์ ๋ฐ ๊ธฐ๊ด ๋ณ ์ต์ ํ๋ IT๊ต์ก ์๋ฃจ์ ์ ๊ฒฝํํด๋ณด์ธ์. ๊ธฐ์ด๋ถํฐ ์ค๋ฌด ํ๋ก๊ทธ๋๋ฐ ๊ต์ก, ์ ๊ตญ ์ด์ค๊ณ /๋ํ๊ต ์จ๋ผ์ธ ๊ฐ์, ๊ธฐ์ /edu.goorm.io ๊ตฌ๋ฆ ์จ๋ผ์ธ IDE๋ ๋ฉ๋ชจ ๊ธฐ๋ฅ์ ์ง์ํ๋ค. @help@, @dir@ ๋ช ๋ น์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ๋ถ๋ถ ๋ฌธ์ ์ ์ ๋ต ๋ฑ์ ๋ฉ๋ชจ์ฅ์ ๊ธฐ๋กํด๋๋ฉด ์ ์ฉํ๋ค.์ฐธ๊ณ ๋ก, ๊ตฌ๋ฆ ์จ๋ผ์ธ IDE์ ํฐ๋ฏธ๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ํค๋ณด๋๋ฅผ ์ด์ฉํ์ฌ ๋ณต์ฌ(Ctrl+C) ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐ(Ctrl+V)๋ฅผ ํ ..
2024.11.29 -
- [Python] print ๋ฌธ ์ถ๋ ฅ ๋ฌธ์์ ์๊น ๋ฃ๋ ๋ฐฉ๋ฒ (ANSI Escape Code)print ๋ฌธ ์ถ๋ ฅ ๋ฌธ์์ ์๊น ๋ฃ๋ ๋ฐฉ๋ฒ (ANSI Escape Code)๋ค์ด๊ฐ๋ฉฐํ์ด์ฌ(Python)์์ @print@ ๋ฌธ์ผ๋ก ํน์ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ ๋, ์๊น์ ๋ฃ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ANSI Escape Code๊ฐ๋ ํ ์คํธ๋ฅผ ์ถ๋ ฅํ ๋, ์์, ์คํ์ผ ๋ฐ ๊ธฐํ ์์ฑ์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํน์ํ ์ ์ด ๋ฌธ์์ด์ฃผ๋ก ํฐ๋ฏธ๋ ๋๋ ์ฝ์์์ ์ถ๋ ฅ๋๋ ํ ์คํธ์ ๋ค์ํ ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.์ด ์ฝ๋๋ @\033@ (ํน์ @\x1b@)๋ก ์์ํ๋ฉฐ, ๋ค์ @[@์ ํน์ @์์ ์ฝ๋@ ๋๋ @์คํ์ผ ์ฝ๋@๊ฐ ํฌํจ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์๋ @m@์ผ๋ก ๋๋๋ ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.\033[m \033[0m # ๋ฐฉ๋ฒ1\x1b[m \x1b[0m # ๋ฐฉ๋ฒ2 ⇒ @\033@ / @\x1b@ : ์ด์ค์ผ์ดํ ๋ฌธ์..
1 2024.11.29 -
- [Service] ContentfulContentful๋ค์ด๊ฐ๋ฉฐ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 -
- [๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ] ์ 3์ ํ: ๊ฐ์ค ๊ฒ์ ์ฐ์ต ๋ฌธ์ ์ 3์ ํ: ๊ฐ์ค ๊ฒ์ ์ฐ์ต ๋ฌธ์ ๋ค์ด๊ฐ๋ฉฐ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ ์ 3์ ํ ๊ฐ์ค ๊ฒ์ ํํธ์ ์ฐ์ต ๋ฌธ์ ๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค. ๋จ์ผ ํ๋ณธ T-๊ฒ์ (One Sample T-Test)๊ฐ๋ ํ๋ณธ ํ๊ท ์ด ๋ชจํ๊ท ๊ณผ ๋ค๋ฅธ์ง๋ฅผ ๊ฒ์ ํ๋ ํต๊ณ์ ๋ฐฉ๋ฒโ๏ธ ๊ท๋ฌด ๊ฐ์ค($H_0$) : ํ๋ณธ์ ํ๊ท ์ ํน์ ๊ฐ(๋ชจ์ง๋จ ํ๊ท )๊ณผ ๊ฐ๋ค.โ๏ธ ๋๋ฆฝ ๊ฐ์ค($H_1$) : ํ๋ณธ์ ํ๊ท ์ ํน์ ๊ฐ(๋ชจ์ง๋จ ํ๊ท )๊ณผ ๋ค๋ฅด๋ค.๋จ์ผ ํ๋ณธ T-๊ฒ์ ์ 1๊ฐ์ง๋ฅผ ๋ง์กฑํ๋ค๊ณ ๊ฐ์ ํ๋ค.๋จ์ผ ํ๋ณธ T-๊ฒ์ ์ ํ๋ณธ์ด ์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ๊ฐ์ ํ๋ค. (์ ๊ท์ฑ ๊ฐ์ ๋ง์กฑ)ํ๋ณธ์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ (30๊ฐ ๋ฏธ๋ง) ๋ฐ์ดํฐ๊ฐ ์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๋์ง ํ์ธํ๋ค.์ ๊ท์ฑ ๊ฐ์ ์ ํ์ธํ๊ธฐ ์ํด์๋ ์คํผ๋ก-์ํฌ ๊ฒ์ ์ ์ด์ฉํ๋ค.@scipy.stats@ ํจํค์ง์ @shapiro@ ํจ์๋ฅผ ์ด์ฉํ๋ค.์ ๊ท..
2024.11.27 -
- [React Native] Expo Go ์ฑ์์ Expo ํ๋ก์ ํธ ์ฐ๊ฒฐ ์๋๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (There was a problem running the requested app)Expo Go ์ฑ์์ Expo ํ๋ก์ ํธ ์ฐ๊ฒฐ ์๋๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (There was a problem running the requested app)๋ค์ด๊ฐ๋ฉฐExpo Go ์ฑ์์ PC์์ ์์ฑํ Expo ํ๋ก์ ํธ๋ฅผ ์ฐ๊ฒฐํ ๋, ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒโ ๋์ผํ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํ๊ธฐPC์ Expo Go ์ฑ์ด ์ค์น๋ ๋ชจ๋ฐ์ผ ์ฅ์น๊ฐ ๋ชจ๋ ๋์ผํ ๋คํธ์ํฌ(์์ดํ์ด)์ ์ ์๋์ด ์๋์ง ํ์ธํ๋ค. โก ์ ์ดํ์์ NodeJS ๊ด๋ จ ๊ธฐ๋ฅ ์ค์ ํ๊ธฐ[์ ์ดํ] > [์์คํ ๋ณด์] > [Windows Defender ๋ฐฉํ๋ฒฝ] > [ํ์ฉ๋๋ ์ฑ]์์ @NodeJS JavaScript Runtime@ ํญ๋ชฉ์ @[๊ฐ์ธ]@, @[๊ณต์ฉ]@์ ๋ชจ๋ ์ฒดํฌํด์ค๋ค.
2024.11.26 -
- [๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ] ์ 2์ ํ ์ํ ์ค๋น์ 2์ ํ ์ํ ์ค๋น๋ค์ด๊ฐ๋ฉฐ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ ์ 2์ ํ ์ํ ์ค๋น๋ฅผ ์ํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค.์ 2์ ํ์ ๋ฐ์ดํฐ ๋ชจํ ๊ตฌ์ถ ๋ฐ ํ๊ฐ์ ๊ด๋ จ๋ ๋ด์ฉ์ด ํฌํจ๋๋ค.์ 2ํ ~ ์ 8ํ ๊ธฐ์ถ ๋ณํ ๋ฌธ์ ์ ํ์ด ๋ฐฉ๋ฒ์ ํจ๊ป ์ ๋ฆฌํ์๋ค.๋ชจ๋ ๋ฌธ์ ์ ๋ชจ๋ธ๋ง์ ์ฑ๋ฅ์ด ์ค์ํ๊ฒ ๋์ค๋ ๋๋ค ํฌ๋ ์คํธ(Random Forest)๋ฅผ ์ด์ฉํ์ฌ ์ํํ์๋ค. ๋๋ค ํฌ๋ ์คํธ(Random Forest)๊ฐ๋ ์์๋ธ ํ์ต(Ensemble Learning) ๋ฐฉ๋ฒ ์ค ํ ๋ฐฉ๋ฒ์ฌ๋ฌ ๊ฐ์ ์์ฌ๊ฒฐ์ ๋๋ฌด(Decision Tree)๋ฅผ ์์ฑํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํ์ฌ ์์ธก ์ฑ๋ฅ์ ๋์ด๋ ์๊ณ ๋ฆฌ์ฆ๋งค์ฐ ์ ์ฐํ๊ณ ๊ฐ๋ ฅํ์ง๋ง, ๋ฐ์ดํฐ๊ฐ ์ ์ค๋น๋์ง ์์ผ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค. ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ1๏ธโฃ ์ข ์ ๋ณ์๋ฅผ ๋ฒ์ฃผํ ๋ณ์๋ก ๋ฐ๊พธ์ง ์์๋ ๋๋ค.๋๋ค ํฌ๋ ์คํธ๋ ํ๊ท(R..
2024.11.26