์ ์ฒด๋ณด๊ธฐ114 [C/C++] 7. ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ฑ(windows/linux) C/C++์ ์ปดํ์ผ ์ธ์ด์ด๋ฉด์ ํ๋ซํผ ์ข ์์ ์ธ ํน์ฑ์ ๊ฐ๊ณ ์๋ค. ๋ค์ ๋งํ๋ฉด ํ๋ซํผ์ ์ข ์๋์ด ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผํด์ ์ป์ ์คํํ์ผ์ด ๋ง์ฝ ํ๋ซํผ์ด ๋ค๋ฅด๋ค๋ฉด ์คํํ ์ ์๋ค. ๋ํ์ ์ธ ํ๋ซํผ์ธ ์๋์ฐ์ ๋ฆฌ๋ ์ค์์ ๊ฐ๊ฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ์ ์ด๋ป๊ฒ ํ๋์ง ์ดํด๋ณด์. โ windows ์๋์ฐ ์ด์์ฒด์ ๋ Visual Studio๊ฐ 90% ์ด์์ ์ ์ ์จ์ ๋ณด์ธ๋ค. ์๋์ฐ ์ด์์ฒด์ ์ด๊ธฐ ๋๋ฌธ์ MS๊ฐ ๋ง๋ VS์ ํธํ์ด ์ ๋๊ณ , MSVC ์ปดํ์ผ๋ฌ๋ฅผ ์์ฒด์ ์ผ๋ก ๋ด์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์ VS๋ง ์ค์นํด๋ ๋ณ๋ค๋ฅธ ์ถ๊ฐ๋๊ตฌ๊ฐ ํ์ ์๋ค. ์ปดํ์ผ, ์คํ, ๋ถ์๊น์ง ํ IDE์์ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํ๋ค. ๋ค๋ง ๋ง์ ๊ธฐ๋ฅ์ด ์๋ ๋งํผ ์ค์น ์ฉ๋์ด ํฌ๊ณ ๋ฌด๊ฒ๋ค. ํ์ฌ๋ Visual Studio 2022๊น์ง ๋์์๋ค. ์ค์น๋ ์๋ .. 2023. 4. 11. Makefile ๊ธฐ์ด โ ๊ธฐ๋ณธ makefile ์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํ์ผ ํ๊ฒ ๋ ๋๋ gcc/g++๋ก ์ปดํ์ผํ๋ค. gcc -c main.c usa.c kor.c gcc -o app.out main.o usa.o kor.o ์ฌ๊ธฐ์ ๋๋ํ ์ปดํ์ผ๋ฌ์ ๋ฆฌ๋ ์ค๋ gcc -o app.out main.c usa.c kor.c ๋ฅผ ํตํด ์ ๋๊ณผ์ ์ ํ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ค. โ Makefile ๋ง๋ค๊ธฐ TARGET : DEPENDENCY command TARGET์ ๋ง๋ค๊ธฐ ์ํด์๋ DEPENDENCY๊ฐ ํ์ํ๋ค. command ๋ช ๋ น์ ํตํด TARGET์ ๋ง๋ ๋ค. โ๏ธ ex1) ๊ธฐ๋ณธ์ ์ธ Makefile ์ฒซ ๊ตฌ์ฑ (main.c kor.c usa.c → app.out) app.out : main.o kor.o usa.o gcc -o app.out m.. 2023. 4. 11. ์ถ์ ์ฑ๊ธํค ํจํด(Abstract Singleton) ์ถ์ ์ฑ๊ธํค ํจํด์ ์ถ์ํ ๋์ด ์๋ ์ฑ๊ธํค ํจํด์ ์์๋ฐ์์, ์ฌ์ฉํ๋ ํจํด์ ๋๋ค. ๋ง์ฝ ์ฑ๊ธํค์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ ํด๋์ค๊ฐ 5๊ฐ๋ผ๋ฉด, 5๊ฐ ๋ชจ๋ ์ฑ๊ธํค ํจํด์ ์ ์ฉํ๊ธฐ ๋ณด๋จ ์์๊ณผ ํ ํ๋ฆฟ์ ์ด์ฉํด์ ์ถ์ํ๋ ์ฑ๊ธํค์ ๊ตฌํํฉ๋๋ค. ๋งค์ฐ ๊ฐ๋จํ๋๊น ๋ฐ๋ผํด๋ณด์ธ์ :) 1. ์์ ๋ฐ์ ์ถ์ํ ํด๋์ค๋ฅผ ํ ํ๋ฆฟ์ผ๋ก ๊ตฌํ. class SingletonTemplate { public: T* GetInstance() { if ( m_instance == nullptr ) { m_instance = new T(); } return m_instance; } private: SingletonTemplate(); static T* m_instance; } Lasy create๋ก ๊ตฌํํด๋ดค์ต๋๋ค. GetInstance๊ฐ ์ฒ์ ํธ.. 2023. 3. 20. vcpkg๋ฅผ ์ฐ์ ํญ์ C/C++ ๊ฐ๋ฐ์๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํด ๊ณ ํต๋ฐ์ต๋๋ค. ํ๋ซํผ ์ข ์์ ์ด๋ฉด์ ๋ฌด๊ตฌํ ์ญ์ฌ๋ฅผ ๊ฐ์ง ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๋น๊ต์ ์ต๊ทผ์ ๋์จ ์ธ์ด์ ๋ฌ๋ฆฌ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ฉํ๊ธฐ๊ฐ ๊น๋ค๋ก์ ์ฃ . node์ง์์ npm๊น์ง๋ ์๋์ง๋ง C/C++์ง์์์๋ MS๊ฐ ๋ง๋ vcpkg๋ฅผ ์ฐ๋๊ฒ ๊ทธ๋๋ง ํ๋ชจ์ ์๋๋ฅผ ๋ฆ์ถฐ์ค ๊ฒ์ ๋๋ค. vcpkg์ ๊ณต์ ํํ์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://vcpkg.io/en/index.html vcpkg - Open source C/C++ dependency manager from Microsoft Easy To Use Download and build popular libraries in a single step. Never worry about upstream dependenc.. 2023. 3. 19. std::thread์ std::async โ ์ค๋ ๋ ๊ธฐ๋ฐ ์ ๊ทผ vs ๊ณผ์ ๊ธฐ๋ฐ ์ ๊ทผ work๋ผ๋ ํจ์๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง ์ ๋๋ค. ํ๋๋ std::thread ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๊ทธ ๊ฐ์ฒด์์ work๋ฅผ ์คํํ๋ ๊ฒ์ด๊ณ , ์ด๋ ์ค๋ ๋ ๊ธฐ๋ฐ(thread-based) ํ๋ก๊ทธ๋๋ฐ์ ํด๋นํฉ๋๋ค. ๋ ํ๋๋ work๋ฅผ std::async์ ๋๊ฒจ์ฃผ๋ ๊ฒ์ด๊ณ ์ด๋ ๊ณผ์ ๊ธฐ๋ฐ(task-based) ํ๋ก๊ทธ๋๋ฐ์ ํด๋นํฉ๋๋ค. int work(); std::thread t(work); auto f = std::async(work); ์ ์ฝ๋๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ณด์์ ๋, async๋ฅผ ์ฐ๋ฉด work์ ๋ฐํ ๊ฐ์ ์ป์ ์ ์๋ค๋ ๊ฒ์ด ๋ณด์ ๋๋ค.(std::get์ ํตํด ์ป์ ์ ์์ต๋๋ค)(thread๋ ํจ์์ ๋ฐํ ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.) ์ด๊ฒ ๋ฟ๋ง ์๋๋ผ .. 2023. 1. 14. [std] iterator๋ณด๋จ const_iterator ! ๊ฐ๋ฅํ ํ ํญ์ const๋ฅผ ์ฌ์ฉํ๋ผ๋ ํ์ค ๊ดํ์ ๋ฐ๋ณต์์๊ฒ๋ ์ ์ฉ๋ฉ๋๋ค. ๋ฐ๋ณต์๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ์์ ํ ํ์๊ฐ ์์ ๋๋ ํญ์ const_iterator๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. std::vector data; auto itr = std::find(data.cbegin(), data.cend(), 5);// cbegin, cend์ฌ์ฉ if (itr == data.cend()) data.push_back(5); 2023. 1. 14. ์ด์ 1 ยทยทยท 13 14 15 16 17 18 19 ๋ค์