Total
[Wireshark] Visual Studio์์ PcapPlusPlus ์ฌ์ฉ์ ์ํ ์ค๋น ๋จ๊ณ์ ์์ ์ฝ๋ ์คํํ๊ธฐ
[Wireshark] Visual Studio์์ PcapPlusPlus ์ฌ์ฉ์ ์ํ ์ค๋น ๋จ๊ณ์ ์์ ์ฝ๋ ์คํํ๊ธฐ
2023.01.02ํจํท ์บก์ฒ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Pcap++์ ์ ๋ฐ์ ์ธ ์๊ฐ๋ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. [Wireshark] ๋คํธ์ํฌ ํจํท ๋ชจ๋ํฐ๋ง์ PcapPlusPlus๋ก ์ฝ๊ฒ! [Wireshark] ๋คํธ์ํฌ ํจํท ๋ชจ๋ํฐ๋ง์ PcapPlusPlus๋ก ์ฝ๊ฒ! Pcap++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋คํธ์ํฌ ํจํท ๊ฐ์ง๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ Unix์ libpcap, Windows์ Npcap๊ณผ WinPcap์ด ๋ํ์ ์
๋๋ค. PcapPlusPlus(Pcap++)๋ ๋คํธ์ํฌ ํจํท์ ๊ฐ์งํ๊ณ ํ์ฑํ๊ธฐ ์ํ ๋ฉํฐ ํ๋ซํผ C++ ๋ผ luckygg.tistory.com ์ค๋น ๋จ๊ณ Pcap++๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ค๋น ๋จ๊ณ๊ฐ ์์ต๋๋ค. ๋ค์ด๋ก๋๊ฐ ํ์ํ ํ์ผ์ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ผ๋ ํด๋น ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. 1. Visual Studio ๋ฒ์ P..
[Wireshark] ๋คํธ์ํฌ ํจํท ๋ชจ๋ํฐ๋ง์ PcapPlusPlus๋ก ์ฝ๊ฒ!
[Wireshark] ๋คํธ์ํฌ ํจํท ๋ชจ๋ํฐ๋ง์ PcapPlusPlus๋ก ์ฝ๊ฒ!
2022.12.30Pcap++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋คํธ์ํฌ ํจํท ๊ฐ์ง๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ Unix์ libpcap, Windows์ Npcap๊ณผ WinPcap์ด ๋ํ์ ์
๋๋ค. PcapPlusPlus(Pcap++)๋ ๋คํธ์ํฌ ํจํท์ ๊ฐ์งํ๊ณ ํ์ฑํ๊ธฐ ์ํ ๋ฉํฐ ํ๋ซํผ C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, libpcap, Npcap๊ณผ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํจํท ์ฒ๋ฆฌ ์์ง์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ C++ Wrapper๋ก ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. ์ฐธ๊ณ ๋ก, Windows์ WinPcap์ 2013๋
์ ๋ง์ง๋ง์ผ๋ก ๋ ์ด์ ๊ฐ๋ฐ๋์ง ์์ต๋๋ค. ์ดํ๋ก๋ Npcap ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ง์๋๋ฉฐ ์ด์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋๊ฒ ์ต๋๋ค. https://npcap.com/vs-winpcap.html
[C#] ์๋ฃจ์
ํ์๊ธฐ์์ Form์ด ์ฌ๋ผ์ง๋ ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
[C#] ์๋ฃจ์ ํ์๊ธฐ์์ Form์ด ์ฌ๋ผ์ง๋ ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
2022.12.27Form์ด ์ฌ๋ผ์ง๋ ํ์ C# WinForm ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ ์ค Form์ด ์ฌ๋ผ์ง๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค. ์ด๋ป๊ฒ ์ฌ๋ผ์ง๋ค๋ ๊ฑด์ง ํ๋ฒ ๋ณด๊ฒ ์ต๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด, Form1.cs ์ผ์ชฝ์ ์ฌ๊ฐํ ์์ด์ฝ์ด ๋ณด์
๋๋ค. ๊ทธ๋ฐ๋ฐ ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด C# ์์ด์ฝ์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ด ์ํ์์ Form1.cs๋ฅผ ๋๋ธ ํด๋ฆญํ๋ฉด ๋์์ธ ํญ์ด ๋ณด์ด์ง ์๊ณ ์์ค ์ฝ๋๋ง ๋ณด์
๋๋ค. ์ฌ์ง์ด ์ด ์ํ์์๋ ์์ค ์ฝ๋ ์ฐฝ์์ '๋์์ด๋ ๋ณด๊ธฐ' ๋ฉ๋ด๋ ์ฌ๋ผ์ง๋๋ค. ์ฐธ ๋ต๋ตํ์ฃ ? ์ฌ์ง์ด ๋น์ฃผ์ผ ์คํ๋์ค๋ฅผ ์ฌ์คํํ๋ , ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ
ํด๋ ํด๊ฒฐ๋์ง ์์ต๋๋ค. ํ์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ฌธ์ ๊ฐ ์๋ ํ๋ก์ ํธ์ csproj ํ์ผ์ ํ
์คํธ ํธ์ง๊ธฐ(๋ฉ๋ชจ์ฅ)๋ก ์ฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๊ฐ ์๋ ํ์ผ(๋ณธ๋ฌธ์ Form1.cs)..
์๋ชฉ๊ณผ ์ด๊นจ ํต์ฆ ๋ณดํธ๋ฅผ ์ํ ์๋ก์ด ํค๋ณด๋, ๋ง์ฐ์ค ๋ฐฐ์น ๋ฐฉ๋ฒ
์๋ชฉ๊ณผ ์ด๊นจ ํต์ฆ ๋ณดํธ๋ฅผ ์ํ ์๋ก์ด ํค๋ณด๋, ๋ง์ฐ์ค ๋ฐฐ์น ๋ฐฉ๋ฒ
2022.12.25์ง์
๋ณ ๊ด๋ฆฌ, 1๋
๋์ ํจ๊ณผ๋? ๋ฑ ์๋
์ด๋ง๋ ๊ฑฐ๋ถ๋ชฉ๊ณผ ์๋ชฉ ํต์ฆ ๊ด๋ฆฌ์ ๋ํ ์ ๋ง์ ๋
ธํ์ฐ๋ฅผ ๊ณต๊ฐํ๋ค๋ ํฌ์คํ
์ ํ์์ต๋๋ค. ๊ฐ๋ฐ์ ์ง์
๋ณ ๊ฑฐ๋ถ๋ชฉ๊ณผ ์๋ชฉ ํต์ฆ ๊ด๋ฆฌ, ์ ๋ง์ ๋
ธํ์ฐ๋ฅผ ๊ณต๊ฐํฉ๋๋ค ๊ฐ๋ฐ์ ์ง์
๋ณ ๊ฑฐ๋ถ๋ชฉ๊ณผ ์๋ชฉ ํต์ฆ ๊ด๋ฆฌ, ์ ๋ง์ ๋
ธํ์ฐ๋ฅผ ๊ณต๊ฐํฉ๋๋ค ๋ณธ๋ฌธ ์ค๊ฐ์ ์ค์ ๋ก ๊ตฌ์
ํ ์ ํ์ด ๊ณต๊ฐ๋ฉ๋๋ค. ๊ด๊ณ ๊ฐ ์๋๋ฉฐ ๊ณต์ ์ฐจ์์์ ์์ฑํ ๊ฒ์ด๋ ์ฐธ๊ณ ํ์ธ์. ๋ณธ๋ฌธ์ ๊ฑด๊ฐ ์ง์ ๊ด๋ จ ๋ด์ฉ์ ์ถ์ฒ๋ฅผ ๋จ๊ฒผ์ผ๋ฉฐ, ์์ ์ ๊ฑด๊ฐ ์ํ๋ ๋ฐ๋์ ์ ๋ฌธ ๋ณ์ luckygg.tistory.com ์ง๋ 1๋
๋์ ์ฆ์์ ์ด๋ ์๊น์? ์ด๋ฐ์ ๋ฐ ์๋๋ฅผ ํด๋ดค์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชธ ์ํ๊ฐ ๋ ์ ์ข์์ก์ต๋๋ค :) ์๋ชฉ์ ์ฌ์ ํ ์ํ๊ณ , ์ด์ ๋ ๊ฐ์ด ๊ทผ์ก๊ณผ ๊ฒฌ๊ฐ๊ณจ๊น์ง ํต์ฆ์ด ์๊ฒจ๋ฒ๋ ธ์ต๋๋ค. ์ญ์๋ ๋ณ์์์ CT๋ X-Ray๋ ์ด..
[์ ํ ํ๊ธฐ] ์ผ์ฑํด ํธ๋๋ณผ ๋ง์ฐ์ค, ์ฌ๋ฆผ ๋ธ๋ ์ด๋(Slim Blade) ์ฌ์ฉ ํ๊ธฐ
[์ ํ ํ๊ธฐ] ์ผ์ฑํด ํธ๋๋ณผ ๋ง์ฐ์ค, ์ฌ๋ฆผ ๋ธ๋ ์ด๋(Slim Blade) ์ฌ์ฉ ํ๊ธฐ
2022.12.24ํธ๋๋ณผ ๋ง์ฐ์ค? ๋ณผ ๋ง์ฐ์ค? ํธ๋๋ณผ ๋ง์ฐ์ค๋ ๋ณผ(Ball)์ ๊ตด๋ ค์ ์ปค์๋ฅผ ์กฐ์ํ๋ ๋ง์ฐ์ค์
๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ณผ์ ๊ตด๋ฆฐ๋ค๊ณ ํด์ ์ค๋์ ์ ์ฌ์ฉํ๋ ๋ณผ ๋ง์ฐ์ค์๋ ๋ค๋ฆ
๋๋ค. ๊ณผ๊ฑฐ์ ๋ณผ ๋ง์ฐ์ค๋ ๋ง์ฐ์ค ๋ฐ๋ฉด์ ๋ณผ์ด ์ด์ง ํ์ด๋์ ์์ด์, ๋ง์ฐ์ค๋ฅผ ์์ง์ด๋ฉด ๋ฐ๋ฅ์ ๋ฟ์ ๋ณผ์ ์์ง์์ ๋ฐ๋ผ ์ปค์๊ฐ ์กฐ์๋์์ต๋๋ค. ์ด์ ๋ฌ๋ฆฌ ํธ๋๋ณผ ๋ง์ฐ์ค๋ ๋ณผ์ด ๋ง์ด ํ์ด๋์ ์๊ณ , ์๊ฐ๋ฝ์ผ๋ก ๋ณผ์ ์์ง์ฌ ์ปค์๋ฅผ ์กฐ์ํ๋ ๋ฐฉ์์
๋๋ค. ํธ๋๋ณผ ๋ง์ฐ์ค๋ฅผ ์ ํํ ์ด์ ์ผ๋ฐ์ ์ธ ๋ง์ฐ์ค๋ ์์ผ๋ก ๋ง์ฐ์ค๋ฅผ ์ฅ๊ณ ์๋ชฉ์ ์งํฑํ์ฌ ์๊ฐ๋ฝ๋ง ์ด์ง ํ๋ค๊ฐ ์ค๋ฏ๋ฆฌ๋ฉด์ ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฐ์ค์ ์์น์ ๋ฐ๋ผ ํ์ด ํด์ง๋ ๊ฐ๋๊ฐ ๋ฌ๋ผ์ง๊ณ , ๊ฐ๋๊ฐ ๊ณผํ๊ฒ ์ปค์ง๋ฉด ํ์ด ๋ป์ด์ง๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ฅ์๊ฐ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ๊ฒฌ๊ฐ๊ณจ์ ํต์ฆ์ด ์๊ธฐ๊ธฐ๋ ํฉ๋๋ค. ..
[Wireshark] ํจํท ๋ถ์์ ์์, ์์ด์ด์คํฌ! ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ ์ ๋ฆฌ
[Wireshark] ํจํท ๋ถ์์ ์์, ์์ด์ด์คํฌ! ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ ์ ๋ฆฌ
2022.12.15์์ด์ด์คํฌ(Wireshark)๋? ์์ด์ด์คํฌ๋ ๋คํธ์ํฌ ํจํท์ ๊ฐ์ ๋ฐ ๋ถ์ํ๋ ํ๋ก๊ทธ๋จ์ผ๋ก, ์ด๋ฆ์ด ๊ฐ์ฅ ๋๋ฆฌ ์๋ ค์ง ์ํํธ์จ์ด์
๋๋ค. ๋คํธ์ํฌ ์ฅ๋น๋ฟ๋ง ์๋๋ผ ๋จธ์ ๋น์ ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ ํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์์ด์ด์คํฌ๋ก ํจํท์ ๋ถ์ํ๊ณ ๋ฌธ์ ์ ์ ์ฐพ๋๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ, TCP ํต์ ์ผ๋ก ์ฅ์น์ ๋ช
๋ น์ด๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ํจํท์ ๋ฐ์ดํฐ ํํ๋ ์ด๋ ํ์ง ํ์ตํ๋ ๋ฐ์๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ์์ด์ด์คํฌ์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. GNU GPLv2 ๋ผ์ด์ ์ค(์์ ์ํํธ์จ์ด) ํฌ๋ก์ค ํ๋ซํผ(Windows, Linux, Mac ๋ฑ ์ง์) ํจํท ๋ถ์์ ์ํ GUI ์ ๊ณต ๋ฌด์ฐจ๋ณ ๋ชจ๋(promiscuous mode) ์ง์ Loopback ๋ฟ๋ง ์๋๋ผ ์์คํ
์ ๋คํธ์ํฌ ์ด๋ํฐ๋ ๋ถ์ ๊ฐ๋ฅ ํ์ผ ํํ๋ก ๊ธฐ..
[๋คํธ์ํฌ] iPerf3๋ก ๋คํธ์ํฌ ๋ถํ ํ
์คํธ ์ฝ๊ฒ ํ๊ธฐ
[๋คํธ์ํฌ] iPerf3๋ก ๋คํธ์ํฌ ๋ถํ ํ ์คํธ ์ฝ๊ฒ ํ๊ธฐ
2022.12.11๋คํธ์ํฌ ๋ถํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ๋๋ฉด ์์ ์ฑ ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค. ์ฅ๊ธฐ์ ์ธ ๋์์ ๋ฌธ์ ๊ฐ ์๋์ง, ๋ฎ์ ์ฌ์์ PC์์๋ ์ ๋์ํ๋์ง, CPU ๋ถํ๊ฐ ๋์ ์ํ์์๋ ์ ๋์ํ๋์ง ๋ฑ์ ์์๊ฐ ์์ต๋๋ค. ๋คํธ์ํฌ ๋ถํ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋คํธ์ํฌ ๊ด๋ จ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋ค๋ฉด ๋คํธ์ํฌ ๋ถํ์ ๋ฐ๋ฅธ ํ
์คํธ๋ ํ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ํฉ์์๋ ๋ฌธ์ ๊ฐ ์์ผ๋ ์์๊ฐ์ ๋ง์ ์์ ๋คํธ์ํฌ ํจํท์ด ๋ค์ด์ค๋ฉด ํ๋ก๊ทธ๋จ์ด ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ๋ ์ํฉ์ ๋ณผ ์ ์์ต๋๋ค. iPerf3 ํน์ง ์ฌ๊ธฐ, ๋คํธ์ํฌ ๋ถํ๋ฅผ ํ
์คํธํ๊ธฐ ์ํ ํธ๋ฆฌํ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ๋ฐ๋ก iPerf3์
๋๋ค. https://iperf.fr/iperf-download.php iPerf - Download iPerf3 and original iPerf pre-compile..
[C#] WinForm ๋๊ตฌ ์์์ ์ปจํธ๋กค์ด ์ถ๊ฐ๋์ง ์๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
[C#] WinForm ๋๊ตฌ ์์์ ์ปจํธ๋กค์ด ์ถ๊ฐ๋์ง ์๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
2022.10.29๋๊ตฌ ์์์ ์ปจํธ๋กค์ด ์ถ๊ฐ๋์ง ์๋ ๋ฌธ์ C# WinForm์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ ์ปจํธ๋กค ์ธ์, ๋ด๊ฐ ํ์๋ก ํ๋ ๊ธฐ๋ฅ์ ์ปจํธ๋กค์ด ์๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์ ์ปจํธ๋กค(Custom control)๋ก ์ง์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋๋ NuGet์ด๋ ๋๊ตฐ๊ฐ ๋ง๋ ์ปจํธ๋กค dll์ ์ฌ์ฉํด๋ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ์ธ๋ถ ์ปจํธ๋กค์ ํผ(Form) ๋์์ด๋์์ ์ฌ์ฉํ๋ ค๋ฉด ๋๊ตฌ ์์(Tool box)์ ์ถ๊ฐ๋์ด์ผ ํ๋๋ฐ์. ํํ์ด๋ฉด Visual Studio ๋ฒ๊ทธ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ผ๋, ๋๊ตฌ ์์์ ์ปจํธ๋กค์ ์ถ๊ฐํ๋ค๊ฐ Visual Studio๊ฐ ์ข
๋ฃ๋๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค. [Visual Studio] VS2015 ๋๊ตฌ ์์(ToolBox) ์ข
๋ฃ ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ [Visual Studio] VS2015 ๋๊ตฌ ์์(ToolBox) ์ข
๋ฃ..
[C#] WinForm์ Form ๋์์ด๋๊ฐ ์ฌ๋ผ์ง๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
[C#] WinForm์ Form ๋์์ด๋๊ฐ ์ฌ๋ผ์ง๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
2022.10.25Form ๋์์ด๋๊ฐ ์ฌ๋ผ์ง๋ ํ์ ์์ฃผ ๊ฐ๋ C# WinForm ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ค๊ฐ Form ๋์์ด๋๊ฐ ์ฌ๋ผ์ง๋ ํ์์ด ์๊น๋๋ค. ์ ์์ ์ด๋ผ๋ฉด ์๋์ ๊ฐ์ด Form.cs ํ์ผ์ ์์ด์ฝ์ด ํผ(Form)์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ธ ํด๋ฆญํ๋ฉด ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด UI ๊พธ๋ฏธ๊ธฐ๊ฐ ๊ฐ๋ฅํ ๋์์ด๋ ์ฐฝ์ด ํ์๋์ด์ผ ํ์ฃ . ๊ทธ๋ฐ๋ฐ ์ด๋ ์๊ฐ๋ถํฐ ํผ ์์ด์ฝ์ด ์ฌ๋ผ์ง๊ณ C# ์์ด์ฝ์ด ์๊ธฐ๋ฉด์ ๋์์ด๋๊ฐ ๋ ์ด์ ๋ณด์ด์ง ์๋ ํ์์ด ์์ต๋๋ค. ์ด์ํ๋ค ์ถ์ด ํ๋ก์ ํธ๋ฅผ ๋ค์ ์ด์ด๋, PC๋ฅผ ์ฌ๋ถํ
ํด๋, ์ด๋ฆ์ ๋ฐ๊ฟ๋ ๋์ ํ ๋์์ค์ง ์์ต๋๋ค. ์ด๋ฐ ํ์์ด ๋ฐ์ํ์ ๋ ์์ฃผ ๊ฐ๋จํ๊ฒ ์กฐ์นํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. csproj ํ์ผ์ ์์ ํ์ฌ ํด๊ฒฐํ๊ธฐ ์ด ๋ฌธ์ ๋ ํ๋ก์ ํธ ํ์ผ์ ์์ ํ์ฌ ์ฝ๊ฒ ํด๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ ๊ทธ๋ฆผ์ฒ๋ผ, *..
[C++] C++์์ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH) ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
[C++] C++์์ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH) ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
2022.10.18๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ์ C++ ์์ธ ์ฒ๋ฆฌ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ๋ Microsoft Windows์ ๊ธฐ๋ณธ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ด๋ฉฐ, ์ํํธ์จ์ด์ ํ๋์จ์ด ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ์ค๋ช
ํ์์ต๋๋ค. ์ด๋ฌํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH)๋? ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(์ดํ SEH)๋ ํ๋์จ์ด์ ์ํํธ์จ์ด ์์ธ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ Microsoft Windows์ ๊ธฐ๋ณธ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์
๋๋ค. ํ๋์จ์ด ์์ธ๋ ์์ธ๊ฐ ๋ฐ์ํ ์ฃผ์ฒด๊ฐ CPU luckygg.tistory.com ๊ทธ๋ฆฌ๊ณ C++ ์์ธ ๋ฌธ๋ฒ์ธ try, catch..
ํ๋ก๊ทธ๋จ์์ ์ผ๋ฐ์ ์ธ ์์ธ ์ฒ๋ฆฌ(Exception Handling)ํ๋ ๋ฐฉ๋ฒ
ํ๋ก๊ทธ๋จ์์ ์ผ๋ฐ์ ์ธ ์์ธ ์ฒ๋ฆฌ(Exception Handling)ํ๋ ๋ฐฉ๋ฒ
2022.10.15์์ธ ์ฒ๋ฆฌ๊ฐ ์ ํ์ํ ๊น์? ํ๋ก๊ทธ๋จ์ ์์ธ ์ฒ๋ฆฌ๋ ์์ฃผ ์ค์ํฉ๋๋ค. ๋ด๊ฐ ๋ง๋ ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ ์ํฉ์์ ํญ์ ์ ๋์ํ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์๋ฌด๋ฆฌ ์ ๋ง๋ค์๋ค๊ณ ํด๋, ๋ง์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ํ๊ฒฝ์ด๋ ์กฐ์ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ฌด์จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ง๋ ์ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จ ์์ (๊ธฐ์ด ์ธ์ด ๋ฌธ๋ฒ์ ๋ค๋ฃจ๋ ์ฑ
๋ฟ๋ง ์๋๋ผ, ํ๋ก๊ทธ๋จ ์ค๊ณ, ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ ๋ฑ)์ ๋ณด๋ฉด, ๊ฑฐ์ ๋๋ถ๋ถ ์์ธ ์ฒ๋ฆฌ์ ์ค์์ฑ์ ๊ฐ์กฐํ๊ณ ์์ต๋๋ค. ์์ธ ์ฒ๋ฆฌ๊ฐ ์ ๋์ด ์์ด์ผ ์์ ์ ์ธ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์ฐธ๊ณ ๋ก, ์ ๊ฐ ์ธ๊ธํ๋ ์์ธ ์ฒ๋ฆฌ๋ ๋์ค์ ์๊ฐํ ์๋ฌ ์ฒ๋ฆฌ(Error Handling)์ ์์ธ ์ฒ๋ฆฌ(Exception Handling) ๋ชจ๋๋ฅผ ํต์นญํ๋ ํํ์
๋๋ค. ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ..
์์ธ ์คํ ํ๊ธฐ(Stack Unwinding)์ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ํฅ
์์ธ ์คํ ํ๊ธฐ(Stack Unwinding)์ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ํฅ
2022.10.12์คํ ํ๊ธฐ(Stack Unwinding)๋? ์์ธ๊ฐ ๋ฐ์ํ ํจ์์์ ์์ธ๊ฐ ์ฒ๋ฆฌ๋์ง ์์ผ๋ฉด, ์์ ํจ์๋ก ๋์๊ฐ ์์ธ๊ฐ ์ฒ๋ฆฌ๋๊ธฐ๋ฅผ ์๋ํฉ๋๋ค. ๋ง์ฝ, ์์ ํจ์์๋ ์๋ค๋ฉด ๋ค์ ๊ทธ ์์ ์์ ํจ์๋ก ๋์๊ฐ๋ฉฐ ๋ฐ๋ณตํ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ, ์์ธ๊ฐ ๋ฐ์ํ๋๋ฐ ์ด๋ ๊ณณ์์๋ try-catch ๋ฌธ์ด ์๋ค๋ฉด ํ๋ก๊ทธ๋จ์ ์ข
๋ฃ๋๊ณ ๋ง๋๋ค. ์ด๋ ๊ฒ ์ด์ ์ ํธ์ถ๋ ํจ์๋ก ๊ณ์ ๋์๊ฐ๋ ๊ฒ์ ์คํ ํ๊ธฐ(Stack Unwinding)๋ผ๊ณ ํฉ๋๋ค. ๋ค์์ ์์ ์ฝ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. namespace ExamException { class Program { static void func1() { func2(); } static void func2() { func3(); } static void func3() { throw new Ex..