본문 바로가기
  • 👩🏻‍💻 🌮 💬

분류 전체보기156

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.
[MQTT] pc 2개 통신 (python, 양방향 통신) 개요PC 2개가 있다.하나는 User가 업무를 요청하고, 나머지 하나는 Robot이 그 업무를 받아서 실시간 상태를 User가 알 수 있도록 업데이트를 해줄 것이다.전 프로젝트에서는 Robot이 하나 뿐이라서 socket으로 연결을 했다.이번에는 Robot이 추가로 더 늘어날 가능성을 염두해서 MQTT를 활용하려고 한다. 편히 PC, Robot이라고 칭하겠다.PC → Robot : 수행할 작업 (텍스트 형식) 전달Robot → PC : 작업 상태 (실시간 업데이트) 전달 구조PC는 작업지시를 발행하고, 로봇은 이를 구독로봇은 상태를 발행하고, PC는 이를 구독하여 실시간으로 상태를 확인Topic 설계PC → Robot: "robot/task"Robot → PC: "robot/status" 간단한 코드 구.. 2025. 2. 25.
[MQTT] Mac mosquitto 설치 / 실행 / 중지 1. mosquitto 설치brew install mosquitto 2. mosquitto 서비스 실행brew services start mosquitto 3. mosquitto 서비스 중지brew services stop mosquitto 메세지 확인은 MQTT Explorer 사용했다. 연결 잘됨 ~ 2025. 2. 25.