Loading...

[GP] Spring boot์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• JPA ๊ณ ๊ธ‰ํŽธ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. Spring ๊ด€๋ จ ๊ธ€์„ ์ •๋ง ์•ˆ์“ด์ง€๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”…ใ… ใ…  ์š”์ฆ˜ ๋ฐ์ดํ„ฐ ๋ถ„์•ผ์—์„œ ์ผํ•˜๋‹ค๋ณด๋‹ˆ R์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด ๋งŽ์ด ๋ฐ€๋ ค์žˆ๋„ค์š”.. ์•ž์œผ๋กœ๋Š” Spring์„ ์ด์šฉํ•œ ์˜คํ”ˆ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ ์ค‘์ด๋‹ˆ ๋‹ค์‹œ ์žฌ๊ฑด์„ ์œ„ํ•ด์„œ๋ผ๋„ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๊ธ€์— ์ด์–ด์„œ JPA ๊ณ ๊ธ‰ํŽธ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ ์˜ค๋ž˜๋์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ ๊ธ‰ํŽธ์— ๋ฌด์—‡์„ ์ ์–ด์•ผํ• ์ง€ ๋ช…์‹œ๊ฐ€ ๋˜์–ด ์žˆ๋„ค์š”. ์˜ค๋Š˜์€ ๊ทธ ๋ถ€๋ถ„์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. SQL๊ณผ HQLSQL์€ Structed Query Language์˜ ์•ฝ์ž๋กœ DBMS์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘/์ œ์–ดํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด ์ค‘์— ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. SQL Server์—์„œ๋Š” T-SQL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ..

2019. 11. 2. 15:42

[React.ts] React๋ฅผ Typescript๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ - Props, State

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Props, State๋ฅผ Typescript์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Javascript์—์„œ๋Š” state๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ํ•ด๋‹น ์ƒ์„ฑ์ž์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ Props๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ์œผ๋ฉฐ Props๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ์ปดํฌ๋„ŒํŠธ ์ฝ”๋“œ ๋ฐ‘์— Props ํƒ€์ž…์„ ์ •์˜ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. import React, { Component } from 'react'; class Header extends Component { constructor(props) { super(props); this.state = { ... }; } render() { return ( Practice App ); } } export default Header; ํ•˜์ง€๋งŒ Typescript์—์„œ ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ• ..

2019. 11. 2. 14:42

[React.ts] React๋ฅผ Typescript๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

