๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ

๐Ÿ” database13

[MySQL] localhost ๋น„๋ฐ€๋ฒˆํ˜ธ ๊นŒ๋จน์—ˆ๋‹ค local ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ๋กœ์ปฌ mysql์— ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•˜๋ ค๊ณ  python์œผ๋กœ ์—ฐ๊ฒฐ ์‹œ๋„ ํ–ˆ๋Š”๋ฐimport pymysql# MySQL ์—ฐ๊ฒฐconn = pymysql.connect( host="localhost", user="root", password="12341234", database="study", charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor)pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)") ์ด๋Ÿฐ Access denied ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ DBeaver๋ฅผ ํ†ตํ•œ ์—ฐ๊ฒฐ.. 2025. 2. 14.
ํฌ๋กค๋ง ๋ฐ์ดํ„ฐ ์ ์žฌ SQL vs NoSQL ๊ฐœ์š”์ „์— ์ง„ํ–‰๋˜์—ˆ๋˜ ํ”„๋กœ์ ํŠธ์—์„œ์˜ ํฌ๋กค๋ง์€ MongoDB์— ์ ์žฌํ–ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•  ๋•Œ SQL(MySQL), NoSQL(MongoDB) ๋‘๊ฐ€์ง€ ์ค‘์— ์–ด๋–ค ๊ณณ์ด ๋” ์ ํ•ฉํ•œ์ง€ ๊ณ ๋ฏผ์ด ๋˜์–ด์„œ ๋‘๊ฐ€์ง€๋ฅผ ๋น„๊ตํ•ด๋ณด์Ÿˆ ~ ! ๊ธฐ๋ณธ ๊ฐœ๋…DB ์ข…๋ฅ˜ํŠน์ง•์ ํ•ฉํ•œ ๊ฒฝ์šฐMySQL (Relational)ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜์˜ ๊ด€๊ณ„ํ˜• DB (SQL)์ •ํ˜• ๋ฐ์ดํ„ฐ, ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ์ค‘์š”MongoDB (NoSQL, Document-based)JSON-like ๋ฌธ์„œ ์ €์žฅ (NoSQL)๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ, ์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆํฌ๋กค๋ง ๋ฐ์ดํ„ฐํฌ๋กค๋ง ๋ฐ์ดํ„ฐ๋Š” ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋กœ ์ˆ˜์ง‘๋œ๋‹ค.{ "title": "Example Title", "url": "https://example.com", "content": "Some article content...", .. 2025. 2. 6.
[MongoDB] ๊ฐ„๋‹จํ•œ ๊ฐœ๋…์ •๋ฆฌ ๊ฐœ์š”์ด๋ฒˆ์— ํฌ๋กค๋งํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฝ๊ณ ๋””๋น„์— ์ ์žฌํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์ง„ํ–‰ํ–ˆ๋‹ค.์ฒ˜์Œ์œผ๋กœ ๋ชฝ๊ณ ๋””๋น„๋ฅผ ์ ‘ํ•ด๋ณด๋Š” ๊ฒธ ๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.๋ชฝ๊ณ ๋””๋น„ MongoDB์˜คํ”ˆ์†Œ์Šค์ด๋‹คNoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ JSON ์œ ์‚ฌํ•œ ๋ฌธ์„œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๋Š”๊ฒŒ ํŠน์ง•์ด๋‹ค.์ „ํ†ต์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)์™€๋Š” ๋‹ฌ๋ฆฌ, ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋‹ค. ํŠน์ง•(1) ๋ฌธ์„œ ๊ธฐ๋ฐ˜(Document-oriented) ์ €์žฅ- ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์˜ ํ–‰(row)์œผ๋กœ ์ €์žฅํ•˜๋Š” RDBMS์™€ ๋‹ฌ๋ฆฌ, MongoDB๋Š” BSON(Binary JOSN) ํฌ๋งท์˜ ๋ฌธ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.- ์˜ˆ:{ "name": "John", "age": 30, "skills": ["Python", "JavaScript"]} (2) ์Šคํ‚ค๋งˆ๋ฆฌ์Šค(Schema-less)- ๋ฐ์ด.. 2025. 1. 10.
[MQTT] python ์œผ๋กœ sub / pub ๊ตฌํ˜„ํ•˜๊ธฐ MQTT์™€ Kakfa ๋น„๊ต๊ฐœ์š”์ตœ๊ทผ์— ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ ์ค‘์— socket ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ , responce๋ฅผ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•˜๋‹ˆ๊นŒ socket ์—ฐ๊ฒฐ ๋ถˆ์•ˆ์ •, ์—ฐ๊ฒฐ ์ง€์—ฐ ๋“ฑ๋“ฑ ์ด์Šˆ๋“ค์ด ๋ฐœbonory.tistory.comkafka์™€ mqtt์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ ๋Š” mqtt๋ฅผ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ง„ํ–‰1. python์œผ๋กœ topic์— message๋ฅผ ์ „์†กํ•œ๋‹ค.2. MQTT Explorer๋กœ message๋ฅผ ์ž˜ ๋ฐ›๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.3. python์œผ๋กœ topic์„ subscribeํ•˜๊ณ  message๋ฅผ ํ™•์ธํ•œ๋‹ค. (0) pip ์„ค์น˜pip install paho-mqtt (1) python - message ์ „์†กimport paho.mqtt.client a.. 2024. 10. 28.
MQTT์™€ Kakfa ๋น„๊ต ๊ฐœ์š”์ตœ๊ทผ์— ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ ์ค‘์— socket ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ , responce๋ฅผ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•˜๋‹ˆ๊นŒ socket ์—ฐ๊ฒฐ ๋ถˆ์•ˆ์ •, ์—ฐ๊ฒฐ ์ง€์—ฐ ๋“ฑ๋“ฑ ์ด์Šˆ๋“ค์ด ๋ฐœ์ƒํ•ด์„œ๋‹ค์Œ์—๋Š” mqtt ํ˜น์€ kafka๋ฅผ ์‚ฌ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค ์‹ถ์–ด์„œ ์„œ์น˜ํ•ด๋ณด์•˜๋‹ค.๊ฐ„๋‹จํ•œ ๋น„๊ต· MQTT : ๊ฒฝ๋Ÿ‰ ๋ฉ”์‹œ์ง•, ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ฐ ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ์— ์ ํ•ฉํ•˜๋‹ค. IoT๋‚˜ ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์œ ๋ฆฌํ•˜๋‹ค.· Kafka : ๋†’์€ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ ๋ฐ ๋ฉ”์‹œ์ง€ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•˜๋‹ค. ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•  ๋•Œ ์œ ๋ฆฌํ•˜๋‹ค. ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์ •๋ฆฌโœ… MQTT· Message Queuing Telemetry Transport· ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ง„ ์žฅ์น˜๋‚˜ IoT(์‚ฌ๋ฌผ์ธํ„ฐ๋„ท) ์žฅ์น˜ ์‚ฌ์ด์— ํ†ต.. 2024. 10. 23.
mysql ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹ค์‹œ๊ฐ„ ํ™•์ธ ์ง„ํ–‰ mysql ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์–ด์„œ searchํ•˜๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค. mysql ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹ค์‹œ๊ฐ„ ํ™•์ธ๊ฐœ์š”์ด๋ฒˆ์— ์ƒˆ๋กœ ์ง„ํ–‰๋˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ search ํ–ˆ๋‹ค.์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์‹ถ์—ˆ๋Š”๋ฐbonory.tistory.com์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ๋กœ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.์šฐ์„  ๋‚˜๋Š” docker๋กœ zookeeper, kafka, kafka-connect, mysql์„ ์˜ฌ๋ฆด ๊ฒƒ์ด๋‹ค๊ทธ๋ž˜์„œ docker-compose.yml์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ๋‹คdocker-compose.ymlversion: '3'services: zookeeper: image: confluentinc/cp-zookeeper:latest .. 2024. 10. 20.
mysql ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹ค์‹œ๊ฐ„ ํ™•์ธ ๊ฐœ์š”์ด๋ฒˆ์— ์ƒˆ๋กœ ์ง„ํ–‰๋˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ search ํ–ˆ๋‹ค.์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ํ•˜๊ฒŒ๋˜์–ด์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค !์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ Back์€ Fastapi, Front๋Š” javascript๋กœ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํ•˜๋‹ค.1. Robot์—์„œ Database์— ๋ฐ์ดํ„ฐ updateํ•œ๋‹ค.2. Database์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ์‹œ Fastapi (Back)์ด ์•Œ์•„์•ผํ•œ๋‹ค.3. Fastapi (Back)์—์„œ javascript (Front) ๋กœ ๋ณ€ํ™”๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ํ™•์ธ1. Database → Back : polling / CDC2. Back → Front : web socket Polling์ผ์ • ์ฃผ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠน์ •.. 2024. 10. 2.
[MQTT] message๋ฅผ ์•ˆ๋ณด๋‚ด๋Š”๋ฐ ๊ณ„์† message๊ฐ€ ์Œ“์ด๋Š” issue ์‚ฌ์‹ค ์ด๊ฑด ๋ฌธ์ œ๊นŒ์ง€๋Š” ์•„๋‹ˆ๊ณ , ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ๊ณ  ์‹ถ์—ˆ๋‹ค. ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” mqtt explorer ์— ์—ฐ๊ฒฐ์„ ํ–ˆ๋‹ค. [MQTT] mqtt client์— connect ์•ˆ๋˜๋Š” ๋ฌธ์ œ ec2 instance๋ฅผ ์ƒ์„ฑํ•˜๊ณ  mosquitto๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  mqtt connection tool๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋‹ˆ, ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค Starting in local only mode. Connections will only possible from clients running on this machine. bonory.tistory.com ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  ๋ณด๋‹ˆ, ๋‚˜ ์—ฐ๊ฒฐ๋งŒ ํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ์•ˆํ–ˆ๋Š”๋ฐ ?! ์ž๊พธ ๋ช‡์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ message๊ฐ€ ์Œ“์ด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์ˆซ์ž๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚ฌ๋‹ค. ๋ญ์ง€ ??????? ํ•œ๋ฒˆ .. 2024. 3. 7.
[MQTT] mqtt client์— connect ์•ˆ๋˜๋Š” ๋ฌธ์ œ ec2 instance๋ฅผ ์ƒ์„ฑํ•˜๊ณ  mosquitto๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  mqtt connection tool๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋‹ˆ, ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค Starting in local only mode. Connections will only possible from clients running on this machine. ๋กœ์ปฌ ๋ชจ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ Create a configuration file which defines a listener to allow remote access. ์›๊ฒฉ ์—‘์„ธ์Šค๋ฅผ config๋ฅผ create ํ•˜๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค ์ฒซ๋ฒˆ์งธ, mosquitto config๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค. linux๋ผ๋ฉด /etc/mosquitto/mosquitto.conf ์— ์œ„์น˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •๋˜์–ด์žˆ๋Š”๋ฐ.. 2024. 3. 6.