๋ชฉ๋ก์ ์ฒด ๊ธ (1099)
KoreanFoodie's Study
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 10. ์กฐ์ธ (๋จ์ ์กฐ์ธ, ์ธ๋ถ ์กฐ์ธ, ๋ค์ค ์กฐ์ธ ๋ฑ SQL ์กฐ์ธ ์์ ) -- ์ค์ต์ ์ํ ํ ์ด๋ธ๋ค์ ๋ง๋ค์ด ๋ณด์ CREATE TABLE tCar ( car VARCHAR(30) NOT NULL,-- ์ด๋ฆ capacity INT NOT NULL,-- ๋ฐฐ๊ธฐ๋ price INT NOT NULL,-- ๊ฐ๊ฒฉ maker VARCHAR(30) NOT NULL-- ์ ์กฐ์ฌ ); INSERT INTO tCar (car, capacity, price, maker) VALUES ('์๋ํ', 2000, 2500, 'ํ๋'); INSERT INTO tCar (car, capacity, price, make..
์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 9. ์๋ธ์ฟผ๋ฆฌ (์๋ธ์ฟผ๋ฆฌ ์ฐ์ฐ์, ์ธ๋ผ์ธ ๋ทฐ, ํ ์ด๋ธ ์กฐํฉ, ํ ์ด๋ธ ๋ณํฉ) -- MAX ๊ฐ์ ์ฐ์ฐ์๋ ์ง๊ณ ์ฐ์ฐ์๋ผ๊ณ ๋ ํ๋ค. SELECT MAX(popu), name FROM tCity; SELECT name FROM tCity WHERE popu = MAX(popu); SELECT MAX(popu) FROM tCity; SELECT name FROM tCity WHERE popu = 974; SELECT name FROM tCity WHERE popu = (SELECT MAX(popu) FROM tCity); SELECT MAX(num) FROM tItem; SELECT item ..
์๋ ์์ , ์๊ธฐ๊ณ๋ฐ์๋ฅผ ์ข์ํ๋ ํ ์์ด๊ฐ ์ด์๋ต๋๋ค. ํํ '์ถฉ'์ด๋ผ๋ ๊ธ์๊ฐ ๋ถ๋ ๋จ์ด๋ ์ข์ ๋ป์ผ๋ก ์ฐ์ด์ง ์๋๋ค๊ณค ํ์ง๋ง, ์ฌ์ค ๋๋ ๊ฐ์ฑ๋น์ถฉ์ด๋ค. ๋๋ก ์ง๊ทธ๋ฌ์ธ ์ ๋๋ก. ๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ชฐ๋ผ๋, ์ด๋ ธ์ ์ ๋ถํฐ ์๊ธฐ๊ณ๋ฐ์์ ๋ช ์ธ์ง์ ์ข์ํ๋ค. ์๋ํ๋ฉด ๋ช ์ธ์ ์์ถ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋ต์ ์ผ๋ก ์์ค -> ์์ธ์ด -> ๊ธฐ์ ์์ /์๊ธฐ๊ณ๋ฐ์ -> ๋๊ธฐ๋ถ์ฌ ์์ -> ๋ช ์ธ ์์ผ๋ก ํจ์ถ์ฑ์ด ์ฌ๋ผ๊ฐ๋ค. ์ด๋ป๊ฒ ํํํ๋์ง์ ์ด๋ป๊ฒ ์ ๋ฌ๋ ฅ์ ๋์ด๋์ง์ ์ฐจ์ด๊ฐ ์์ ๋ฟ, ํต์ฌ ๋ฉ์์ง๋ ๊ฐ๋จํ๊ณ ๋น์ทํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๊ทธ๋ฌ๋ ์ธ๋ฐ์์ด ์๊ฐ์ ์์๋ถ์ด ๊ฐ์ ๋ด์ฉ์ ํ์ ํ๊ธฐ๋ณด๋ค, ์งง์ ํ ์ค์ ๋ฌธ๊ตฌ๋ก ์ถ์ ์งํ๋ฅผ ์ป์ด๊ฐ๋๊ฒ ๋ซ์ง ์์๊ฐ. ๊ทธ๋ฐ ์๊ฐ์ ํ๋ฉฐ ๋๋ก ๋ช ์ธ์ง๊ณผ ์ ์ธ์ง์ ํ์ฌํ๊ธฐ๋ ํ๋ค. ๊ทธ๋ฐ ์ธ๊ตฌ๋ ค ์ฑ ์ ์ฝ์ง ๋ง๊ณ ..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 10 : ๋ฐฑ๋ฒํผ์ ํฝ ๋ฉ์์ง ๋ฐฑ ๋ฒํผ๋ ํ๋ฉด์ ๊ทธ๋ ค์ง๋ ๋ฒํผ์ ๋ฐ๋ก ๋ ๋๋ฅผ ์ด ๊ฒฝ์ฐ ๋ฒํผ๊ฐ ์ง์์ง๋ ์๊ฐ ๋๋ ๋ฒํผ์ ์ ์ฒด๊ฐ ๋ค ๊ทธ๋ ค์ง๊ธฐ ์ ์ ํ๋ฉด์ ๊ทธ๋ ค์ง๊ธฐ ์ ์ ํ๋ฉด์ ๊ทธ๋ ค์ง ๊ฒฝ์ฐ ๋ ๊ทธ๋ ค์ง ๋ถ๋ถ์ด ํ๋ฉด์์ ์ ๊น ์ง์์ง ์ํ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊น๋นก์ด๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ํ์์ด ์๊ธด๋ค. ์ด๋, ๋ฐฑ ๋ฒํผ๋ฅผ ์์ฑํ์ฌ ๋ฐฑ ๋ฒํผ์ ๋ชจ๋ ๋ด์ฉ์ ๊ทธ๋ฆฌ๊ณ ๋ฐฑ ๋ฒํผ๋ฅผ ํ๋ฉด์ ๋ ๋ํ๋ ๋ฐฉ์์ผ๋ก ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๋ฐฑํผํผ์ ํฝ ๋ฉ์์ง ๊ธฐ์กด์๋ WM_TIMER๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํ์ง๋ง ์ด๋ ๋ชจ๋ ๋ฉ์์ง ์ค์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ๊ณ ์ต๋ ์๋๊ฐ 0.01์ด์ด๋ค. ์ด๋ฅผ ๊ทน๋ณตํ๊ณ cpu ์ฑ๋ฅ์ ์ ๋๋ก ํ์ฉํ๊ธฐ ์ํด ํฝ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ๋ค! HDC hdc = GetDC(g_hWnd); g_hDC..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 9 : ํค๋งค๋์ (ํค ์ ๋ ฅ ๋ฐ๊ธฐ), bitset ์์ ์ด๋ฒ ๊ธ์์๋ ์ฑ๊ธํค ํจํด์ ์ด์ฉํด์ ํค ์ ๋ ฅ์ ๋ฐ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ๋จํ bitset ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ณด๊ฒ ๋ค. SingletonBase.h ๋จผ์ , ์ฑ๊ธํค ํด๋์ค๋ฅผ ์ด์ฉํ ํ ํ๋ฆฟ ํด๋์ค์ธ SingletonBase.h๋ฅผ ์ ์ํด ๋ณด์๋ค. #pragma once /* ์ฑ๊ธํค ํจํด : ๋จ์ผ ๊ฐ์ฒด ๊ด๋ฆฌ ๋ฐฉ๋ฒ - ์ธ์คํด์ค๋ฅผ ํธ์ถ ์ ์ฒ์ ํธ์ถ ํ๋ ๊ฒฝ์ฐ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ์์ฑ ๋ ์ธ์คํด์ค๋ฅผ ๋ฐํ ํ๋ค. - ์ธ์คํด์ค๋ฅผ ํธ์ถ ์ ์ด์ ์ ํธ์ถ๋์ด ์์ฑ์ด ๋์ด ์๋ ๊ฒฝ์ฐ ๊ทธ ์์ฑ ๋์ด ์๋ ์ธ์คํด์ค๋ฅผ ๋ฐํ ํ๋ค. ํ ํ๋ฆฟ(Template, ํํ) : ํจ์ ๋๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ํ - ์ ํด์ง์ง ์์ ์๋ฃํ์ ๋ํ ์ ์ธ์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํ๊ณ ..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 8 : ๊ฐ์ฒด ์งํฅ์ ์ธ ์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ "๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ ธ ์๋ค". ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ฉด ์ ์ง ๋ณด์๊ฐ ํธํ๋ฉฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ๊ตฌํํ ์ ์๋ค. ์ด ๊ธ์์๋ ์ค์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ณด๋ฉฐ ๊ทธ ๋ถ๋ถ์ ๋ํ ๊ธฐ์ด๋ฅผ ๊ฐ๋ตํ ์์ ํ๋ค. ๊ธฐ๋ฅ ์์1 . ๋ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ์๋ค๋ฉด ์ง์ ๋ค์ด๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค!
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 7 : ๊ฒ์ ํ๋ ์์ํฌ ๊ตฌ์ฑ ์ง๊ธ์ ๊ฐ๋จํ ๊ฒ์์ด๋๊น WindowsProject1.cpp๋ผ๋ ๋จ์ผ ํ์ผ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ง๋ง, ํ๋ก๊ทธ๋จ์ด ๋ณต์กํด์ง๋ฉด ์ฌ์ค ํ์ํ ์ฝ๋๋ฅผ ํ์ํ ํ์ผ์ ๋ถํ ํด์ ๊ตฌ์ฑํด์ผ ํ๋ค. ์ด ๊ธ์์๋ ์ด๋ฅผ ์ํ ๋ฐ์์ ์ ์ด๋ป๊ฒ ํ๋์ง๋ฅผ ๋ค๋ฃจ๊ณ ์ ํ๋ค. GameNode : ๋จผ์ ์ค์ผ๋ ํค ํด๋์ค๋ฅผ ๋ง๋ค์ #pragma once class GameNode { public: GameNode(); ~GameNode(); virtual void Init() = 0; // ์์ ๊ฐ์ ํจ์ virtual void Update() = 0; virtual void Render() = 0; }; ๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ผ๋ก Init, Update, Render๋ผ๋ ๊ฐ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 6 : ๊ฐ๋จํ UI ๊ตฌํ๊ณผ ๋ฅํผํ๊ธฐ ๊ฒ์ ์์ ์ด์ ๊ธ์ ์ด์ด์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ฝ๊ฐ ์ถ๊ฐํด ๋ณด์. ์ ์ญ ๋ณ์ ์ฌ์ค์ struct tagBox { RECTrt; floatspeed; }; vectorvecBox;// ๋จ์ด์ง๋ ๋ ํธ๋ค์ ์ ๋ณด intnDelay = 50; struct tagBox๋ฅผ ์๋ก ์ ์ธํ์ฌ RECT๋ฅผ ๋์ฒดํ๋ค. ๊ทธ ์ด์ ๋, ๊ฐ๊ฐ์ ์์๋ง๋ค ๋จ์ด์ง๋ ์๋๋ฅผ ๋ค๋ฅด๊ฒ ๋ง๋ค๊ธฐ ์ํด์์ธ๋ฐ, ์ด๋ ๋์ด๋๋ ์ฝ๊ฐ์ ์ฌ๋ฏธ ์์๋ฅผ ์ฒจ๊ฐํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. WM_TIMER : ์ ์ ๊ณ์ฐ๊ณผ ํ์ ์์ case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); nLevel = nScore / 100 + 1; // ํฌ์ง์ ์..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 5 : ๋ฌผ์ฒด ๋จ์ด๋จ๋ฆฌ๊ธฐ ์ด๋ฒ ๊ธ์์๋ ๊ฐ๋จํ ๋ฌผ์ฒด๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉฐ ๋ค๋ฅธ ๋ํ ์ผ์ ์ค๋ช ํ๋ค. WM_CREATE case WM_CREATE:// ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ํ๋ฒ ํธ์ถ ๋๋ค. (์ด๊ธฐํ) SetTimer(hWnd, 1, 10, NULL); srand(time(NULL)); break; ์ด๊ธฐํ ํจ์๋ฅผ ํตํด ํ์ด๋จธ๋ฅผ SET ํ๊ณ , ๋๋ค ํจ์๋ฅผ ํธ์ถํ๋ค. WM_TIMER case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 50); if (nDelay == 50) { RECT rt; rt.le..
์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 4 : ์ถฉ๋ ๊ฒ์ฌ (IntersectRect...) ์ด๋ฒ ๊ธ์์๋ ๋ํ์ด ๋ค๋ฅธ ๋ํ๊ณผ ๋ง๋ฌ์ ๋ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๊ณ ์ฒ๋ฆฌํ๋์ง๋ฅผ ์ดํด๋ณธ๋ค. WM_TIMER์์ IntersectRect๋ฅผ ๋ฃ์ด๋ณด์ // ์๋ ๋ ์ค์ ์ ์ญ๋ณ์๋ก ์ ์ธํจ enum MOVE_DIR { MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN }; MOVE_DIReMoveDir; // ... case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 100); rtBox2 = RECT_MAKE(ptPos2.x, ptPos..