๐ฉ๐ป๐ป58 [SSH] SSH ์ธ์ ์ ๋ฐ๋ผ ํ๊ฒฝ ๋ณ์๊ฐ ๋ค๋ฅธ ์ด์ ๊ฐ์๊ฐ์ ์๋ฒ์์A PC → SSH ์ ์ → ์ฑ ์คํ ์ cuDNN ์๋ฌ + core dumpB PC → SSH ์ ์ → ๋์ผ ์ฑ ์คํ ์ ์ ์ ์๋ ํ์ธB PC์์๋ fastapi ์ฑ์ด ์ ์์ ์ผ๋ก ์คํ๋๋๋ฐ, A PC์์๋ ๋์ผ ์ฑ ์คํ ์ ์๋์ ๊ฐ์ ์๋ฌ๋ฉ์ธ์ง๊ฐ ์ถ๋ ฅ๋๋ค.Unable to load any of {libcudnn_cnn.so.9.1.0, libcudnn_cnn.so.9.1, libcudnn_cnn.so.9, libcudnn_cnn.so}Invalid handle. Cannot load symbol cudnnCreateConvolutionDescriptorAborted (core dumped) → cnDNN ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ง ๋ชปํจ→ ํ์ฌ ์ธ์ ์์ libcudnn_cnn.so.* ๋ผ์ด๋ธ๋ฌ.. 2025. 6. 27. [gradio] ์ ํ๋ฆฌ์ผ์ด์ ์ path parameter ๋ถ์ฌ์ ํน์ ๊ฒฝ๋ก๋ก ์๋นํ๊ธฐ ๊ฐ์gradio๋ก ์ฌ๋ฆฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋ ์์๋๋ฐ~์ ํ๋ฆฌ์ผ์ด์ ํ๋๋ ์ถ๊ฐํด์ 2๊ฐ ์ฌ๋ฆฌ๊ณ ,{domain}/a{domain}/b์ด๋ ๊ฒ path parameter๋ก ๊ตฌ๋ถํด์ ์ฌ๋ฆฌ๊ณ ์ถ์ด์ ๋์ ~ ํ์ธ๊ธฐ์กด์ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๋์ด์์๋๋ฉด,def greet(name): return f"Hello, {name}!"gr_app = gr.Interface(fn=greet, inputs="text", outputs="text")gr_app.launch(server_name="0.0.0.0", server_port=8003) ์ด๋ ๊ฒ ๋จ์ํ๊ฒ 8003 ํฌํธ๋ก ์ฌ๋ผ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด์๋ค. ์์ํ ๋, ์ฑ์งํผํฐํํ ๋ฌผ์ด๋ณด๋Gradio Blocks ๊ธฐ๋ฐ ์ฑ ์์ฑ ํ `path` ์ค์ ํ๊ณ FastAPI ์ฑ์ ๋ง์ดํธํ๋ ๋ฐฉ๋ฒ์ ์.. 2025. 6. 20. github์ผ๋ก docker image ๊ณต์ ํ๊ธฐ (Docker packages > Containers) ๊ฐ์Docker image๋ฅผ github์ ํตํด ๊ณ ๊ฐ์๊ฒ ๊ณต์ ํ๋ ค ํจDocker packages > Containers ์งํ1. Access Token ๋ฐ๊ธhttps://github.com/settings/tokens → "Generate new token (classic)" 2. token name, expiration, scopes ์ ๋ ฅ ๋ฐ ์ ํ 3. ์์ฑ๋ ํ ํฐ ์ ์ฅํ๊ธฐ (๋ฐ๋ก hide๋จ) 4. Docker loginecho | docker login ghcr.io -u --password-stdinLogin Succeeded→ ํ์ธ๋๋ฉด ๋ก๊ทธ์ธ ์๋ฃ๋ ๊ฒ 5. build imagedocker build -t ghcr.io//: . example:docker build -t ghcr.io/hyer.. 2025. 6. 6. [MySQL] match ... against ํ๊ธ์ ๊ฒ์ ์ค๋ฅ (innodb_ft_min_token_size, ngram_token_size) ๊ฐ์SELECT * FROM articles_cn WHERE MATCH(ner_text) AGAINST('็ซ' IN BOOLEAN MODE); ์ด ์ฟผ๋ฆฌ๋ก ๊ฒ์์ ํ๋, ์๋ฌด๊ฒ๋ ์ถ๋ ฅ๋ฐ์ง ๋ชปํ๋ค. ํน์๋ ํด์ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๊ฒ์ํ์ ๋SELECT * FROM articles_cn WHERE JSON_CONTAINS(ner, '"็ซ"'); ์ ๋์จ๋ค.. ๋ญ ๋๋ฌธ์ ์๋์ค๋ ๊ฑธ๊น? ํ์ธCREATE TABLE `articles_cn` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `ner` json, `ner_text` text, PRIMARY KEY (`id`.. 2025. 5. 30. [MySQL] Mac์ my.cnf ํ์ผ์ด ์๋ค (mysql ๋ค์ด๋ฐ์์ ์ง์ ์ค์นํ์ ๊ฒฝ์ฐ) ๊ฐ์ํ ๊ธ์ ๊ฒ์์ ์ํด ngram_token_size๋ฅผ default 2์์ 1๋ก ์์ ํ๋ ค๊ณ ํ๋๋ฐ, my.cnf ํ์ผ์ ์ฐพ์ ์ ์๋ค!homebrew๋ก ์ค์นํ ๊ฒ ์๋๊ณ ์ง์ ๋ค์ด๋ก๋ํด์ ์ค์นํด์ ๊ทธ๋ฐ๊ฐ .. ํ์ธ1๏ธโฃ config ํ์ผ ํ์ธmysql --help | grep -A 1 "Default options"Default options are read from the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf mysql์ ์ผ์ชฝ๋ถํฐ ์์๋๋ก my.cnf๋ฅผ ์ฐพ๋๋ค. 2๏ธโฃ ์ฒซ๋ฒ์งธ ๊ฒฝ๋ก( /etc/my.cnf )์ my.cnf๋ฅผ ์์ฑํด์ค๋ค. (์๋๋ฉด .. ์ง์ .. 2025. 5. 30. [MySQL] ๊ฒ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ ๋น๊ต ๊ฐ์- ner์ ํฌํจํ๋ ๊ธฐ์ฌ๋ค์ ์ถ๋ ฅํ ๋, ํจ์จ์ ์ผ๋ก ๊ฒ์ํ๊ธฐ ์ํ ์ฟผ๋ฆฌ ์ฑ๋ฅ ๋น๊ต 1) JSON_CONTAIN 2) MATCH … AGAINST 3) MATCH … AGAINST + REGEXP- 100,000๊ฐ์ article๋ก ์งํ ํ์ธEXPLAIN ANALYZE ๋ก ๋ถ์์ ์งํํ๋ค. 1. JSON_CONTAINEXPLAIN ANALYZE SELECT * FROM articles WHERE JSON_CONTAINS(ner, '"์ผ์ฑ"');-> Filter: json_contains(articles.ner,('"์ผ์ฑ"')) (cost=10185.55 rows=98728) (actual time=0.148..102.554 rows=27555 loops=1)-> Table .. 2025. 5. 28. [MySQL] FULLTEXT ์ธ๋ฑ์ค ๊ฒ์ ๊ธ์์ ์ ํ ๊ฐ์ article์ด ์๋ ํ ์ด๋ธ์์ ํน์ ner๋ฅผ ํฌํจํ ๊ธฐ์ฌ๋ค์ select ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑ ์ค์ ์์๋ค. โ ์ฌ๊ธฐ์ ๋ฌธ์ ๋ฐ์2๊ธ์๋ ๊ฒ์์ด ์๋๊ณ , 3๊ธ์๋ถํฐ ๊ฒ์ ๊ฐ๋ฅ 1๏ธโฃ ner ํค์๋ ์ค "์ผ์ฑ"์ ํฌํจํ ๊ธฐ์ฌ๋ฅผ ๊ฐ์ง๊ณ ์ค๋ querySELECT * FROM articles WHERE MATCH(ner_text) AGAINST('+์ผ์ฑ' IN BOOLEAN MODE);→ ์๋ฌด๊ฒ๋ ์ถ๋ ฅ ์๋จ 2๏ธโฃ ์ผ์ฑ์ ์๋ฅผ ํฌํจํ ๊ธฐ์ฌ๋ฅผ ๊ฐ์ง๊ณ ์ค๋ querySELECT * FROM articles WHERE MATCH(ner_text) AGAINST('+์ผ์ฑ์ ์' IN BOOLEAN MODE);→ ์ ์์ ์ผ๋ก ์ถ๋ ฅ ํ์ธMySQL FULLTEXT ์ธ๋ฑ์ค์์ 2๊ธ์ ์ด์์ด ๊ฒ์์ด ๋์ง ์๋๋ค.SHOW VA.. 2025. 5. 28. [MQTT] presence detection ์์ qos ์ retain ์ค์ ์ต๊ทผ ์งํํ ๊ฒ ์ค์ ์ ์ฉํ๊ฒ ์ ์ฌ์ฉํ paho-mqtt option์ด ์์ด์ ๊ธฐ๋กํ๋ค. ์๋์ ๊ฐ์ mqtt ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์๋คmqtt ํต์ ์ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด์ main client ์์ sub client ์ ์ฐ๊ฒฐ ์ํ(online/offline)๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ๊ณ ์ถ์๋ค. ๊ทธ๋์ qos, retain์ ์ค์ ํ๊ณ , will_set๋ ๋ฑ๋กํ๋ค์๋ ์์๋ฅผ ๋ณด๋ฉฐ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ํ์ธํด๋ณด์! โจ ์ฌ๊ธฐ์ ์๋ก ์๊ฒ๋ ์ฉ์ด : presence detection→ IoT, MQTT, ์ฑํ ์์คํ ์ ๋ง์ด ์ฐ์ด๋ ๊ฐ๋ ์ด๋ค.→ ํ์ฌ ๋๊ฐ ์ฐ๊ฒฐ๋์๋์ง(online), ๋๊ฐ ์ฐ๊ฒฐ์ด ๋์ด์ก๋์ง(offline)์ ๋ํ ์ํ๋ฅผ ์์คํ ์ด ์ค์๊ฐ์ผ๋ก ํ์ ํ๋ ๊ธฐ๋ฅ์ด๋ค.→ "ํด๋ผ์ด์ธํธ์ ์ ์ ์ํ ๊ฐ์ง" ๋ผ๊ณ ์๊ฐํ๋ฉด .. 2025. 5. 8. [MQTT] Keep Alive ์ต๊ทผ์ MQTT ํต์ ๊ฐ๋ฐ์ ์งํํ๋ฉด์ Keep Alive ์ค์ ์ ๊ด๋ จํ ๋ฌธ์ ๋ฅผ ๊ฒช์๋ค. Status Update ํ๋ mqtt ํด๋ผ์ด์ธํธ๋ฅผ ์๋์ ๊ฐ์ด ์์ฑํ๊ณ send_status ๋ผ๋ ํจ์๋ฅผ ํธ์ถํด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. import paho.mqtt.client as mqttimport uuidimport timeclass RobotStatusUpdater: def __init__(self, broker_ip, topic="robot/status"): self.client = mqtt.Client(f"Robot_Status_Updater_{uuid.uuid4()}") self.client.connect(broker_ip, 1883) self.topic = to.. 2025. 3. 12. ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์