React Native ์ด๋ฒ ์๊ฐ์๋ React Native ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์งํํด๋ณด๊ฒ ์ต๋๋ค. (*nodejs๊ฐ ์ค์น๋์ด์๋ค๊ณ ๊ฐ์ ํ, ์งํํฉ๋๋ค.) 1. React-Native-Cli ์ค์น $ npm install -g react-native-cli ์ปค๋งจ๋ ์ฐฝ์ ์ ์์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด React-Native-Cli๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ -g ์ต์ ์(global) ์ ์ญ๋ฒ์ ์ค์น(์ฌ์ฉ)๋ฅผ ์๋ฏธํฉ๋๋ค. npm์ผ๋ก ์ค์นํ ๋ชจ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น ํ๋ก์ ํธ ์์์๋ง ํจ๋ ฅ์ ๋ฐํํ๋๋ฐ, cli๋ ์ ์ญ ๋ฒ์์์ ์ผ์ด๋์ผ ํ๊ธฐ ๋๋ฌธ์ -g๋ฅผ ๋ถ์ฌ์ค๋๋ค. 2. React-Native ํ๋ก์ ํธ ์์ฑ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ, ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. $ react-native init project ..
axiso Axios ๋ ๋ธ๋ผ์ฐ์ , Node.js ๋ฅผ ์ํ Promise API ๋ฅผ ํ์ฉํ๋ HTTP ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(return ์ promise ๊ฐ์ฒด๋ก ํด์ฃผ๊ธฐ ๋๋ฌธ์, response ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ฌ์ด ์ฅ์ ) axios ํน์ง ์ด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ์ XMLHttpRequest ๊ฐ์ฒด ๋๋ Node.js์ http api ์ฌ์ฉ Promise(ES6) API ์ฌ์ฉ ์์ฒญ๊ณผ ์๋ต ๋ฐ์ดํฐ์ ๋ณํ HTTP ์์ฒญ ์ทจ์ HTTP ์์ฒญ๊ณผ ์๋ต์ JSON ํํ๋ก ์๋ ๋ณ๊ฒฝ axios ๊ธฐ์ด๋ฌธ๋ฒ /* axios ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ ์์ */ axios({ method: "get", // ํต์ ๋ฐฉ์(GET/POST) url: "www.google.com", // ์๋ฒ headers: {'X-Requested-With..
๋ชจ๋ํ๋ฅผ ํ๋ ์ด์ ? ํ์ฅ์ฑ(extensibility) ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ง ์์ ์ฝ๋๋ ์์คํ ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ๋ฌธ์ ๊ฐ ์๊ธธ ํ๋ฅ ์ด ๋๋ค. (์ฐจ์ธ๋๋ฅผ ์งํํ๋ ๋ํ์ ์ธ ์ด์ ์ค ํ๋์ด๋ค.) ์ฌ์ฌ์ฉ์ฑ(reusability) ๋ฐ๋ณต๋๋ ๋ก์ง์ ํจ์๋ก ๋ถ๋ฆฌํ๋ ์ฝ๋์์ ์ฌ์ฌ์ฉ์ฑ ๋ฟ๋ง ์๋๋ผ, ์ฐ๋ฆฌ๊ฐ ์ค๊ณํ ๊ตฌ์กฐ๊ฐ ์ฌ์ฌ์ฉ ๋์ด์ผ ํ๋ค. ์ ์ง-๋ณด์ ๊ฐ๋ฅ์ฑ(maintability) ์ฌ๋ฌ ๋ก์ง์ด ๋ค์์ผ ์๋ ์ฝ๋๋ ์ ์ง ๋ณด์๊ฐ ์๋๋ค. (๋น์ ์ต์ ๊ธฐ์ ์ ํ์ฌ ์ต์ ๊ธฐ์ ๋ก ๋ณ๊ฒฝ ์ ์ฉ์ดํ๋ค.) ๊ฐ๋ ์ฑ(readability) ์ด๋ ค์ด ๋ก์ง ์ผ์๋ก ๋ ๊ฐ๋ ์ฑ์ด ๋์์ผ ํ๋ค. ์ด๋ ค์ด ๋ก์ง์ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ ๊ฒ์ด ์ข์ ์ฝ๋๋ค. ํ๋ก์ ํธ์ ๊ตฌ์กฐ ๋ํ ํ ๋์ ๊ทธ๋ ค์ ธ์ผ ํ๋ฉฐ, ์ด๋ณด ๊ฐ๋ฐ์๊ฐ ๋ด๋ ์ดํดํ ์ ์์ด์ผํ๋ค. ํ ์คํธ..
axios ๋ชจ๋ํ axios๋ ํต์ ์ผ๋ก ํ ๊ณณ์์๋ง ์ฐ์ด๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์, ์ ์ง๋ณด์ ๋ฐ ๊ฐ๋ ์ฑ์ ์ํด ๋ชจ๋ํ๊ฐ ํ์ํฉ๋๋ค. ์ด์ ๊ธ์์ ์์ฑํ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ์ ๋ฐ๋ผ, 'utils' ๋๋ ํ ๋ฆฌ์ api.js ๋ผ๋ react.js ๋ฅผ ์์ฑํด์ ์ฌ๋ฌ ํ์ด์ง์์ ํ์ฉํ์์ต๋๋ค. api.js ์ ์ธ import axios from 'axios'; const API =axios.create({ //baseURL: `http://localhost:8080/common`, timeout: 30000, headers: { "Content-Type" : `application/json;charset=UTF-8`, "Access-Control-Allow-Origin": "*", "Accept": "applicat..
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋, ์ ์ผ ๋จผ์ ์ ํ๋์ด์ผํ๋ฉฐ ๋๊ตฌ๋๊ฐ ํ ๋์ ๋ณผ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ ์ฃผ๋์ด ๊ฐ๋ฐ์ ๋ฟ๋ง ์๋๋ผ ์๋์ด ๊ฐ๋ฐ์๋ค ์ญ์ ๊ธฐ์กด์ ๋๊ตฐ๊ฐ ๋ง๋ค์๋ ํ๋ก์ ํธ ๋ฃฐ์ ๋ฐ๋ฅด๋ค ๋ณด๋, ์ค์ ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ์ผ์ ์์ด์ ์ค์๋๋ ๋ฎ๊ฒ ํ๊ฐ๋์ง๋ง, ์ค๊ณ๋ฅผ ํ์๋ ๋ถ๋ค์๊ฒ๋ ๊ต์ฅํ ์ค์ํ ์์ ์ด ์๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ React๋ฅผ ๋ฒ ์ด์ค๋ก ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ Web์์ ์ฌ์ฉ๋๋ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค. ์ต์์ ๋๋ ํ ๋ฆฌ ๊ฒฐ๊ตญ ๋ง์ง๋ง์ ์ต์๋จ(src ํ์)์์ ๋ณด๊ฒ ๋ ๋๋ ํ ๋ฆฌ๋ '3'๊ฐ ๋๋ '4'๊ฐ ์ ๋๋ค. ๋ฐ๋ก 'components', 'resources', 'views', ('utils') * 'components' : ํน์ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ํ์ด์ง๋ค์ ..
Node.js ์์์ MyBatis ์ฃผ๋ณ ์ง์ธ๋ค์๊ฒ NodeJS๋ฅผ ๊ถ์ ํ๋ฉด์ ์คํฐ๋๋ฅผ ํ๋ค MyBatis์ ๋ํด ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ฌป๊ธธ๋ ๋ต๋ณ์ ํด์คฌ๋ ๊ธฐ์ต์ด ์๋ค. Spring Framework ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Restful API ๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ MyBatis, ์ต๊ทผ์๋ ๊ด๋ จ ์ง๋ฌธ์ด ๋ค์ด์๊ณ , ๋ถ๋ช ๋๊ตฐ๊ฐ๋ ๊ถ๊ธํด ํ์ค ๊ฒ์ด๊ธฐ์! ๊ทธ ๋ถ๋ค์ ์ํด ๊ณต์ ํ๋ค. ์ค์น $ npm install mybatis-mapper ์ ์ธ const mysql = require('postgresql'); //RDBMS const mybatisMapper = require('mybatis-mapper'); //์ค์นํ Mybatis lib ๋งตํ //๋ณ๋๋ก ์ค์ ์ ๋นผ์ฃผ๋๊ฒ ์ข์ผ๋, ์์๋ฅผ ์ํด ํ ๊ณณ์ ์ ์ธ. const connec..
localStorage ์ sessionStorage๋? localStorage์ sessionStorage ๋๊ฐ์ง ๋ฐฉ๋ฒ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค๋ ๊ณตํต์ ์ด ์๋ค. ๊ฐ storage์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ชจ๋ ๋ฌธ์์ด๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋์๋ JSON ํํ๋ก ๋ณ๋ ๊ฐ๊ณต์ด ํ์ํ๋ค. ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐจ์ด์ ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋ฒ์๊ฐ ๋ค๋ฅด๋ค๋ ์ ์ด๋ค. localStorage๋ ๋์ผํ pc์์์ ๋์ผํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ ๋์ ์ฌ์ฉํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ญ์ ํ์ง ์๋ ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ ์ฅ์ ์ด ์๊ณ , ์ฃผ๋ก ๋ก๊ทธ์ธ ์ '์์ด๋์ ์ฅ' ๊ธฐ๋ฅ์ ํ์ฌํ ๋ชจ๋ฐ์ผ์น์์ ์์ฃผ ์ฐ์ธ๋ค. sessionStorage๋ ๋ธ๋ผ์ฐ์ ์ฐฝ์ด ๋ซํ๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด์..
์ ์ธ ' ๋์ ` ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ' ์ single quotation ์ด๊ณ ` ๋ Grave ํค๋ณด๋์ ์ซ์1 ์ผ์ชฝ์ ์๋ ๊ธฐํธ์ด๋ค. username์ value ๊ฐ 'test' ๋ผ๊ณ ๊ฐ์ ํด๋ณด์. 'hello ${username}' ์ ์ถ๋ ฅ์ hello ${username} ๋ก ๋ชจ๋ ๊ฐ์ String ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค. `hello ${username}` ์ ์ถ๋ ฅ์ hello test ๊ฐ ๋๋ค