๋ชฉ๋ก์ „์ฒด ๊ธ€ (1005)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - LCD

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ LCD (Liquid Crystal Display) : ์•ก์ • ํ‘œ์‹œ ์žฅ์น˜ : ์•ก์ •์€ ์•ก์ฒด์ฒ˜๋Ÿผ ์œ ์ฒด์˜ ์„ฑ์งˆ์„ ๊ฐ€์ง€๋ฉด์„œ ๊ณ ์ฒด์ฒ˜๋Ÿผ ๊ด‘ํ•™์  ์„ฑ์งˆ์„ ๊ฐ€์ง€๋Š” ๋ฌผ์งˆ : ์ „๊ธฐ์  ์‹ ํ˜ธ๋ฅผ ๊ฐ€ํ•ด ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์—ด ๊ฐ€๋Šฅ : ๊ฐ ํ”ฝ์…€์— ํˆฌ๊ณผํ•˜๋Š” ๋น›์˜ ์–‘์„ ์กฐ์ ˆํ•˜์—ฌ ์ •๋ณด ํ‘œํ˜„ : 1์ค„์— 16๋ฌธ์ž์”ฉ 2์ค„ ์ถœ๋ ฅ ๊ฐ€๋Šฅ : 5v ์ „์›์œผ๋กœ ๋ฐฑ๋ผ์ดํŠธ ๋™์ž‘ : ๊ฐ€๋ณ€ ์ €ํ•ญ์„ ํ†ตํ•ด ๋ฌธ์ž์˜ ๋ช…์•” ์กฐ์ ˆ : 16๊ฐœ ํ•€์„ ๊ฒฐ์„ ํ•˜์—ฌ ์ œ์–ด ๐Ÿ” Liquid Crystal I2C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ // lcd ์ด๋ฆ„์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ // ๋ชจ๋“ˆ์˜ ์ฃผ์†Œ๊ฐ’์€ 0x27, lcd ํฌ๊ธฐ๋Š” 16x2 LiquidCrystal_I2C lcd(0x27, 16, 2); // ๋ฉ”์‹œ์ง€๋ฅผ lcd์— ์ถœ๋ ฅ lcd.print("๋ฉ”์‹œ์ง€"); // ์ปค์„œ..

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - 7segment

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ 7segment (FND:Flexible Numeric Display) : "๋ถ„ํ• ํ•˜๋‹ค" ๋Š” 7๊ฐœ์˜ ๋ถ„ํ• ๋œ ์„ ์œผ๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ๋ถ€ํ’ˆ : 7๊ฐœ์˜ LED๊ฐ€ ๋ชจ์—ฌ์žˆ์Œ : ๊ฐ ํš ๋ณ„๋กœ ํ•˜๋‚˜์˜ ํ•€์ด ๋ฐฐ๋‹น๋˜์–ด ๊ฐ ํš์„ ๋„๊ฑฐ๋‚˜ ์ผค ์ˆ˜ ์žˆ์Œ ๊ณตํ†ต ์–‘๊ทน(Common-anode) ๋ฐฉ์‹ : ๋ชจ๋“  LED์˜ ์–‘๊ทน์ด ๊ฒฐํ•ฉ๋œ ์ƒํƒœ ๊ณตํ†ต ์Œ๊ทน(Common-cathode) ๋ฐฉ์‹ : ๋ชจ๋“  LED์˜ ์Œ๊ทน์ด ๊ฒฐํ•ฉ๋œ ์ƒํƒœ ๐Ÿฅ‘ 7์„ธ๊ทธ๋จผํŠธ ํ™œ์šฉํ•˜๊ธฐ : 7๊ฐœ์˜ ์„ (์„ธ๊ทธ๋จผํŠธ)์œผ๋กœ ์ˆซ์ž/์•ŒํŒŒ๋ฒณ ๋“ฑ์„ ํ‘œํ˜„ํ•ด ์ฃผ๋Š” ์†Œ์ž : 7๊ฐœ์˜ ์„ ์€ ๊ฐ๊ฐ LED๋กœ ๊ตฌ์„ฑ : ์–ด๋–ค ์„ ์— ์‹ ํ˜ธ๋ฅผ ์ฃผ๋Š”์ง€์— ๋”ฐ๋ผ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ ๐Ÿฅ‘ ์‹ ํ˜ธ๋“ฑ ๋งŒ๋“ค๊ธฐ : ์ดˆ๋ก์ƒ‰ ์‹ ํ˜ธ๊ฐ€ ๊นœ๋นก์ผ ๋•Œ 5์ดˆ ์นด์šดํŠธ ์ •๋ณด๋ฅผ 7 ์„ธ๊ทธ๋จผํŠธ์— ํ‘œํ˜„

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - ๋ชจํ„ฐ ๋“œ๋ผ์ด๋ฒ„

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ๋ชจํ„ฐ ๋“œ๋ผ์ด๋ฒ„ : ์‹ ํ˜ธ์™€ ์ „๋ ฅ์„ ์•Œ๋งž๊ฒŒ ๊ณต๊ธ‰ : ๋ชจํ„ฐ์˜ ์†๋„์™€ ํšŒ์ „ ๋ฐฉํ–ฅ ์ œ์–ด : 2.5~12V์˜ ๋ชจํ„ฐ DC 2๊ฐœ ์ œ์–ด ๊ฐ€๋Šฅ : ๋ชจํ„ฐ ๋‹น 200mA ์ „๋ฅ˜ ํ—ˆ์šฉ : ๋ชจํ„ฐ A๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  A-1A, A-1B์— ์ ์ ˆํ•œ ์‹ ํ˜ธ๋ฅผ ์ธ๊ฐ€ ๐Ÿฅ‘ ์˜จ๋„ ์กฐ์ ˆ ์žฅ์น˜ : ์‹๋ฌผ์ด ์ž๋ผ๋‚˜๊ธฐ ์œ„ํ•ด์„œ ์ ์ •ํ•œ ์˜จ๋„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์˜จ๋„๊ฐ€ ์ผ์ • ๊ฐ’ ์ด์ƒ์œผ๋กœ ๋†’์•„์งˆ ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ ์„ ํ’๊ธฐ๋ฅผ ๊ฐ€๋™ ๐Ÿฅ‘ DC ๋ชจํ„ฐ ์†๋„ ์กฐ์ ˆํ•˜๊ธฐ : ์•„๋‘์ด๋…ธ๋Š” DC ๋ชจํ„ฐ๋Š” ๊ตฌ๋™/์ •์ง€ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ PWM ์‹ ํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจํ„ฐ์˜ ์†๋„๋„ ์ œ์–ด : ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ์„ ํ’๊ธฐ์ฒ˜๋Ÿผ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์•ฝํ’, ์ค‘ํ’, ๊ฐ•ํ’ ์„ธ ๋‹จ๊ณ„๋กœ ์†๋„๋ฅผ ์ œ์–ด

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - DC ๋ชจํ„ฐ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ DC ๋ชจํ„ฐ : ๋ชจํ„ฐ๋Š” ์ „๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํšŒ์ „๋ ฅ์€ ์–ป์Œ : DC (Direct Current, ์ง๋ฅ˜ ์ „์›)์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ชจํ„ฐ : ์ „์›์ด ์—ฐ๊ฒฐ๋˜๋ฉด ํšŒ์ „ : ์ž…๋ ฅํ•˜๋Š” ์ „์›์˜ ๊ทน์„ฑ์— ๋”ฐ๋ผ ์ „๋ฅ˜์˜ ๋ฐฉํ–ฅ์ด ๋ฐ”๋€Œ๋ฉด ํšŒ์ „ ๋ฐฉํ–ฅ ๋ฐ”๋€œ : PWM์œผ๋กœ ์†๋„ ์ œ์–ด ๊ฐ€๋Šฅ ์™ธ๋ถ€์— ๊ณ ์ •๋œ ์ž์„์ด ๋ฐฐ์น˜๋˜๊ณ  ๋‚ด๋ถ€์˜ ํšŒ์ „์ฒด์— ์ฝ”์ผ๋กœ ๊ตฌ์„ฑ๋จ ํšŒ์ „์ฒด์— ์ „๋ฅ˜๊ฐ€ ํ๋ฅด๋ฉด ๋ฐฉํ–ฅ์ด ์ „ํ™˜๋จ์— ๋”ฐ๋ผ ์ž๊ธฐ์žฅ์ด ๋ฐœ์ƒ๋˜์–ด ํšŒ์ „๋ ฅ ์–ป์Œ ๐Ÿ” ํŠธ๋žœ์ง€์Šคํ„ฐ : ์ง„๋ฅ˜ ์ฆํญ๊ธฐ ์—ญํ•  : ํฐ ์ „๋ฅ˜ ์ œ์–ด ๊ฐ€๋Šฅ : Nํ˜• ๋ฐ˜๋„์ฒด์™€ Pํ˜• ๋ฐ˜๋„์ฒด์˜ ์ ‘ํ•ฉ ์ˆœ์„œ์— ๋”ฐ๋ผ PNP, NPN ํ˜•ํƒœ๋กœ ๋‚˜๋‰จ : ๊ทน์„ฑ์ด ๋ฐ˜๋Œ€, ํ•€์— ์ „์›์ด ์ธ๊ฐ€๋˜๋Š” ๋ฐฉ์‹์— ์ฐจ์ด๊ฐ€ ์žˆ์Œ Collector : ์ˆœ๋ฐฉํ–ฅ ์ „๋ฅ˜ ๊ณต๊ธ‰ (5V ์—ฐ๊ฒฐ) Base : Collector ์—์„œ E..

