๐Ÿ’ป 155

[์›น] ์›น, ์›น์˜ ์—ญ์‚ฌ

0. ์›น? ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„์— ์•„์ด์ฝ˜์„ ๋ˆŒ๋Ÿฌ ํ•ด๋‹นํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด, ๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„๋Š” ์ž์‹ ์ด ๊ฐ€์ง„ ์›นํŽ˜์ด์ง€ ์ •๋ณด, ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†กํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์›น ๋ฌธ์„œ(ํŽ˜์ด์ง€ ์ •๋ณด)๋ฅผ ์š”์ฒญํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ 'ํด๋ผ์ด์–ธํŠธ'๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์š”์ฒญ ๋ฐ›์•˜์„ ๋•Œ ์ž์‹ ์ด ๊ฐ€์ง„ ์›น ๋ฌธ์„œ, ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ์„ ์ „์†กํ•˜๋Š” ๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„๋ฅผ '์„œ๋ฒ„'๋ผ๊ณ  ํ•œ๋‹ค. ์ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์ธํ„ฐ๋„ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งˆ์น˜ ๊ฑฐ๋ฏธ์ค„์ฒ˜๋Ÿผ ์–ฝํ˜€ ์„œ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฑฐ๋ฏธ์ค„(Web) ๊ฐ™์€ ์ •๋ณด์†Œํ†ต๋ง์„ 'World Wide Web'. ์ค„์—ฌ์„œ '์›น'์ด๋ผ๊ณ  ํ•œ๋‹ค. ์›น์€ 1989๋…„ Tim Berners-Lee์˜ ์ œ์•ˆ ์ดํ›„, 1990๋…„ WorldWideWeb ์ด๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ๋กœ ๋™์ž‘ํ•˜๋Š” HTTP ๋ชจ๋ธ ์ฐฝ์‹œ, HTML ์–ธ..

๐Ÿ’ป/์›น 2020.10.17

[์›น] ํ”„๋ก ํŠธ ์—”๋“œ

ํ”„๋ก ํŠธ ์—”๋“œ ํ”„๋ก ํŠธ์—”๋“œ VS ๋ฐฑ์—”๋“œ, ๊ฐœ๋…๊ณผ ์ฐจ์ด์  ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋Š”? ์—ฌ๋Ÿฌ๋ถ„์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ œ๋Œ€๋กœ ๋œ ๊ธฐ์ˆ ๋“ค์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ์‹ ๊ฐ€์š”? ๋งŒ์•ฝ ์–ด๋ ต๋‹ค๋ฉด, ์ด๋ฒˆ ์‹œ๊ฐ„ ์œ„์‹œ์ผ“์ด ๋‘ ๊ฐ€์ง€ ๊ฐœ๋ฐœ ์œ ํ˜• ๋ชจ๋‘์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๋ ค๋“œ๋ฆด ๏ฟฝ blog.wishket.com RoadMap for Web Developers

๐Ÿ’ป/์›น 2020.10.16

[๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด] ์กฐ๋ฆฝ(3B, TouchScreen)

์ค€๋น„๋ฌผ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํ‚คํŠธ(3B, TouchScreen) ์‹ญ์ž ๋“œ๋ผ์ด๋ฒ„ OS๋ฅผ ์„ค์น˜ํ•  sd์นด๋“œ, USB๋ฆฌ๋” sd์นด๋“œ์— OS๋งŒ ์„ค์น˜ํ•˜๋ฉด, ๋‚˜๋จธ์ง€๋Š” ์ฑ…์ƒ์— ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. OS ํŒŒ์ผ์€ https://www.raspberrypi.org/downloads/raspberry-pi-os/ ์—์„œ ๋‹ค์šด๋ฐ›์•„ ์••์ถ•์„ ํ’€์–ด๋†“์ž. ์ด์ œ OSํŒŒ์ผ์„ sd์นด๋“œ์— ์”Œ์›Œ์ค„ Etcher๋ฅผ ๋‹ค์šด๋ฐ›์ž. https://www.balena.io/etcher/ ์ด์ œ sd์นด๋“œ๋ฅผ USB๋ฆฌ๋”๊ธฐ์— ๋ผ์›Œ ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ Etcher๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. 1. Select image์—์„œ ์•„๊นŒ ๋‹ค์šด ๋ฐ›์€ OSํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ , 2. Select drive์—์„œ sd์นด๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ , 3. Flash!๋ฅผ ๋ˆŒ๋Ÿฌ ์”Œ์šด๋‹ค. ์œ„ ๊ณผ์ •์ด ๋ชจ๋‘ ๋๋‚ฌ๋‹ค๋ฉด ์กฐ๋ฆฝ ..

๐Ÿ’ป/CS 2020.10.15

[์˜์ƒ์ฒ˜๋ฆฌ] ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”, ํžˆ์Šคํ† ๊ทธ๋žจ

