๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กfull stack (91)

JiYoung Dev ๐Ÿ–ฅ

[์‹ค์ „-์ค€๋น„] WebRTC(Web Real-Time Communication) API

์ •์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‚ฌ์ดํŠธ๊ฐ€ ์ค‘๊ฐ„์ž ์—†์ด ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์— ์˜ค๋””์˜ค๋‚˜ ์˜์ƒ ๋ฏธ๋””์–ด๋ฅผ ์ŠคํŠธ๋ฆผํ•˜๊ณ , ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ  ์„œ๋ฒ„๋ฅผ ์ตœ๋Œ€ํ•œ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  P2P(Peer-to-Peer Network)๋กœ ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋‹จ๋ง๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ์˜ ์›น ํ‘œ์ค€\ Zoom, ๊ตฌ๊ธ€ Meet, ํŽ˜์ด์Šค๋ถ ๋ฉ”์‹ ์ € ๋“ฑ์—์„œ ์‚ฌ์šฉ ํŠน์ง• ์›น์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ P2P ๊ธฐ์ˆ ๋กœ ๊ฐ๊ฐ์˜ ๊ธฐ๊ธฐ๊ฐ€ ์„œ๋ฒ„์˜ ๋„์›€ ์—†์ด ์—ฐ๊ฒฐ๋˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ์„ ๋„์™€์ฃผ๋Š” ์„œ๋ฒ„(Signaling)๊ณผ P2P ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ๋Œ€๋น„ํ•œ ๋ฆด๋ ˆ์ด ์„œ๋ฒ„(TURN)๊ฐ€ ํ•„์š”ํ•จ UDP(User Datagram Protocol) ๊ธฐ๋ฐ˜์˜ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ์ˆ  WebRTC๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ผ๋ จ์˜ ํ‘œ์ค€๋“ค์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ์ œ 3์ž ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ์—†์ด ์ข…๋‹จ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ์™€ ..

[Linux] ํŽธ์ง‘๊ธฐ & ๊ถŒํ•œ์„ค์ • (2023.08.08)

======================= -- Linux 4์žฅ ํŽธ์ง‘๊ธฐ ========================= vi ํŒŒ์ผ๋ช… ํŽธ์ง‘์ƒํƒœ ์ด๋™ a, i, o, O a: ์ปค์ €์˜ ๋’ค์ชฝ์— ์‚ฝ์ž… i: ์ปค์ €์˜ ์•ž์ชฝ์— ์‚ฝ์ž… o: ์ปค์ €์˜ ์•„๋ž˜์ชฝ์— ์‚ฝ์ž… O: ์ปค์ €์˜ ์œ„์ชฝ์— ์‚ฝ์ž… :wq - ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒํ•˜๊ธฐ :q! - ํŽธ์ง‘๋ฌธ์„œ ๋ฒ„๋ฆฌ๊ณ  ์ข…๋ฃŒํ•˜๊ธฐ ๋ช…๋ น๋ชจ๋“œ [n]r : ํ•œ ๋ฌธ์ž(char) ์ˆ˜์ • [n]dd : [n]์ค„ ์‚ญ์ œ [n]x : [n]๋ฌธ์ž๋ฅผ ์‚ญ์ œ [n]yy : [n]์ค„์„ ๋ณต์‚ฌ p : ๋ณต์‚ฌํ•œ ์ค„์„ ๋ถ™์—ฌ๋„ฃ๊ธฐ cw : ๋‹จ์–ด๋ฅผ ์ˆ˜์ • gg : ๋ฌธ์„œ์˜ ์ฒ˜์Œ์œผ๋กœ ๊ฐ€๊ธฐ G : ๋ฌธ์„œ์˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ€๊ธฐ G ๋ผ์ธ๋ชจ๋“œ /๋ฌธ์ž์—ด -> ๋ฌธ์ž์—ด์— ์ปค์ €์ด๋™ :u -> ์ง์ „์ž‘์—… ์ทจ์†Œ :e! -> ํ˜„์žฌ ํŽธ์ง‘๋ฌธ์„œ ๋ฒ„๋ฆฌ๊ณ , ์ตœ์ดˆ ๋ฌธ์„œ๋กœ ๋‹ค์‹œ์ฝ์–ด์˜ค๊ธฐ.. ..