์•ˆ๋…•ํ•˜์„ธ์š”. Typescript๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฒซ ๊ธ€์ž…๋‹ˆ๋‹ค. Typescript์˜ ์ฒซ ์‹œ์ž‘์„ React ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ œ๊ฐ€ ์ด๋ฒˆ์— ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ฆฌ๋‰ด์–ผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ง€๋‚œ 2๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ React๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๋น„๋ก ๋งŒ๋“œ๋Š” ์ž ๊น ๋™์•ˆ์ด์—ˆ์ง€๋งŒ ๋ฐฐ์›€๊ณผ ๊ฐ™์ด ๋”๋ถˆ์–ด ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— React์˜ ๋ณ€๊ฒฝ์ ๋„ ๊ฐ™์ด ์‚ดํŽด๋ด„๊ณผ ๋”๋ถˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” Typescript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Create react app React๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ create-react-app์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Typescript๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์—ญ์‹œ ์ด ๋ช…๋ น์–ด๋กœ ์‰ฝ๊ณ  ํ•œ ๋ฒˆ์— ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ create-react-app [app..

2019. 9. 29. 10:09

[GP] Junit5๋ฅผ ์‚ฌ์šฉํ•œ Java ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์œ ๋‹› ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋‹ค๋ณด๋ฉด ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ์•ˆ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ–ˆ๋‹ค๋ณด๋‹ˆ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณดํ†ต ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ CLI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๋ณด๋ฉด ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์•ˆ๋‚˜์˜ค๋Š”์ง€ ์ผ์ผ์ด ์†์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณธ๋‹ค๋Š” ๊ฒƒ์ด ์‰ฝ์ง€๋งŒ์€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”. What is Unit Test ?๊ทธ๋ ‡๋‹ค๋ฉด ์œ ๋‹› ํ…Œ์ŠคํŠธ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์œ ๋‹› ํ…Œ์ŠคํŠธ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์†Œ์Šค ์ฝ”๋“œ์˜ ํŠน์ • ๋ชจ๋“ˆ์ด ์˜๋„๋Œ€๋กœ ์ •ํ™•ํžˆ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ์ผ๋ จ์˜ ์ ˆ์ฐจ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ข€ ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ..

[GP] C++์—์„œ Map์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ C++ STL์— ๋Œ€ํ•œ ๊ธ€์„ ์จ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ž˜ ์ €๋Š” STL๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ๊ธ€์€ ์ž˜ ์“ฐ์ง€ ์•Š์œผ๋ ค ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ Documentation๋„ ์ž˜ ๋˜์–ด ์žˆ๋Š” ํŽธ์ด๊ณ , ๋ธ”๋กœ๊ทธ์˜ ๊ธ€ ์ฃผ์ œ๋กœ ์“ฐ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜ ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š” ์ œ๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด๋ฅผ ๋ช‡ ๋ฒˆ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ œ๊ฐ€ ์ฃผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š” Java ์–ธ์–ด์™€ ๋‹ค์†Œ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ์ด ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ช‡ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ ์–ธ์–ด์—์„œ ๋น„์Šทํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๊ฐ€ STL์ด๋‚˜ API๋กœ ์ง€์›๋œ๋‹คํ•˜๋”๋ผ๋„ ์–ธ์–ด์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ฐ ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋Š” ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. What is STL ?STL์€ C++์—์„œ ์ œ๊ณตํ•˜๋Š”..

2019. 7. 29. 13:25

GraalVM - R๊ณผ Java ์‚ฌ์ด

์•ˆ๋…•ํ•˜์„ธ์š”. ์ •๋ง ์˜ค๋žœ๋งŒ์— ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์˜ค๋žœ๋งŒ์— ์ž‘์„ฑํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด์•„ ์กฐ๊ธˆ ํŠน๋ณ„ํ•œ ๊ฐœ๋ฐœ๊ธ€์„ ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด, ํ•œ ๊ฐ€์ง€ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ €์˜ ๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ•˜๋ฉด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋ฅผ ๋งŽ์ด ๋Š๋ผ๊ณค ํ–ˆ์—ˆ๋Š”๋ฐ์š”. GraalVM์ด ๋ฌด์—‡์ด๊ณ  ์ด๊ฒƒ์ด ํ˜ผ์šฉ ์–ธ์–ด์˜ ๊ฐœ๋ฐœ๊ณผ ์–ด๋– ํ•œ ์—ฐ๊ด€์ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. R๊ณผ Java ์‚ฌ์ด R ์–ธ์–ด๋Š” ๋ณดํ†ต ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. R์—์„œ๋Š” Shiny๋ผ๋Š” ๊ณต์‹ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•˜์—ฌ ์ด๋ฅผ ์ด์šฉํ•ด์„œ๋„ R์„ ์ด์šฉํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ด๋Ÿฌํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด..

[GP] Spring boot์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• JPA ๊ณ ๊ธ‰ํŽธ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. Spring ๊ด€๋ จ ๊ธ€์„ ์ •๋ง ์•ˆ์“ด์ง€๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”…ใ… ใ…  ์š”์ฆ˜ ๋ฐ์ดํ„ฐ ๋ถ„์•ผ์—์„œ ์ผํ•˜๋‹ค๋ณด๋‹ˆ R์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด ๋งŽ์ด ๋ฐ€๋ ค์žˆ๋„ค์š”.. ์•ž์œผ๋กœ๋Š” Spring์„ ์ด์šฉํ•œ ์˜คํ”ˆ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ ์ค‘์ด๋‹ˆ ๋‹ค์‹œ ์žฌ๊ฑด์„ ์œ„ํ•ด์„œ๋ผ๋„ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๊ธ€์— ์ด์–ด์„œ JPA ๊ณ ๊ธ‰ํŽธ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ ์˜ค๋ž˜๋์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ ๊ธ‰ํŽธ์— ๋ฌด์—‡์„ ์ ์–ด์•ผํ• ์ง€ ๋ช…์‹œ๊ฐ€ ๋˜์–ด ์žˆ๋„ค์š”. ์˜ค๋Š˜์€ ๊ทธ ๋ถ€๋ถ„์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.SQL๊ณผ HQLSQL์€ Structed Query Language์˜ ์•ฝ์ž๋กœ DBMS์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘/์ œ์–ดํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด ์ค‘์— ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. SQL Server์—์„œ๋Š” T-SQL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ..

2018. 6. 30. 18:26

GoormEdu Coding Party Season 1 (๊ตฌ๋ฆ„ ์ฝ”๋”ฉ ํŒŒํ‹ฐ ์‹œ์ฆŒ1) ํ›„๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ๊ธฐ์ˆ  ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹Œ ๊ฐ„๋‹จํ•œ ํ›„๊ธฐ๋ฅผ ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์•ฝ 20์ผ ์ „, ๊ตฌ๋ฆ„EDU์™€ ๋ช‡ ๊ฐœ์˜ ์Šคํƒ€ํŠธ์—…, ๊ธฐ์—…์ด ์ฃผ์ตœํ•œ ์ฝ”๋”ฉ ํŒŒํ‹ฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ–‰์‚ฌ๋Š” ์ฝ”๋”ฉ์„ ํ•˜๋‚˜๋„ ํ•  ์ค„ ๋ชจ๋ฅด๋Š” ์ดˆ๋“ฑํ•™์ƒ๋ถ€ํ„ฐ ์„ฑ์ธ๊นŒ์ง€๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฒŒ์ž„์œผ๋กœ ์ฆ๊ธฐ๋Š” ์Šค์ผ€์น˜ ์ฝ”๋”ฉ๊ณผ ๊ฐ ๊ธฐ์—…์—์„œ ์‹ค์‹œํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋ฏธ๋ฆฌ ์ฒดํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ํ…์ŠคํŠธ ์ฝ”๋”ฉ ๋ชจ์˜๊ณ ์‚ฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๊ฝค ํฅ๋ฏธ๋กญ๊ณ  ์ œ ์‹ค๋ ฅ์ด ์–ด๋Š ์ •๋„์ธ์ง€๋ฅผ ๋ณด๊ณ ์ž ํ…์ŠคํŠธ ์ฝ”๋”ฉ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋“ค์„ ๊ฐ€๋Šฅํ•œํ•œ ๋งŽ์ด ํ’€์–ด๋ณด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค ํ’€์—ˆ์œผ๋ฉด ์ข‹์•˜๊ฒ ์ง€๋งŒ ๋™๋ฏธ์ฐธ ์˜ˆ๋น„๊ตฐ ํ›ˆ๋ จ๋„ ์กด์žฌํ•˜์˜€๊ณ  ๋ฉด์ ‘์ด๋‚˜ ์ทจ์—…์ ์ธ ์ผ๋„ ์žˆ์–ด์„œ ์•„์‰ฝ๊ฒŒ๋„ ๋‹ค ํ’€์–ด๋ณด์ง€ ๋ชปํ•œ ๊ฒŒ ์กฐ๊ธˆ ์•„์‰ฝ๊ธด ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋‚œ์ด๋„์Œ ๋Œ€๋žต์ ์ธ ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋Š” ๊ฐ๊ด€์ ์œผ๋กœ ๋ดค์„ ๋•Œ "๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค"๋ผ๊ณ ..

[GP] Spring boot์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• - JPA ๊ธฐ๋ณธํŽธ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ ๊ฐ„๋‹จํ•œ REST API ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ์‰ฝ๊ฒŒ GET ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ๊ฒƒ๋งŒ ์ •์˜ํ•˜์˜€๊ณ  ๋‚˜๋จธ์ง€์— ๋Œ€ํ•œ ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์•˜๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ๋ชจ๋“  REST API๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ํ…Œ์ŠคํŠธ ๋˜ํ•œ ์ง„ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด DBMS ์—ฐ๋™์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ ์‹œ์ž‘ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. DBMS Spring boot PHP, Node.js ๋“ฑ์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” PDO๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ mongoose ๋“ฑ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ mongoose๋Š” Node.js์—์„œ MongoDB๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ , PDO๋Š” PHP์—์„œ MySQL ๋“ฑ์˜ DBMS๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. Spring boot์—์„œ๋Š” S..

[GP] Anko๋ฅผ ์ด์šฉํ•œ Android App Layout ์ž‘์„ฑ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ Kotlin ์–ธ์–ด๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋ฅผ ์จ๋ณด๋ฉด์„œ ๋Š๋ผ๋Š” ๋ฐ”๋Š” ํ™•์‹คํžˆ Java๋ณด๋‹ค ๊ฐ•๋ ฅํ•˜๊ณ  ์•ˆ์ •์„ฑ ์žˆ๋Š” ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์„ ๋งŽ์ด ๋Š๋‚๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ œ๊ฐ€ ์ •๋ง๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋ถˆํŽธํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์€ ๋ฐ”๋กœ findViewbyId ์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ฒƒ์€ XML์— ๋ ˆ์ด์•„์›ƒ์„ ์ž‘์„ฑํ•˜์—ฌ ๋ ˆ๋ฆฌ์•„์›ƒ์— ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ id ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฐ” ์ฝ”๋“œ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ, ์‹ค์ œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ Resource ๋ถ€๋ถ„์— ๊ณจ ๋•Œ๋ฆฌ๋Š” ๋ฉด์ด ์—†์ง€ ์•Š์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ปดํŒŒ์ผ์ด ์•ˆ๋˜๊ฑฐ๋‚˜ ๊ฐ‘์ž๊ธฐ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ž˜ ๋˜๋Š” ๋นŒ๋“œ๊ฐ€ ์˜ฎ๊ฒจ ํƒ€๋ฉด ์•ˆ๋˜๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•ด๊ดดํ•œ ํ˜„์ƒ์„ ๋งŽ์ด ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ €๋Š” findViewById๊ฐ€ onCr..

[GP] Spring boot์—์„œ REST API ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. N.K Dev Lab์— ๊ธ€์„ ์•ˆ์“ด์ง€๊ฐ€ ์ •๋ง ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”. ์˜ฌํ•ด๋Š” ์ €์˜ ์ทจ์—… ์‹œ์ฆŒ์ธ ๋งŒํผ ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ์— ๋งŽ์ด ์†Œํ™€ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”์šฑ์ด Dev Lab ๋ฆฌ๋‰ด์–ผ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ผ๋“ค์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ €์˜ Dev Lab์ด ๋‹ค์‹œ Jekyll๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ด์ œ ์ œ๊ฐ€ ์ทจ์—…์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์ผ๋“ค์„ ์กฐ๊ธˆ ๋ฏธ๋ฆฌ ๊ฐ„์†Œํ™” ํ•˜๋Š” ์ž‘์—…์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ œ Dev Lab์— ์˜ฌ๋ฆฌ๋Š” ๊ธ€์€ ์ €์˜ ์†์— ์˜ํ•ด ์ˆ˜๋™์œผ๋กœ NKLAB(Tistory)์— ๊ฒŒ์‹œ๋˜์ง€ ์•Š๊ณ  ์ž๋™ํ™” ๋œ ์ฝ”๋“œ์— ์˜ํ•ด์„œ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋˜๋Š” ์ž‘์—… ๋“ฑ Hugo ๋ณด๋‹ค๋Š” Jekyll์ด ์ข€ ๋” ํŽธํ•˜๋”๊ตฐ์š”. ๋ณธ๋ก ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ, ์˜ค๋Š˜์€ Sp..

[GP] C++ ์–ธ์–ด์—์„œ MQTT ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์ด ๊ธ€์€ N.K Dev lab์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•œ MQTT ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ C++ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•˜์ฃ . libmosquitto C++ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•  MQTT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ libmosquitto๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ libmosquitto ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ๊ฒ ์ฃ ? ๊ทธ๋Ÿผ ์„ค์น˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ sudo apt install libmosquitto ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” libmosquitto ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ libmosquitto๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์…”์„œ ์„ค์น˜ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Wind..

2017. 7. 13. 20:56

์ž์‹ ์˜ Tistory ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰์— ์Œ์„ฑ ์ธ์‹ ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด๋ณด์ž.

Tistory ๋ธ”๋กœ๊ทธ์—๋Š” ํฌ์ŠคํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ Tistory ๋ธ”๋กœ๊ทธ์—์„œ ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ƒ‰์ด ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ์š”. ๋ณดํ†ต ๊ฒ€์ƒ‰์€ ํ‚ค๋ณด๋“œ๋กœ ์ž์‹ ์ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 12 ~ 13๋…„๋„ ์ €์˜ ๋ธ”๋กœ๊ทธ์—๋Š” ๊ฒ€์ƒ‰ ๋ฐ•์Šค์— ์Œ์„ฑ ์ธ์‹ API๋ฅผ ์žฅ์ฐฉํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Speech Input API for HTML5๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ธ๋ฐ์š”. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด ๋งค์šฐ ์‰ฝ๊ณ  ํŽธํ•ด์„œ ๋ˆ„๊ตฌ๋‚˜ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์†Œ์Šค๋ฅผ input ํƒœ๊ทธ ์˜†์— ๋ถ€์ฐฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์Œ์„ฑ ์ธ์‹ ๊ธฐ๋Šฅ์„ ํƒ‘์žฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ์ฃ . ๋‹น์‹œ Google Chrome ๋ธŒ๋ผ์šฐ์ €์—์„œ ์œ ์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๊ณ , ํƒœ๊ทธ ์†์„ฑ์œผ๋กœ..

[GP] Unix Thread์˜ ๊ธฐ๋ณธ์„ ๋‹ค์ ธ๋ณด์ž

์ด ๊ธ€์€ ์ €์˜ Github Page์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ธ€์„ ์จ์˜จ์ง€ ๋ฒŒ์จ 4๊ฐœ์›”์ด ์ง€๋‚ฌ์ง€๋งŒ, ํ•™๊ต ์ƒํ™œ๊ณผ ์„ฑ์  ๊ด€๋ฆฌ ๋“ฑ์œผ๋กœ ์ธํ•ด ์ปจํ…์ธ ๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜์—ฌ ์ด๋ฆฌ์ €๋ฆฌ ์ƒ๊ฐํ•ด ๋ณธ ๊ฒฐ๊ณผ, ์ด ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ์— ์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ ์ง€์‹๋“ค์„ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฉ๋„๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ฃผ ์šฉ๋„๋Š” ์‚ฌ๋žŒ์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์„ฑ์ธ ๋ง๊ฐ ํŠน์„ฑ ๋•Œ๋ฌธ์ด๊ฒ ์ฃ ? ใ…Žใ…Ž ์˜ค๋Š˜์€ Unix Programming์— ๋Œ€ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ, pthread๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์™œ ์“ฐ๋ ˆ๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ƒ๊ณ ์š”? ๊ทธ๋ ‡๊ตฐ์š”. ์˜ฌํ•ด๋Š” ์œ ๋‚œํžˆ ์ œ ํ”„๋กœ์ ํŠธ, ๊ณผ์ œ ๋“ฑ์—์„œ ๋ชจ๋‘ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋–„๋ฌธ์ด๋ผ๊ณ  ์ด์•ผ๊ธฐ ํ•˜๊ณ  ์‹ถ๋„ค์š”.. ์ด ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ์ „์—, Thread์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์ด ์ˆ™์ง€๋œ ์ƒํ™ฉ์—์„œ ์ฝ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค..

2017. 6. 26. 14:55

Scene Builder 8.3.0 ์‚ฌ์šฉ์‹œ, Segmentation Fault ์˜ค๋ฅ˜ ์กฐ์น˜ ๋ฐฉ๋ฒ• (Ubuntu)

์ตœ๊ทผ์— ์ œ๊ฐ€ ์šฐ๋ถ„ํˆฌ๋ฅผ ๋‹ค์‹œ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด์„œ, ๊ธฐ์กด์— ์žˆ๋˜ ๊ฐœ๋ฐœ ๋„๊ตฌ, ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ ๋“ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ๋˜๋Š” ์ผ์„ ๋งž์ดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์˜ค๋Š˜ JavaFX ์ฝ”๋”ฉ์„ ์œ„ํ•ด Scene Builder๋ฅผ ์„ค์น˜ํ•ด ์‹คํ–‰ํ•˜๋‹ˆ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ , ๋ฌด์–ธ๊ฐ€ ๊ฐ’์„ ์ฃผ์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€ ์‹ถ์–ด, IntelliJ IDEA ํ”„๋กœ๊ทธ๋žจ๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์‹คํ–‰๋„ ์‹œ์ผœ๋ดค์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ์›์ธ์›์ธ์„ ํ™•์ธํ•ด๋ณด๊ณ ์ž, gdb ๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด๋ดค์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ๋ถ„์„ํ•ด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ, ์–ด๋”˜๊ฐ€ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ ‘๊ทผํ•˜๋ ค๋‹ค๊ฐ€ ์‹คํŒจํ–ˆ๊ฑฐ๋‚˜, NULL์„ ์ฐธ์กฐํ•œ ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ํ•ด๊ฒฐํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์˜์™ธ๋กœ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” Sce..

2017. 4. 10. 22:46

Windows API๋กœ ์‹œ์ž‘ํ•ด๋ณด๋Š” ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์•„์ง ์†Œ์ผ“์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋ชจ๋ฅด์‹œ๊ฒ ๋‹ค๊ตฌ์š”? ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Socket ํฌ์ŠคํŠธ๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ - Socket ์•ˆ๋…•ํ•˜์„ธ์š”. ์—ฌ๊ธฐ๋Š” Windows ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ์œ„ Socket์˜ ๊ฐœ๋… ํฌ์ŠคํŠธ์™€ ๋”๋ถˆ์–ด, Windows API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Windows API์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๊ฐ™์ด ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์…จ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ , ๊ธ€์„ ์จ ๋‚˜๊ฐ€๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. WinSock2Windows Socket์€ BSD Unix ํ˜ธํ™˜์„ ์œ„ํ•ด ๊ทธ ๊ฐœ๋…์€ ๊ต‰์žฅํžˆ ๋น„์Šทํ•˜์ง€๋งŒ, Windows ์šด์˜์ฒด์ œ์— ๋งž์ถฐ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ์†Œ์ผ“์€ ํŠน์„ฑ์ƒ ์ปค๋„์— ์š”์ฒญํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์—, ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์œ ๋‹‰์Šค์™€ ๋‹ฌ๋ฆฌ Window..

[GP] Boost Library ์„ค์น˜์™€ ์‚ฌ์šฉ

์ด ๊ธ€์€ ์ €์˜ Github Page์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, CMake์— ๊ด€ํ•œ ํฌ์ŠคํŠธ๋ฅผ Tistory์— ๊ฒŒ์‹œ๋ฅผ ํ•ด๋ฒ„๋ ธ๋„ค์š”. ์ด ๊ฐœ๋ฐœ์ž ํŽ˜์ด์ง€์— ์‹ ๊ฒฝ์„ ์ผ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์•„๋ฌด๋ž˜๋„ ์•„์ง Tistory ๋ธ”๋กœ๊ทธ๋Š” ์žŠํ˜€์ง€์ง€ ์•Š์•˜๋‚˜ ๋ด…๋‹ˆ๋‹ค. (๋‹ค์Œ์—๋Š” ๊ฐœ๋ฐœ ํฌ์ŠคํŠธ๋ฅผ ๋ฐ˜๋“œ์‹œ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•˜๋„๋ก ํ• ๊ฒŒ์š” ใ… ใ… ) ์ตœ๊ทผ ์ €๋Š” C++ ์–ธ์–ด์— ๋‹ค์‹œ ๋ชฐ๋‘ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋…„๊นŒ์ง€๋Š” ํ•™๋ถ€ ์ˆ˜์—…์—์„œ ๋‘ ๊ฐœ ์ด์ƒ Java ์–ธ์–ด๋กœ ์ˆ˜์—…์„ ๋ฐ›์•˜์—ˆ(?)... ์‚ฌ์‹ค OpenCV๋Š” C++ ์–ธ์–ด๋กœ ์ง„ํ–‰ํ•˜๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ Java ์–ธ์–ด๋กœ ์ˆ˜์—…๋ฐ›์•˜๋˜ ๋‘ ๊ณผ๋ชฉ์ด ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ณผ๋ชฉ์ด์–ด์„œ ์–ด์ฉŒ๋‹ค๋ณด๋‹ˆ Java์— ๋ชฐ๋‘ํ•˜๊ฒŒ ๋˜์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ C++ ์–ธ์–ด๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ค์šด๊ฒŒ ์ต์ˆ™ํ•˜์ง€๊ฐ€ ์•Š์•„ ๋ธ”๋กœ๊ทธ์— ์กฐ๊ธˆ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ..

2017. 3. 4. 16:21

CMake๋ฅผ ์ด์šฉํ•œ C/C++ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

Makefile์ด๋ผ๋Š” ๊ฒƒ์„ ํ•œ ๋ฒˆ ์ฏค์€ ๋‹ค๋“ค ๋“ค์–ด๋ณด์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Visual Studio IDE ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜๋ฉด Makefile์„ ์˜คํžˆ๋ ค ๋ณด๊ธฐ ํž˜๋“ค ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, Unix, Linux์—์„œ C, C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์…จ๋‹ค๊ฑฐ๋‚˜ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, ํ•œ ๋ฒˆ ์ฏค์€ ๋‹ค๋“ค ์ ‘ํ•ด๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Makefile์ด ํฌ์ŠคํŠธ๋Š” CMake์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ์ด์ง€๋งŒ, ๊ทธ ์ „์— Makefile์ด๋ž€ ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๋ช‡ ๊ฐ€์ง€ ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €์˜ ๋ธ”๋กœ๊ทธ์—์„œ OpenCV ์„ค์น˜์™€ ๊ด€๋ จ๋œ ํฌ์ŠคํŠธ๋ฅผ ๋ณด์‹  ๋ถ„์ด๋ผ๋ฉด, ์•„๋งˆ ์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. $ make -j $(nproc) $ sudo make install์—ฌ๊ธฐ์„œ ์ค‘์ ์ ์ธ ์ปค๋งจ๋“œ๋Š” make ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค make ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด๊ฐ„ .sh..