์ด์ „ ๋ณ€ํ™˜์—์„œ๋Š” ์ขŒํ‘œ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๋ณ€ํ™˜์„ ํ–ˆ๋‹ค๋ฉด, ์ด์   ๊ฐ ์ขŒํ‘œํ”ฝ์…€์— ์ €์žฅ๋œ '๊ฐ’'์„ ๊ฐ€์ง€๊ณ  ๋ณ€ํ™˜์„ ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… ๋‚ด์šฉ์„ ๋ณต์Šตํ•ด๋ณด์ž. ์ด๋ฏธ์ง€๋Š” ๋ฐ”๋‘‘ํŒ์ฒ˜๋Ÿผ ๊ฒฉ์ž๋ฅผ ๋‚˜๋ˆ  ๋ฐฐ์—ด์— ์ €์žฅ๋˜๊ณ , (8๋น„ํŠธ ๊ธฐ์ค€)๊ฐ ๋ฐฐ์—ด ์›์†Œ(ํ”ฝ์…€)๋Š” 0-255์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. 0์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ๊ฒ€์ •, 255์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ํ•˜์–‘์— ๊ฐ€๊น๋‹ค. ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™” (Bit Pane Slicing) Bit-plane Slicing You probably know that everything on a computer is stored as strings of bits. In Bit-plane slicing, we take the advantage of this fact to perform various image operations. ..

[์˜์ƒ์ฒ˜๋ฆฌ] ๊ธฐํ•˜ ๋ณ€ํ™˜, ์—ญ๋ฐฉํ–ฅ ๋งคํ•‘

