๋๋ก ๊ด์ ์์คํ
- C++, qt
- lib
- boost beast : http client
- crow : rest api server crow git
- nlohman json : json parser nlohman json
ํ์ฌ ์ํ์ ํ๋ฉด์ ๋งค๋ฒ c++๋ฅผ ์์ฃผ๋ก๋ง ๊ฐ๋ฐ์ ํ๋ค, ์ฒ์์ผ๋ก ์น ๊ธฐ์ ์ ์ด์ฉํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค.
๊ด์ ์์คํ
์ ์๋ฒ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๊ธฐ์ ์ด๋ค ์ธ์ด๋ก ๊ฐ๋ฐ์ ํ ๊น ๊ณ ๋ฏผ์ ํ์๋ค.
node, flask, .net, spring ์ด์ผ๊ธฐ๋ฅผ ํ์์ผ๋ ํด๋ผ์ด์ธํธ์ชฝ์์ epoll์ ์ด์ฉํด๋ฌ๋ผ๋ ์๊ตฌ์ฌํญ์ด ์์๋ค.
์ง๊ธ ์๊ฐํด๋ณด๋ฉด ๋ค๋ฅธ ํ๋ ์์ํฌ์์๋ epoll๊ณผ ๋น์ทํ ์์ค์ ํต์ ๊ธฐ๋ฒ๋ค์ด ์กด์ฌํ ํ
๋ฐ
๋น์์ '์, epoll ์จ๋ฌ๋ผ๊ณ ํ๋ c++์ ์จ์ผ๊ฒ ๋ค.' ์ ๋ ์์ค์์ c++๋ก ๊ฐ๋ฐ์ ์์ํ๋ค.
์ด์ฐ๋ณด๋ฉด ๋ ๋ํ ์น์๋ํ ์ง์์ ๋ง์ง ์์๊ณ , ํ์ ์ด๋์ด๊ฐ์ผํ๋ pl๋ ์์คํ
ํ๋ก๊ทธ๋๋ฐ๋ง ํ์
จ๋ ๋ถ์ด๋ผ
c++๋ก ํ๋ฉด ์ด์ฐ์ด์ฐ ๊ฐ๋ฐํ์ง ์์๊น? ๋ผ๋ ์๊ฐ์ด์์ง ์์์๊น.
rest api server, crow
Rest API ์๋ฒ๋ก๋ ms์์ ๊ด๋ฆฌํ๋ ์นด์ฌ๋ธ๋์นด๋ ์ฌ์ฉํด๋ณด์์ง๋ง ๊ฐ๋จํ๊ฒ ํค๋ํ์ผ๋ง ๋ถ๋ฌ์์ ์ฌ์ฉํ ์ ์๋ crow๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ ๋ํ ๊ฐ๋จํ์ฌ ์๋ฒ๋ฅผ ๋ง๋๋๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์๋ค.
visual sutdio
08๋
๋ ํ๋ถ์ํ๋๋ถํฐ ์ฐ๋ฆฌ์ ๋จ์ง์ด์์ MS์ visual studio.
IDE๋ก์ ํ์ ์ถ์ข
์ ๋ถํํ๋ค๊ณ ์๊ฐํ๋ค.
ํ์ฌ๋ ํ์ฌ 2017๋
๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ(์์ ํ๋ถ์์ผ๋๋ vs 6.0์ด ๋์ ์ฒซ vs๋ฒ์ ์ด์๋ค.) cross platform ์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ ๋ง๋ก ๋ง๊ฐํ์๋ค.
์ ์ง์ฅ์์๋ ide๋ก vs๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋น์์๋ ๋ด๊ฐ ๋ชฐ๋๋๊ฑด์ง ์๋๋ฉด ํ์ฌ๊ฐ ๋ชฐ๋๋๊ฑด์ง centos์ ๋์๊ฐ ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณค๋ค.
- ์๋์ฐ์์ ์์ค ์ฝ๋ ์์ , ์คํ, ํ ์คํธ ์๋ฃ
- ํด๋น ์์ค ์ฝ๋๋ฅผ ์ง์ ๊ณต์ฅ๋(๋น์ ๋ฐ์ ์์ ๋ฉํํ๋ ์ํํธ์จ์ด๋ฅผ ๋ง๋๋ ํ์ฌ์ ์์๋๋ฐ ๋ณด์ ๋ฌธ์ ๋๋ฌธ์ธ์ง ๊ฐ๋ฐํ๋ ์ฌ๋ฌด์ค๊ณผ ๊ณต์ฅ๋ ์ฌ๋ฌด์ค์ ๋คํธ์ํฌ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐจ๋จ๋์ด์์๋ค. ๊ฐ๋ฐํ๊ธฐ ๋๋ฌด ํ๋ค์๋ค.)์ผ๋ก usb์ ๋ด์๊ฐ๋ค. (usb์ ์์ค์ฝ๋ ๋ด์๊ฐ๋๊ฒ๊ณผ ftp, scp๋ก ํ์ผ ์ง์ด๋ฃ๋๊ฒ์ ๋ณด์ ๊ด์ ์์ ๋๋ค ์ทจ์ฝํ๊ฒ ์๋์ง...)
- ๋ฆฌ๋ ์ค์์ ๋ค์ ๋น๋ํ๋ค.
- ์คํํ๋ค. ํ ์คํธํ๋ค.... ์์ ํ๋ค. 1๋ถํฐ ๋ค์ ์์ํ๋ค.
๊ทธ๋ฐ๋ฐ ์์ฆ vs์์๋ ์ค์ ํ๊ฒ ์๋ฒ(์ฆ, ์ค์ ๋ก ํ๋ก๊ทธ๋จ์ ์คํ๋ ๋ฆฌ๋ ์ค ์๋ฒ)์ ์์ดํผ ์ฃผ์์ ๊ณ์ ์ ๋ณด๋ง ์๋ฉด ๋ฆฌ๋ ์ค ์ข ๋ฅ ๋ฐ ๋ฒ์ ์ ๋ง๊ฒ ์์์ ๋ฆฌ๋ ์ค๋ฅผ ์ปดํ์ผํ์ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฝ์๋ผ์ ์๋ค. ์ฌ์ง์ด ๋๋ฒ๊น ๋ vs์์ ๊ฐ๋ฅํ๋ค.
์ ๋ง ํ๋ช
์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ !!! ๋๋ ์๊ฐํ๋ค.
์ธ์ ๋์จ ๋ฐฉ๋ฒ์ธ์ง๋ ๋ชฐ๋์ผ๋ ์ด ํ์ฌ์ ์ค๊ธฐ๊น์ง ๋ ๊ทธ ์ฌ์ค์ ๋ชฐ๋๋ค. (๋.. ๋๋ฌด ๋๋ฆฐ๊ฑธ๊น.?)
json library
์ง๊ธ๊ป ์ธํฐํ์ด์ค ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์
- ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์
- char buffer[]์ copy
- writeํ๋ค.
์๋ค.
๊ทธ๋ฌ๋ ์ด๋ฒ ํ๋ก์ ํธ์์ ๋ชจ๋ ์ธํฐํ์ด์ค์์ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ json์ด์ด์ผํ๋ค.
์ด์ฐจํผ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง์ผ ๋ค ๋ฌธ์์ด๋ค๋ก ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ด์ง๋ง ๊ฒฐ๊ตญ์ ๋ฉ์์ง๋ฅผ ๊น์ jsonํฌ๋งท์ผ๋ก ๋ณํํด์ผํ๋ ์์ ์ด ํ์ํ๋ ๊ฒ์ด๋ค.
์ฒ์์ json ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ๊ฐํ ์ ์ธ๊ณ์๋ค.
๊ตณ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ธํ์ง ์๋๋ผ๋ ๋ฌด์์ด๋ key, value๋ก ์ง์ด๋ฃ์์ ์์๋ค.
ํ์ง๋ง ์ด๋ ๊ฒฐ๊ตญ์ ์ฌ๋ฌ๊ฐ์ง side-effect๋ฅผ ์ผ์ผํค๊ฒ ๋๋ค.
์ฌ์ค ๊ฐ๋ฐ์ ํ์ด๋ค. ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค ์ธ๋, git์์ ์ ๊ณตํ๋ ๋ง์ ์์ ์ ์ค๋ช
๋ค์ ์ ๋๋ก๋ง ์ฝ์ด๋ณด์๋๋ผ๋ฉด ์ด๋ฐ ๋ฌธ์ ๋ค์ ์ฌ์ ์ ์๋ฐฉํ ์ ์์์ํ
๋ฐ.
ํ์ง๋ง ์ด์ฐ๋๋ ๊ทธ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ , ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ด๋ฅผ ๋ค์ ์ฝ๋์ ์ ์ฉํ๋ ์์
์ ๊ณ์ ์งํํ๊ณ ์๋ค.
์์ง๋ ์กฐ๊ธ ๋ ๋จ์์์ง ๋ชจ๋ฅธ๋ค. ๊ณ์ ์์ ํด๋๊ฐ์ผํ ๋ถ๋ถ์ด๊ฒ ๋ค.
QT
์ ๋ง ๋ ๋ด๊ฐ qt๋ก ๋ญ ๋ง๋ค๊ฒ ๋ ๊บผ๋ผ๊ณ ๋ ์๊ฐ์ ๋ชปํ๋ค.
์ฌํ์ํ์ ์ฒ์ ์์ํ ๋, ๋ด๊ฐ ์ฒ์ ๋ง์ง๊ฒ๋ ํ๋ก์ ํธ๋ MFC๋ก ๋ง๋ค์ด์ง ๊ฒ์ด์๋ค.
๊ทธ ํ๋ก์ ํธ๋ ๋ฌด์ธ์ ์ํจ๊ณผ ํต์ ํ๋ GUI๋ฅผ ํฌํจํ ๊ด์ ์์คํ
์ ๋ง๋๋ ๊ฒ์ด์๋๋ฐ ๋น์ ํ์ฌ์์๋ ๊ฑฐ์ ๋ชจ๋ ๊ฐ๋ฐ์ MFC๋ก๋ง ์งํํ๊ณ ์์๋ค.
mfc๋ ์ฌ์ ํ ์ฅ๋น์
์ฒด์์ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋ ์ธ์ด๋ผ๊ณ ๋ ํ์ง๋ง ์ด์ ๋ ์ ๋ง old fashioned์ด ๋์๋ค๊ณ ์๊ฐํ๋ค.
ms์์ ์ง์์ ํด์ฃผ๊ณ ์๋์ง๋ ํ์ฌ ๋ฏธ์ง์๋ค.
์ด์ฐ๋๋ ๋ค์ ์ด์ผ๊ธฐ๋ก ๋์๊ฐ์ ์ด๋ฒ ๊ด์ ์์คํ
์ ํต์ฌ ํต์ ๋์์ ๋๋ก ์ด๋ค.
๋๋ก ๊ณผ ํต์ ์ ํด์ผํ๋๋ฐ ์ด ํด๋ผ์ด์ธํธ๋ ๋๋ก ์ ๋ณด์ฌ์ค์ ์ด ์๋ค. ๊ฑฐ์ 1๋
๋ฐ์ด ๋๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ๋์ ๋ช์ฃผ์ ์ธ์ฆ์ํ์ด ์์ ๋, ์ฒ์์ผ๋ก ๋ ๊ทธ ์ค๋ฌผ์ ํ์ธํ ์ ์๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ์ ํด์ผํ๊ณ , ๋๋ก ์ ์ค๋น๊ฐ ๋์ด์์ง ์๊ณ . ๊ทธ๋ผ ์ด์ฉ๊ฒ ๋๊ฐ.
๋ด๊ฐ ๋๋ก ์ ์ธํฐํ์ด์ค๋ฅผ ๋ชจ์ฌํ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋ง๋ค์๋ค.
์์ ์ ์ ๋ง ๊น์ง ํ๋ฒ ๋ง๋ค์ด๋ณธ ๊ฒ ๋นผ๊ณค ๊ฒฝํ์ ์์์ง๋ง ๊ฐ๋จํ๊ฒ gui๋ฅผ ์ง๊ธฐ์, ๊ฑฐ๊ธฐ๋ค๊ฐ ์ฐ๋ถํฌ์์๋ ๋์๊ฐ์ผ ํ์ผ๋ qt๋ ๊ทธ๋๋ ์ง๊ธ์ด๋ ๋์๊ฒ ์์ด์ ์ต์ ์ ์ ํ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ง์ ๋ฌธ์ ๊ฐ ์์๊ณ , ์ด๋ฅผ ํด๊ฒฐํ๋๋ผ ๋ง์ด ๊ณ ์๋ ํ์ง๋ง ์ง๊ธ ์๊ฐํ์ ๋, ๋ด๊ฐ ๋ค์ ๊ทธ๋๋ก ๋์๊ฐ๋ค๋ฉด ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒฐ์ ์ด ํ๋ ์๋ค.
๋๊ธ