๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€67

[React-Native] ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง ๐Ÿ’ก ์ธ๋ผ์ธ(inline) ์Šคํƒ€์ผ๋ง ์ปดํฌ๋„ŒํŠธ์˜ ํƒœ๊ทธ์— ์ง์ ‘ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. // src/App.js import React from "react"; import { View, Text } from "react-native"; const App = () => { return ( Inline Styling - Text Inline Styling - Error ); }; export default App; ๐Ÿ’ก ํด๋ž˜์Šค ์Šคํƒ€์ผ๋ง ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ์— StyleSheet ์— ์ •์˜๋œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. import React from "react"; import { StyleSheet, View, Text } from "react-native"; const App = () => { return ( I.. 2021. 11. 4.
[React-Native] React Native ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ž€ ๐Ÿ’ก ์ปดํฌ๋„ŒํŠธ๋ž€? ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๋ฆฝ ๋ธ”๋ก์œผ๋กœ, ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” UI ์š”์†Œ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ˆœํžˆ UI ์—ญํ• ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์†์„ฑ์ด๋‚˜ ์ž์‹ ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ํ‘œํ˜„์ด ๋‹ฌ๋ผ์ง€๊ณ  ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก JSX JSX ๋Š” ๋งˆ์น˜ HTML ์„ ์ž‘์„ฑํ•œ ๊ฒƒ ๊ฐ™์€ ์ฝ”๋“œ์ด๋‹ค. ์ด๋Ÿฌํ•œ JSX ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•œ ๋ฌธ๋ฒ•์  ํŽธ์˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ™•์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. export default function App() { return ( Open up App.js to start working on your app! ); } ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ‘œํ˜„ํ•  ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ๋กœ ๊ฐ์‹ธ์•ผ ํ•œ๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ Text ์™€ StatusBar ํƒœ๊ทธ๋ฅผ View ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ๊ณ  ์žˆ๋‹ค. V.. 2021. 11. 3.
[React-Native] React Native ์‹œ์ž‘ํ•˜๊ธฐ ๐Ÿ’ก ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ 1. node.js ์„ค์น˜ํ•˜๊ธฐ 2. ํŒŒ์ด์ฌ 2.x.x ๋ฒ„์ „ ์„ค์น˜ํ•˜๊ธฐ 3. JDK ์„ค์น˜ํ•˜๊ธฐ 4. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์น˜ํ•˜๊ธฐ ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ๋นŒ๋“œํ•  ๋•Œ ํŒŒ์ด์ฌ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. node.js ์™€ JDK (16 ๋ฒ„์ „) , ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์œผ๋กœ ์„ค์น˜ํ•˜์ง€๋Š” ์•Š์•˜๋‹ค. JDK ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์ • 1. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์‹คํ–‰ -> More Actions -> SDK Manager ํด๋ฆญ 2. SDK Platforms ์—์„œ Show Package Details ํด๋ฆญ -> Android 10.0 ๋ฒ„์ „์˜ SDK Platform, Intel Atom_64 Sy.. 2021. 11. 2.
[React] ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๋ฐฉ๋ฒ• ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ React.memo() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ ์ตœ์ ํ™”๊ฐ€ ๋๋‚˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ์‹  ์ƒํƒœ์˜ todos ๋ฅผ ์ฐธ์กฐํ•˜๋Š” onClick ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์„œ todos ๋ฐฐ์—ด์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜๊ฐ€ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค๊ณ  ํ•  ๋•Œ, ์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๊ฐ€ ๊ณ„์† ๋งŒ๋“ค์–ด์ง€๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค. 1. useState ์˜ ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์กด์— setTodos ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด, ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ƒˆ๋กœ์šด ์ƒํƒœ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„ฃ๋Š” ๋Œ€์‹  ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ์ •์˜ํ•ด์ฃผ๋Š” ์—…๋ฐ์ดํŠธ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์Œ์œผ๋กœ์จ ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. setNumber(number+1) ์ด ์•„๋‹ˆ๋ผ setNumber(preNumber => preNumber + 1) ๊ณผ ๊ฐ™์€ ์—…๋ฐ.. 2021. 10. 27.
[React] Hooks ์ •๋ฆฌ ๐Ÿ’ก useState // useState ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ import { useState } from "react"; const Counter = () => { const [value, setValue] = useState(0); return ( ํ˜„์žฌ ์นด์šดํ„ฐ ๊ฐ’์€ {value} ์ด๋‹ค. setValue(value + 1)}>+1 setValue(value - 1)}>-1 ); }; export default Counter; useState ๋Š” ํ•˜๋‚˜์˜ ์ƒํƒœ ๊ฐ’๋งŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ์ƒํƒœ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด useState ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. useState(0) ์ด๋ž€ ์ดˆ๊ธฐ๊ฐ’์„ 0 ์œผ๋กœ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. const [value, setValue] ์—์„œ ์ฒซ ๋ฒˆ์งธ ์›์†Œ์ธ value ๋Š” .. 2021. 10. 26.
[React] ์ปดํฌ๋„ŒํŠธ ์•Œ์•„๋ณด๊ธฐ โœ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น const { name, favoriteNumber, children } = this.props; // ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น const { number, fixedNumber } = this.state; // ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น this.props ๊ฐ€ ๊ฐ€์ง„ name, favoriteNumber, children ๊ฐ’์„ { name, favoriteNumber, children } ์— ๋„ฃ์–ด์ค€๋‹ค. โœ constructor ์—†์ด state ์ดˆ๊นƒ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ class Counter extends Component { state = { number: 0, fixedNumber: 0 } render(){ const {number, fixedNumber} = this.state; return ( ... ); } .. 2021. 10. 26.
[React] ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ โœ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ yarn add quill : ๊ธ€ ์ž‘์„ฑํ•˜๋Š” Editor ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ yarn add styled-components : CSS ๊ด€๋ จ ๋ฆฌ์•กํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฆฌ๋•์Šค ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ : https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd Redux DevTools Redux DevTools for debugging application's state changes. chrome.google.com ๋ฆฌ๋•์Šค ๊ฐœ๋ฐœ ํˆด์„ ๋‹ค์šด๋ฐ›์œผ๋ฉด ํฌ๋กฌ์œผ๋กœ react ๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ ๊ฐœ๋ฐœํ•  ๋•Œ redux state ๋ณ€ํ™”๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. โœ ๊ตฌ์กฐ 1. page ์—.. 2021. 10. 22.
[React] Redux ํด๋” ๊ตฌ์กฐ ์ •๋ฆฌํ•˜๊ธฐ ์œ„์˜ ํฌ๋งท์œผ๋กœ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค. ๐Ÿ’ก ํ๋ฆ„ : components -> modules(action ์ƒ์„ฑ) -> containers (dispatch, reducer, state ๊ฐ’ ๋ณ€๊ฒฝ) -> components (UI) index.js ์—์„œ reducers ์ž„ํฌํŠธ ๊ฒฝ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import reducers from './modules/bpp' import reportWebVitals from './reportWebVitals'; import { Provider } from 'react-redux' import { .. 2021. 10. 21.
[React] Redux ๋ž€? ๐Ÿ’ก Redux redux๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” state ๋ฅผ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— store ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์— ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค. ์ฆ‰ Flux ์™€ ๊ฐ™์€ ๊ตฌ์กฐ์ด๋‹ค. React ์ž‘์—…ํ™˜๊ฒฝ์—์„œ Redux ์‚ฌ์šฉํ•˜๊ธฐ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜) npm install --save redux npm install --save react-redux npm install --save redux-actions ๐Ÿ’ก ํ๋ฆ„ : VIEW -> ACTION -> (STORE) -> REDUCER -> DISPATCH(ACTION) -> STATE -> UI index.js ์ž‘์„ฑ store ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  store ๋ฅผ ์— props ๋กœ ์ „๋‹ฌํ•ด์„œ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ.. 2021. 10. 21.