์๋์ด๋ ธ(Arduino)๋ ๋๊ตฌ๋ ์ฝ๊ฒ ๋ํํ ์ ์ ์ ํ๊ณผ ์ฌ๋ฌผ์ธํฐ๋ท(IoT)์ ๋ง๋ค ์ ์๋๋ก ์ ์๋ ์คํ์์ค ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ์ํ๊ณ์ ๋๋ค. ์๋ฃ๋ ์๋์ด๋ ธ(arduino) ์ ๋ฌธ์์ฉ ๊ฐ์ ์๋ฌผ๋ ์ดํฐ ์ ๋๋ค.
๊ตฌ์ฑ
- ๋ณด๋: UNO R3(ATmega328P, 16 MHz)์ UNO R4 Minima(RA4M1, 48 MHz) ์ค ๊ณ ๋ฅผ ์ ์์ต๋๋ค. ํค๋ ํ, PWM ~ ํ์, LยทTXยทON LED, ๋ฆฌ์ ๋ฒํผ์ ๊ทธ๋ ธ๊ณ , ์ฌ์ฉ ์ค์ธ ํ์ ๊ธ์์ผ๋ก ํ์๋ฉ๋๋ค. ๊ณต์ ๋ก๊ณ ๋ ๋ฃ์ง ์์์ต๋๋ค.
- ๋ธ๋ ๋๋ณด๋ ๋ถํ: LED(220 ฮฉ), RGB LED, ํธ์ ๋ฒํผ(ํ๋ค์ด / GNDยทํ์ ๋ฐฐ์ ), ๊ฐ๋ณ์ ํญ, ์กฐ๋ ์ผ์, TMP36 ์จ๋ ์ผ์, SG90 ์๋ณด, ํผ์์กฐ ๋ถ์ , 16ร2 LCD๋ฅผ ๋์ ์ ์์ต๋๋ค. ๋ถํ์ ๋ํ๊ฑฐ๋ ๋นผ๊ณ ํ์ ๋ฐ๊ฟ ์ ์๊ณ , ๋ฒํผ์ ๋๋ฅด๊ณ ์๊ธฐ, ๊ฐ๋ณ์ ํญ์ ๋๋๊ทธ, ๋นยท์จ๋๋ ์ฌ๋ผ์ด๋๋ก ์กฐ์ํฉ๋๋ค.
- ์ ์ ์: ํ ์ํ์ ๋ฐ๋ผ ๋ฐ๋๋๋ค. ๋นจ๊ฐ์ HIGH, ์ฃผํฉ์ PWM, ๋ณด๋ผ๋ tone, ํ๋์ ์ ๋ ฅ์ ๋๋ค.
- ์ฝ๋ ํธ์ง๊ธฐ: ๊ตฌ๋ฌธ ๊ฐ์กฐ๊ฐ ๋๊ณ , ์ง๊ธ ์คํ ์ค์ธ ์ค์ ์ด๋ก์์ผ๋ก ํ์ํฉ๋๋ค. Ctrl+Enter๋ก ์ ๋ก๋ํ๊ณ , ์ผ์์ ์งยท๋ฆฌ์ , ์๊ฐ ๋ฐฐ์จ 0.25โ4ร๋ฅผ ์ง์ํฉ๋๋ค.
- ์๋ฆฌ์ผ: ๋ชจ๋ํฐ์์ ๋ณด๋๋ก ๊ธ์๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. ํ๋กํฐ๋
์ด๋ฆ:๊ฐํ์์ ์ถ๋ ฅ์ ์ฌ๋ฌ ์ ์ผ๋ก ๊ทธ๋ฆฝ๋๋ค. - ํ ํจ๋: D0โA5 ์ํ ํ์ ์ฌ์ฉ ์ค์ธ ํ์ ํํ์ ๋ณด์ฌ์ค๋๋ค.
์์ 12๊ฐ: Blink, ๋ฒํผ, ํ์ด๋(PWM), ๊ฐ๋ณ์ ํญ ์ฝ๊ธฐ, ์ ํธ๋ฑ(millis ์ํ ๊ธฐ๊ณ + ๋ณดํ์ ๋ฒํผ), ์๋ณด ์ค์, ๋ฉ๋ก๋(ใ์์ ๋ณใ, ์ค์ ์๋ฆฌ), ์ผ๊ฐ๋ฑ, LCD ์จ๋๊ณ, RGB ๋ฌด์ง๊ฐ, ์๋ฆฌ์ผ ๋ช ๋ น, ๋ ์๋ ์ ๋ ฅ(INPUT โ INPUT_PULLUP์ผ๋ก ๊ณ ์ณ ๋ณด๊ธฐ).
์ค์๋ฅผ ์๋ ค ์ฃผ๋ ๊ฒฝ๊ณ
- PWM์ด ์ ๋๋ ํ์ analogWrite๋ฅผ ์ด ๊ฒฝ์ฐ
- pinMode ์์ด HIGH๋ฅผ ์จ์ LED๊ฐ ํฌ๋ฏธํ๊ฒ ์ผ์ง๋ ๊ฒฝ์ฐ
- Serial.begin์ ๋น ๋จ๋ฆฐ ๊ฒฝ์ฐ
- D0ยทD1์ด ์๋ฆฌ์ผ๊ณผ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ
- tone์ ๋ ํ์์ ๋์์ ์ด ๊ฒฝ์ฐ
- LCD์ ํ๊ธ์ ์ถ๋ ฅํ ๊ฒฝ์ฐ
ํ๊ณ: ์ค์ผ์น๋ฅผ ์๋์ด๋ ธ C์ ์์ฃผ ์ฐ๋ ๋ถ๋ถ๋ง JavaScript๋ก ๋ฐ๊ฟ ์คํํฉ๋๋ค. ๊ทธ๋์ ์ ์ ๋๋์ , ํฌ์ธํฐ, ๊ตฌ์กฐ์ฒด, static ์ง์ญ ๋ณ์๋ ์ค์ ์ ๋ค๋ฅด๊ฒ ๋์ํ๊ฑฐ๋ ์ง์๋์ง ์์ต๋๋ค. ์ธ๋ฏธ์ฝ๋ก ์ ๋น ๋จ๋ ค๋ JavaScript ๊ท์น ๋๋ฌธ์ ์ค๋ฅ ์์ด ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๊ฒ์ฆ: ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ์์ 12๊ฐ ์์ ๋ฅผ ๋ชจ๋ ๋ณํยท์คํํด ์ค๋ฅ๊ฐ ์๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
- ๊ฐ๋ณ์ ํญ 512 โ 2.50 V, TMP36 24 ยฐC โ LCD 23.8 ยฐC(ADC ์์ํ ๋๋ฌธ)๊ฐ ์ ํํ ๋์ต๋๋ค.
- ๋ฒํผ ๋๋ฆ/๋์ ๋ฐ๋ผ LED๊ฐ ์ผ์ง๊ณ ๊บผ์ง๊ณ , ์๋ฆฌ์ผ ๋ช ๋ น โ1โ์ ๋ณด๋ด๋ฉด LED๊ฐ ์ผ์ง๋๋ค.
- ๋ ์๋ ์ ๋ ฅ์ 0๊ณผ 1์ ์ค๊ฐ๋ค๊ฐ INPUT_PULLUP์ผ๋ก ๊ณ ์น๋ฉด 1๋ก ์์ ๋ฉ๋๋ค.
while(true);๊ฐ์ ๋ฌดํ ๋ฃจํ์์๋ ํ์ด์ง๊ฐ ๋ฉ์ถ์ง ์์ต๋๋ค.
Sources:
MCP ์๋ฒ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๊ณ , ์ง์ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ๋ฉ์์ง ํ๋ฆ์ ์๋ฎฌ๋ ์ด์ ํด๋ณผ ์ ์๋ ํ๊ธ HTML ํ์ด์ง ์ ๋๋ค.
Spring Boot ํ์ดํ๋ผ์ธ ํ์ต ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค. ํ์ด์ง๋ ์ธ ๋ถ๋ถ์ผ๋ก ๋์ด ์์ต๋๋ค.
- ํ์ดํ๋ผ์ธ ์ง๋: ํธ๋ฆฌ๊ฑฐ โ ๋น๋ โ ํ
์คํธ โ ํจํค์ง โ Docker ์ด๋ฏธ์ง โ Dev ๋ฐฐํฌ โ Prod ๋ฐฐํฌ, ์ด๋ ๊ฒ 7๋จ๊ณ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋จ๊ณ๋ฅผ ๋๋ฅด๋ฉด ๊ทธ ๋จ๊ณ๊ฐ ํ๋ ์ผ, ์ฌ์ด ๋น์ , ์ค์
azure-pipelines.yml์ฝ๋๊ฐ ํจ๊ป ๋์ต๋๋ค. - ์๋ฎฌ๋ ์ดํฐ: ๋จผ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ณ ๋ฆ ๋๋ค(main push, PR, feature ๋ธ๋์น). ๋ค์์ผ๋ก ๋ฃ์ ์ค๋ฅ๋ฅผ ๊ณ ๋ฆ ๋๋ค(์ปดํ์ผ ์ค๋ฅ, ํ ์คํธ ์คํจ, ์ปค๋ฒ๋ฆฌ์ง ๋ถ์กฑ). ๋ง์ง๋ง์ผ๋ก ์ด์ ๋ฐฐํฌ ์ ์น์ธ ์ฌ๋ถ๋ฅผ ์ ํ๊ณ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋จ๊ณ๊ฐ ์ค์ ์ฒ๋ผ ์งํ๋๊ณ , ๋ก๊ทธ์ ํจ๊ป ์ง๊ธ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ์ฌ์ด ์ค๋ช ์ด ๋์ต๋๋ค. "ํ ๋จ๊ณ์ฉ" ๋ฒํผ์ผ๋ก ์ฒ์ฒํ ๋ฐ๋ผ๊ฐ ์ ์๊ณ , Prod ๋ฐฐํฌ ์ ์๋ ์น์ธ๊ณผ ๊ฑฐ์ ์ ์ง์ ๋๋ฌ ๋ณผ ์ ์์ต๋๋ค. ์ฐ์ต ๋ฏธ์ 4๊ฐ๋ ํด๋น ์ํฉ์ ๋ง๋ค๋ฉด ์๋์ผ๋ก ์ฒดํฌ๋ฉ๋๋ค.
- ์ฉ์ด ์ฌ์ : Stage, Job, Agent, Artifact, Environment ๊ฐ์ ๊ธฐ๋ณธ ์ฉ์ด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.
Git์ ํต์ฌ ๊ฐ๋ (์์ ๋๋ ํฐ๋ฆฌ โ ์คํ ์ด์ง โ ์ปค๋ฐ, ๋ธ๋์น, ๋ณํฉ, ์๊ฒฉ ์ ์ฅ์)์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๊ณ , ์ง์ ๋ช ๋ น์ด๋ฅผ ๋๋ฌ๋ณด๋ฉฐ ๋ฐ๋ผ ํ ์ ์๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ค์ด๊ฐ ํ๊ธ ํ์ด์ง์ ๋๋ค.
TCP vs UDP ๋ํํ ์๋ฎฌ๋ ์ดํฐ
- TCP 3-Way Handshake (SYN, SYN-ACK, ACK ๋ฐ Sequence/Ack ๋ฒํธ ๋ณํ) & 4-Way Teardown (FIN, ACK) ๋จ๊ณ๋ณ ํจํท ์๋ฎฌ๋ ์ด์
- TCP ์ ๋ขฐ์ฑ ๋ฉ์ปค๋์ฆ (ํ๋ฆ ์ ์ด, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ, ํผ์ก ์ ์ด) ์ค๋ช
- TCP vs UDP ํค๋ ๊ตฌ์กฐ ๋น๊ต (20๋ฐ์ดํธ vs 8๋ฐ์ดํธ) ๋ฐ ์ฐ๊ฒฐํ/๋น์ฐ๊ฒฐํ ํน์ง ๋ถ์
ARP (์ฃผ์ ๊ฒฐ์ ํ๋กํ ์ฝ) ํ๋ฆ ์๋ฎฌ๋ ์ดํฐ
- ๋ก์ปฌ ๋คํธ์ํฌ์์ IP๋ ์์ง๋ง MAC์ ๋ชจ๋ฅผ ๋ ์ผ์ด๋๋ ์ ์ฒด ๊ณผ์ ์๋ฎฌ๋ ์ด์
- ARP Cache ํ์ธ โ Broadcast Request(FF:FF:FF:FF:FF:FF) โ ์ค์์น ํ๋ฌ๋ฉ โ Unicast Reply โ ํธ์คํธ ARP ์บ์ ํ ์ด๋ธ ์ ๋ฐ์ดํธ ๊ณผ์ ์ ๋ํํ ๊ทธ๋ํฝ์ผ๋ก ๊ตฌํ
DNS (๋๋ฉ์ธ ๋ค์ ์์คํ ) ์ฌ๊ท/๋ฐ๋ณต ์กฐํ ์๋ฎฌ๋ ์ดํฐ
- ์น์ฌ์ดํธ ์ฃผ์ ์
๋ ฅ ์ ๋ธ๋ผ์ฐ์ /๋ก์ปฌ ์บ์ โ ๋ฆฌ์ปฌ์๋ธ DNS(Resolver) โ Root Server(
.) โ TLD Server(.com) โ Authoritative Server(example.com) ๋ก ์ด์ด์ง๋ ๋ฐ๋ณต ์กฐํ ํ๋ฆ ์๋ฎฌ๋ ์ด์ - ์ฃผ์ DNS ๋ ์ฝ๋ ์ข ๋ฅ (A, AAAA, CNAME, MX, NS, TXT) ์ ๋ฐ ์์ฝ
ํตํฉ ์๋ํฌ์๋(End-to-End) ํจํท ์๋ฎฌ๋ ์ดํฐ
- "์น ๋ธ๋ผ์ฐ์ ์
[https://www.google.com](https://www.google.com)์ ์ ๋ ฅํ๋ฉด ์ผ์ด๋๋ ์ผ" ์ ์ฒด ๊ณผ์ ์ [DNS ์กฐํ โ ARP ์์ฒญ โ TCP Handshake โ HTTP/HTTPS ์์ฒญ/์๋ต]์ ์ฌ์ธ์ ํจํท ํ๋ฆ ํ์๋ผ์ธ์ผ๋ก ์ฌ์/์ผ์์ ์ง/๋จ๊ณ๋ณ ํ์
ํ๋กํ ์ฝ ์ข ํฉ ํด์ฆ
- TCP/UDP, ARP, DNS์ ๊ด๋ จ๋ ๋ฌดํ ํด์ฆ ํ์ด ๋ฐ ์ฆ์ ์ฑ์ /ํด์ค ์ ๊ณต
๋ฌธ์๋ง ์ ๋ ฅํ๋ฉด
๋ก๊ณ ๊ฐ ๋ฉ๋๋ค.
๋ธ๋๋ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ์คํ์ผยท์์ฒดยท๊ฐ๊ฒฉยท์์์ ์กฐ์ ํด ํ ์คํธ ๋ก๊ณ ๋ฅผ ๋ง๋ค์ด ๋ณด์ธ์.
Typography Playground
Typography Playground is an interactive tool for exploring how typography affects readability, hierarchy, and visual style. Users can adjust text properties in real time and compare different typography approaches.
Key Features
- ๐ค Adjust font size and weight
- โ๏ธ Control line height and letter spacing
- โ๏ธ Change text width and alignment
- ๐ Switch between uppercase, lowercase, and italic styles
- ๐จ Preview Light, Editorial, and Dark styles
- ๐ฐ Compare Editorial, Tech, and Minimal typography
- โ๏ธ Explore Bad vs Good Typography examples
- ๐ Visualize a consistent type scale
- ๐ Compare text width and readability
- ๐๏ธ Edit sample text and see changes instantly
It is designed as a simple interactive typography learning experience for understanding how small typographic changes can significantly improve a UI.
์ธ๊ณ์์ ๊ฐ์ฅ ์ค๋ ์ด์๋จ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ๋. ์ง๊ธ ์ด ์๊ฐ์๋ ์ ์ธ๊ณ ์ํยท์ ๋ถยทํญ๊ณต์ฌ์ ํต์ฌ ์์คํ ์ COBOL๋ก ๋์๊ฐ๊ณ ์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ๊ฐ์๊ฐ ์๋๋๋ค. AI๊ฐ ๋ง๋ค์ด์ค HTML ํ์ผ์ ์ด์ด๋ณด๊ณ , ๋ฌธ๊ตฌยท์์ยท์ด๋ฏธ์งยท๋งํฌ๋ฅผ ๊ณ ์น๊ณ , ๋ฒํผ์ด ์ ์ ๋๋ฆฌ๋์ง ๋๋ต ์ฐพ์ ์ ์๊ฒ ๋ง๋๋ โ์ต์ํ์ ์ค์ ์ง์โ๋ง ์์ฃผ ์ฝ๊ฒ ์ค๋ช ํฉ๋๋ค.