[E-Commerce App with REST API] (18) ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ์ƒํ’ˆ ๋„ฃ๊ธฐ (PUT) & ์ƒํ’ˆ ๋ณ„์  ๋งค๊ธฐ๊ธฐ (PUT)

=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ŸŒท ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ์ƒํ’ˆ ๋„ฃ๊ธฐ ๐ŸŒท ์ƒํ’ˆ ๋ณ„์  ๋งค๊ธฐ๊ธฐ ํŠน์ • field์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋• $set ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ $elemMatch ๋ฐฐ์—ด์•ˆ์— ducument ์—ฌ๋Ÿฌ ํ•„๋“œ๋ฅผ ์กฐ๊ฑด ๊ฑธ์–ด์„œ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ โœ… Map : ๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•˜์—ฌ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ ๋ฐฐ์—ด.map((์š”์†Œ, ์ธ๋ฑ์Šค, ๋ฐฐ์—ด) => { return ์š”์†Œ }); โœ… Reduce : ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๊ณ , ๋ชจ๋“  ๋ฐ˜๋ณต์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ค„์ด๋Š”(reduce) ํ•จ์ˆ˜ ๋ฐฐ์—ด.reduce((๋ˆ„์ ๊ฐ’, ํ˜„์žฟ๊ฐ’, ์ธ๋ฑ์Šค, ์š”์†Œ) => { return ๊ฒฐ๊ณผ }, ์ดˆ..

[์•„๋‘์ด๋…ธ] ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ - ์ธ์ฒด ๊ฐ์ง€ ์„ผ์„œ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ์ธ์ฒด ๊ฐ์ง€ ์„ผ์„œ : ์›€์ง์ž„์ด ๊ฐ์ง€ ๋˜๋ฉด HIGH, ๋ณ€ํ™”๊ฐ€ ์—†์„ ๊ฒฝ์šฐ LOW ์ถœ๋ ฅ : ์ ์™ธ์„ ์„ ํ†ตํ•ด ์‚ฌ๋žŒ์˜ ์›€์ง์ž„์„ ๊ฐ์ง€ํ•˜๋Š” ์„ผ์„œ ๐Ÿ” ์‹œ๊ฐ„์„ ์•Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜ millis() : ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ ์ดˆ ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜ : delay ์—†์ด ์ฃผ๊ธฐ์ ์ธ ์ž‘์—… ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ํ˜„์žฌ ์‹œ๊ฐ„ (ms) = millis(); ๐Ÿฅ‘ ์ ‘์ด‰ ์—†๋Š” ๋„์–ด๋ฒจ : ์ธ์ฒด ๊ฐ์ง€ ์„ผ์„œ๋กœ ์›€์ง์ž„์ด ์žˆ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ณ , ๊ฐ์ง€๋˜๋ฉด ํ”ผ์—์กฐ ๋ถ€์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฉœ๋กœ๋””๋ฅผ ์ถœ๋ ฅ ๐Ÿฅ‘ ์นจ์ž… ๋ฐฉ์ง€ ์‹œ์Šคํ…œ : ์ธ์ฒด ๊ฐ์ง€ ์„ผ์„œ๋กœ ์›€์ง์ž„์ด ๊ฐ์ง€๋˜๋ฉด, RGB LED๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒฝ๊ณ ๋“ฑ์„ ๋ฐํžˆ๊ณ  ํ”ผ์—์กฐ๋ถ€์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒฝ๊ณ ์Œ์„ ์ถœ๋ ฅ