full stack/Linux 2023. 8. 8. 12:36
[Linux] ๊ธฐ๋ณธ ๋ช…๋ น์–ด (2023.08.07)

์‰˜ : ๋Œ€ํ™”ํ˜• ์ธํ„ฐํŽ˜์ด์Šค โ†’ ๋ช…๋ น์–ด ์‚ฌ์šฉ์ž์™€ ์šด์˜์ฒด์ œ ์ปค๋„ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ์‹ธ๋Š” ์ธต ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ•  ์‚ฌ์šฉ์ž์™€ ์ปค๋„์˜ ์˜์‚ฌ์†Œํ†ต์„ ๋‹ด๋‹น ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์ ‘์†ํ•˜์—ฌ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ฒ˜์Œ ๋งŒ๋“ค๋•Œ ์ง€์ • ์ ˆ๋Œ€๊ฒฝ๋กœ ๋ฃจํŠธ๋กœ ๋ถ€ํ„ฐ ์‹œ์ž‘ Ping Test ๋„คํŠธ์›Œํฌ ์ƒ์— ์žˆ๋Š” ๊ฐ๊ฐ์˜ ํ˜ธ์ŠคํŠธ๊ฐ„ ํ†ต์‹ ์ด ์‚ด์•„์žˆ๋Š”์ง€, ์†๋„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… -- ping test C:\Users\smhrd> ping raspberrypi.local C:\Users\smhrd> ping 221.156.60.77 221.156.60.77์˜ ์‘๋‹ต: ๋ฐ”์ดํŠธ=32 ์‹œ๊ฐ„=2ms TTL=63 221.156.6..

full stack/Linux 2023. 8. 7. 13:45
[Android] ์Šค๋ ˆ๋“œ(Thread) & ํ•ธ๋“ค๋Ÿฌ(Handler) (2023.07.27)

Thread ํ์— ์Šค๋ ˆ๋“œ ์ €์žฅ ์ปดํ“จํ„ฐ ์ž‘์—…์€ CPU๊ฐ€ ํ•จ. CPU๋Š” ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ผ์ฒ˜๋ฆฌ๋ฅผ ํ•จ ์ž‘์—… ์Šค์ผ€์ฅด๋ง์„ ํ†ตํ•ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ โ†’ ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ ์Šค๋ ˆ๋“œ ๋ผ์ดํ”„์‚ฌ์ดํด (์Šค๋ ˆ๋“œ ์ƒ๋ช…์ฃผ๊ธฐ) ์ฒซ๋ฒˆ์งธ ์Šค๋ ˆ๋“œ๋Š” ๋‘๋ฒˆ์งธ ์Šค๋ ˆ๋“œ์—๊ฒŒ ์–‘๋ณด : yeild ๋‘๋ฒˆ์งธ ์Šค๋ ˆ๋“œ๋Š” ์ฒซ๋ฒˆ์งธ ์Šค๋ ˆ๋“œ์˜ cpu๋Š” ๊ฐ€๋กœ์ฑ” : interupt start(), run(), yeild(), interupt(), sleep() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌํ˜„์ด ๋˜์–ด ์žˆ์Œ ์Šค๋ ˆ๋“œ1 ์‹œ์ž‘ ํ›„ ๋‹ค์‹œ ์‹คํ–‰๋  ๋•Œ๋Š” run() ์ƒํƒœ๋กœ ์‹คํ–‰๋จ(๋‹ค์‹œ start() X) Handler ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Handler๊ฐ€ ํ•„์š”ํ•จ ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด Task๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ทธ ์•ˆ์— activity๋“ค์ด ์Œ“์ด๋Š” ๊ตฌ์กฐ ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์–ดํ”Œ์„ ์—ฌ๋Ÿฌ..