์–ดํŒŒ์ธ ๊ธฐํ•˜ ๋ณ€ํ™˜ (Affine Transformation) ์ €๋Š” Affine์„ '์–ดํŒŒ์ธ'์œผ๋กœ ์ฝ๋„๋ก ๋ฐฐ์› ์ง€๋งŒ ์œ„ํ‚คํ”ผ๋””์•„์—์„œ๋Š” '์–ดํ•€'์ด๋ผ๊ณ  ํ•˜๋‚˜ ๋ด…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ 0-9์˜ ์ˆซ์ž๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ์—ฐ์‚ฐ์„ ์ •์˜ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋“ฏ, ์–ดํŒŒ์ธ๋„ ์–ด๋– ํ•œ ์ฒด๊ณ„(๊ณต๊ฐ„)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์–ดํŒŒ์ธ์€ ์ ๊ณผ ๋ฒกํ„ฐ๋ฅผ ์›์†Œ๋กœ, ๊ทธ๊ฒƒ๋“ค์˜ ์—ฐ์‚ฐ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ํฌ์ŠคํŒ…์•ˆ์—์„œ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ์ž๋ฃŒ๊ฐ€ ๋งŽ์•„, ์ถ”ํ›„์— ํฌ์ŠคํŒ…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์€ ์œ ํŠœ๋ธŒ๋‚˜ ๊ตฌ๊ธ€์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์•„ํ•€ ๋ณ€ํ™˜ (Affine Transformation) ์•„ํ•€ ๋ณ€ํ™˜์ด ์ , ์ง์„  ๋ฐ ํ‰๋ฉด์„ ์–ด๋–ป๊ฒŒ ๋ณด์กดํ•˜๋Š”์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์•„ํ•€ ๋ณ€ํ™˜๊ณผ ๊ธฐํƒ€ ์ฃผ์ œ์— ๊ด€ํ•œ ์ฝ”๋“œ ์˜ˆ์ œ, ๋น„๋””์˜ค, ๋ฌธ์„œ๊ฐ€ ์ž๋ฃŒ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. kr.mathworks.com ์—ญ๋ฐฉํ–ฅ ๋งคํ•‘ (Backwar..

[์˜์ƒ์ฒ˜๋ฆฌ] ๋””์ง€ํ„ธ ์ด๋ฏธ์ง€

์šฐ๋ฆฌ๋Š” ๊ธฐ์–ต์— ๋‚จ๊ธฐ๊ณ  ์‹ถ์€ ์ˆœ๊ฐ„์„ ์‚ฌ์ง„์œผ๋กœ ๋‚จ๊ธฐ๊ธฐ๋„ ํ•˜๊ณ , ๋™์˜์ƒ์„ ์ฐ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. 0๊ณผ 1๋ฐ–์— ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ปดํ“จํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์ง„๊ณผ ๋™์˜์ƒ์„ ์ €์žฅํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š”๊ฑธ๊นŒ์š”? ์•„๋‚ ๋กœ๊ทธ? ๋””์ง€ํ„ธ? ๋จผ์ € ์•„๋‚ ๋กœ๊ทธ์™€ ๋””์ง€ํ„ธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ˆˆ ์•ž์—์„œ ๊น€ํ•„(์ข‹์•„ํ•˜๋Š” ๊ฐ€์ˆ˜์ž…๋‹ˆ๋‹ค)์˜ ๋…ธ๋ž˜๋ฅผ ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. ๊น€ํ•„์ด ๋…ธ๋ž˜๋ฅผ ๋ถ€๋ฅธ๋‹ค๋ฉด ๊ณต๊ธฐ๋ฅผ ๊ณก์„ ์˜ ๊ทธ๋ž˜ํ”„๋กœ ์ง„๋™์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ง„๋™์€ ์šฐ๋ฆฌ ๊ท€๋ฅผ ํ†ตํ•ด ๊ทธ๋Œ€๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋˜์ฃ . ๋‹น์—ฐํžˆ '๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๊น€ํ•„์ด ๋ˆˆ ์•ž์—์„œ ๋…ธ๋ž˜๋ฅผ ๋ถ€๋ฅธ๋‹ค๋‹ˆ' ํ•˜๋Š” ๊ฐ๋™๋„ ์žˆ์ง€๋งŒ, ๊ทธ ๋…ธ๋ž˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์Šค๋งˆํŠธํฐ์˜ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค๋กœ ์Œ์•…์„ ๋“ค์„ ๋•Œ์™€๋Š” ๋Š๋‚Œ์ด ๋˜ ๋‹ค๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…ธ๋ž˜๋ฅผ ๋””์ง€ํ„ธ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„์ฃผ ์งง์€ ์ฃผ๊ธฐ๋กœ ๋งค์ดˆ๋งˆ๋‹ค์˜ ์†Œ๋ฆฌ์˜ ๋†’๋‚ฎ์ด๋ฅผ ..

[ํŒŒ์ด์ฌ] ์ด๋ฏธ์ง€ → ๊ทธ๋ฆฌ๋“œ(๋ฐฐ์—ด)

์ฝ”๋“œํ† ๋ง‰ import numpy as np import cv2 # ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. map_img = cv2.imread('map.png', 0) # ์ด๋ฏธ์ง€๋ฅผ ์›ํ•˜๋Š” ๊ทธ๋ฆฌ๋“œ ์‚ฌ์ด์ฆˆ๋กœ ์ค„์ธ๋‹ค(40 × 40) map_img = cv2.resize(map_img, dsize=(40, 40)) # numpy ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , width, height = map_img.shape map = np.zeros((width, height), np.uint8) # ๊ฒ€์ •์ƒ‰ ํ”ฝ์…€์€ 0, ๋‚˜๋จธ์ง€ ํ”ฝ์…€์€ 1๋กœ ์ฑ„์› ๋‹ค. for x in range(height): for y in range(width): if map_img[x][y] > 0: map[x][y] = 1 else: map[x][y] = 0 # hhlab.tistory..

[ํŒŒ์ด์ฌ] f-string, ๋ฌธ์ž์—ด ๊ธธ์ด ๊ณ ์ •

์ฐธ๊ณ  python 3์—์„œ๋Š” f-string์ด ๊ฐ‘์ด๋‹ค. f-string ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ  Python ์—์„œ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์€ ์•„๋งˆ๋„ ๊ธฐ์กด python 2์—์„œ ์ง€์›ํ•˜๋˜ %-formatting ๋ฐฉ์‹๊ณผ Format string syntax ์ธ str.fo.. bluese05.tistory.com ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค ๋ณ€์ˆ˜์˜ type์— ๋Œ€ํ•œ ์ž์œ ๋„๊ฐ€ ๋” ๋†’๋‹ค. ๊ถ๊ธˆํ–ˆ๋˜ ์ฝ”๋“œ username_header = f"{len(username):

[๋„คํŠธ์›Œํฌ] ํŒŒ์ด์ฌ ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ

IP ์ฃผ์†Œ https://terms.naver.com/entry.nhn?docId=3571314&cid=59088&categoryId=59096 IP ์ฃผ์†Œ [ IP ์ฃผ์†Œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ] ํ˜„์žฌ(2015๋…„ ๊ธฐ์ค€) ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ(ํ˜น์€ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ๋“ฑ)์— ํ• ๋‹น๋œ IP ์ฃผ์†Œ๋Š” ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ IPv4(IPversion4) ํ˜•ํƒœ๋‹ค. ์ด IPv4์˜ ์ฃผ์†Œ ์ฒด๊ณ„๋Š” 3์ž๋ฆฌ ์ˆซ์ž๊ฐ€ 4๋งˆ๋””๋กœ ํ‘œ๊ธฐ๋œ๋‹ค terms.naver.com IP์ฃผ์†Œ๋Š” ๊ฐ ๊ธฐ๊ธฐ์˜ ๊ณ ์œ ํ•œ ์ „ํ™”๋ฒˆํ˜ธ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•˜๋Š” ์ „ ์„ธ๊ณ„ ๋ชจ๋“  ๊ธฐ๊ธฐ๋Š” ๊ฐ๊ฐ์˜ IP์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š”๋‹ค. ์˜ˆ์ „์—๋Š” ๋Œ€๋ถ€๋ถ„ 4๊ฐœ์˜ ์ˆ˜๋กœ IP์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” IPv4๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 1๊ฐœ์˜ ์ˆ˜๋Š” ๊ฐ๊ฐ 0~255์˜ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ฒŒ ๋˜๊ณ , ๋”ฐ๋ผ์„œ IPv4๋Š” 2564 = 4,294,967,2..

๐Ÿ’ป/CS 2020.09.18