Development๐ฉ๐ป๐ฆณ(27)
-
IP ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ (inet_pton ํ์ฉ)
Basic Practice: Converting IP Address Strings using inet_pton() and inet_ntop()์์ผ ์ฃผ์ ๊ตฌ์กฐ์ฒด(Socket Address Structure)ํญ๋ชฉ ์ค๋ช ์ ์๋คํธ์ํฌ ํต์ ์ ํ์ํ ์ฃผ์ ์ ๋ณด๋ฅผ ๋ด๋ ๊ตฌ์กฐ์ฒด๊ธฐ๋ณธ ๊ตฌ์กฐ์ฒดstruct sockaddrํ๋ ๊ตฌ์ฑsa_family: ์ฃผ์ ์ฒด๊ณ (์: AF_INET),sa_data[14]: ์ค์ ์ฃผ์ ๋ฐ์ดํฐ ์ ์ฅ ๊ณต๊ฐ์ญํ bind(), connect(), accept() ๋ฑ ๋ค์ํ ์์ผ ํจ์์ ์ธ์๋ก ์ฌ์ฉํ๋ซํผ ์ฐจ์ด- ์๋์ฐ: **SOCKADDR**๋ก typedef- ๋ฆฌ๋ ์ค: sockaddr ๊ทธ๋๋ก ์ฌ์ฉ์ฃผ์ ์ฒด๊ณ์ ๋ฐ๋ฅธ ํ์ฅ์ค์ ์ฌ์ฉ์ sockaddr_in (IPv4), sockaddr_in6 (IPv6) ๋ฑ ๊ตฌ..
2025.05.08 -
์์ผ ํ๋ก๊ทธ๋๋ฐ์ ์์: ์ฃผ์ ์ฒด๊ณ๋ถํฐ closesocket๊น์ง ํ๋์ ๋ณด๊ธฐ
๋จ์ํ ๋์ ์ดํด๋ฟ๋ง ์๋๋ผ, ์ค๋ฅ ์ฒ๋ฆฌ ํ๋ฆ, ์ ์ญ ๋ณ์ ํ์ฉ, Winsock ํ์ฅ ํจ์ ์ ์ฉ๋ฒ๊น์ง ์ค๋ฌด์ ์ธ ์ธก๋ฉด์ ๊ณ ๋ คํด ์ ๋ฆฌํ๋ค.โ ์ฐ์ต๋ฌธ์ 05-B: ์ฌ์ฉ์ ์ ์ ํจ์์ ์ค๋ฅ ์ฒ๋ฆฌ๐ง ์๊ตฌ ์ฌํญ ์์ฝf(int x) ํจ์๋ x๊ฐ ์์๋ฉด ์คํจ, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฑ๊ณต์คํจ ์ errno ์ ์ญ ๋ณ์์ EINVAL ์ค์ ๋ฆฌํด ๊ฐ์ ์ฑ๊ณต ์ 0, ์คํจ ์ 1๐ ๊ตฌํ ์ฝ๋ ์์c๋ณต์ฌํธ์ง#include #include // errno, EINVAL#include // exit()void err_quit(const char* msg) { perror(msg); exit(1);}int f(int x) { if (x >= 0) { errno = 0; return 0; ..
2025.04.11 -
์์ผ ํต์ ์ ๋๋ก ์ดํดํ๊ธฐ: TCP/IP 4๊ณ์ธต์ ์ค์ฌ์ผ๋ก
TCP/IP ๊ณ์ธต ๊ตฌ์กฐ์ ์ญํ ์ธํฐ๋ท์์ ํต์ ์ด ์ํํ ์ด๋ฃจ์ด์ง๊ธฐ ์ํด์๋ ๊ฐ ๊ตฌ์ฑ ์์๋ค์ด ์ผ์ ํ ๊ท์น๊ณผ ์ ์ฐจ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค. ์ด๋ฅผ ์ํด TCP/IP๋ ๋ค ๊ฐ์ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅธ๋ค. ๊ฐ๊ฐ์ ๊ณ์ธต์ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ ๊ณผ์ ์์ ์ํํด์ผ ํ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ดํ๋ฉฐ, ๊ณ์ธต ๊ฐ์ ๋ช ํํ ์ญํ ๋ถ๋ด ๋๋ถ์ ๋ค์ํ ์์คํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ด ๋ณด์ฅ๋๋ค. ์ด ๊ตฌ์กฐ๋ ์์ ๊ณ์ธต์ด ํ์ ๊ณ์ธต์ ๋์ ๋ฐฉ์์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค.๊ฐ ๊ณ์ธต์ ๋ค์๊ณผ ๊ฐ์ ์ญํ ์ ์ํํ๋ค.์์ฉ ๊ณ์ธต(Application Layer): ์ต์์ ๊ณ์ธต์ผ๋ก, ์ฌ์ฉ์์๊ฒ ๋คํธ์ํฌ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉํ๋ HTTP, ์ด๋ฉ์ผ ์ก์์ ์ ์ํ SMTP, FTP, DNS ๋ฑ์ด ์ด ๊ณ์ธต์ ์ํ..
2025.04.10 -
์ค๋งํธํ ํฌ์ฝ๋ฆฌ์ ๋ฐฉ๋ฌธ ํ๊ธฐ
์ค๋งํธ ํ ํฌ ์ฝ๋ฆฌ์ ๋ฐฉ๋ฌธ๊ธฐ์ค๋งํธ ํ ํฌ ์ฝ๋ฆฌ์์ ๋ค๋ ์์ต๋๋ค! ์ด๋ฒ ํ์ฌ๋ ์ต์ ๊ธฐ์ ๊ณผ ํ์ ์ ์ธ ์๋ฃจ์ ๋ค์ด ํ ์๋ฆฌ์ ๋ชจ์ธ ๊ณณ์ผ๋ก, ๋ค์ํ ๋ถ์ผ์ ์ ๋ฌธ๊ฐ๋ค๊ณผ ํจ๊ป ์ต์ ํธ๋ ๋๋ฅผ ์ดํด๋ณผ ์ ์๋ ๊ธฐํ์์ต๋๋ค.1. ์ ์ฅ๊ณผ ์ฒซ์ธ์์ ๊ตฌ์ ๋ค์ด์์๋ง์ ๋ค์ํ ๋ถ์ค๋ค์ด ๋์ ๋ค์ด์์ต๋๋ค. AI, IoT, ์ค๋งํธ ์ํฐ, ๋ก๋ด ๊ณตํ ๋ฑ ๋ค์ํ ์ฃผ์ ์ ๋ถ์ค๋ค์ด ๊ด๋๊ฐ๋ค์ ์ด๋ชฉ์ ์ฌ๋ก์ก์์ต๋๋ค. ํนํ, ๊ฐ ๋ถ์ค๋ง๋ค ์ต์ ๊ธฐ์ ์ ์ง์ ์ฒดํํด๋ณผ ์ ์๋ ๊ธฐํ๊ฐ ์ฃผ์ด์ ธ ๋์ฑ ํฅ๋ฏธ๋ก์ ์ต๋๋ค.2. ์ฃผ์ ๊ด๋ ํฌ์ธํธAI ๋ฐ ๋จธ์ ๋ฌ๋ ๋ถ์ค: ์ด๊ณณ์์๋ AI์ ๋ค์ํ ํ์ฉ ์ฌ๋ก์ ์ต์ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ค์ ์ ํ ์ ์์์ต๋๋ค. ํนํ, ์๋ํ๋ ๋ฐ์ดํฐ ๋ถ์๊ณผ ์์ธก ๋ชจ๋ธ๋ง์ ๋ํ ๋ฐ๋ชจ๊ฐ ์ธ์์ ์ด์์ต๋๋ค.IoT ์๋ฃจ์ : ์ฌ๋ฌ IoT ๊ธฐ๊ธฐ๋ค์ด ์ค์๊ฐ์ผ..
2024.07.08 -
C# mes ํ๋ก์ ํธ ๋ฐฑ์๋ ๊ตฌํ ์ ๋ฆฌ ๋ฐ ์ถ๊ฐ ๊ฐ์ด๋ ( -3- )
https://www.notion.so/WorkManagementSystem-ea38095ae6a846c791f91a82aee003b4?pvs=43. ๊ณ ๊ธ ๋์์ธ ํจํด๊ณผ ํ ์คํธ ๊ธฐ๋ฒ๊ณ ๊ธ ๋์์ธ ํจํด์ ์ ์ฉ1. ๋ฆฌํฌ์งํ ๋ฆฌ ํจํด (Repository Pattern)csharp์ฝ๋ ๋ณต์ฌ// IWorkInstructionRepository.cspublic interface IWorkInstructionRepository{ Task> GetWorkInstructionsAsync(); Task GetWorkInstructionByTaskNameAsync(string taskName); Task AddWorkInstructionAsync(WorkInstruction workInstruction); ..
2024.07.06 -
C# mes ํ๋ก์ ํธ ๋ฐฑ์๋ ๊ตฌํ ์ ๋ฆฌ ๋ฐ ์ถ๊ฐ ๊ฐ์ด๋ ( -2- )
( ์ฒซ๋ฒ์งธ ํ๋ก์ ํธ์์ API ๊ตฌํ๋ฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๋๊น์ง ํด๋ดค์ผ๋ฉฐ ๋ค์ ํ๋ก์ ํธ์ ๊ฐ์ด๋๋ฅผ ์ข ๋ ๊ฒฌ๊ณ ํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ถ๊ฐ์ ์ผ๋ก ์ ๋ฆฌํด ๋จ์ต๋๋ค ) 10. ์๋น์ค ๋ฐ ์ปจํธ๋กค๋ฌ ๊ตฌํ: ์ค๋ฅ ํด๊ฒฐ์๋ก : ์ง๋ ํฌ์คํ ์์ **WorkInstructionService**์ **WorkInstructionController**๋ฅผ ํตํด ์์ ์ง์์์ CRUD ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์ด ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ์ฃผ์ ์ค๋ฅ์ ๊ทธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ค๋ฅ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ๊ณ , ์์คํ ์ ์์ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.์ฃผ์ ์ค๋ฅ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ1. CS1061 ์ค๋ฅ: ํด๋์ค์ ์ ์๋์ง ์์ ๋ฉ์๋ ํธ์ถ์ค๋ฅ ์ค๋ช :CS1061 ์ค๋ฅ๋ ํด๋์ค์ ํธ์ถ๋ ๋ฉ์๋๊ฐ ์ ์๋์ด ์์ง ์์ ๋ ๋ฐ..
2024.07.06