chatGPT, deepseek 가 대 유행어가 된 최근까지도 난 AI가 과거에도 그랬던 한 시절 유행하고 사라졌던 또 하나의 IT 트렌드 정도로 생각했었다.
근데 chatGPT와 deepseek 가 2025년 대학 수능시험의 수학 문제를 1~2문제 빼고 다 풀어 버리는 것을 보고 현대 AI 수준이 내가 상상하던 수준이 아님을 뒤늦게 깨달았다.
직장 동료가 모니터 한 구석에 chatGPT 창을 띄워 놓고 모르는 것 물어 보면서 일한다고 했을 때 속으로 그게 도움이 되면 얼마 되겠어 + 자존심 상하지 않나?
라는 생각을 했었다.
몇 주 전부터 나도 chatGPT를 띄워 놓고 일하는 데 큰 도움을 받고 있다. 뒤늦게 시대의 조류에 발 빠르게 합류하지 못한 것에 대해 살짝 후회감이 들 정도로 말이다. ㅎㅎ
특히 여러 서비스의 에러로그를 붙여 넣기 하고 "원인과 해결방안을 출처와 함께 상세히 설명해줘" 라고 하면 70% 이상은 만족스런 답을 해준다.
그동안 업무 난제를 해결하기 위해서 고독한 씨름을 해오다가 언제든 친절하게 도와주는 과묵한 사수를 한 명 얻은 기분이다.~
분류 전체보기
- 때늦은 유행에 동참하기(feat . AI) 2025.03.22
- 고향 가는 길 2025.03.20 1
- mysql 모니터링을 위한 shell script 2024.08.21
- 다양체학습 2022.01.18
- 최적화 2019.07.18
- 데이터모델링 과정 2019.03.14
- 전일종가대비 % (변동율) 구하는 수식 2019.03.04
- switch 문을 대체하는 function pointer 2019.01.01
- svn: E200030: There are unfinished transactions 오류시 2018.10.06
- rabbitMQ sample 소스 2018.09.30
때늦은 유행에 동참하기(feat . AI)
고향 가는 길
미니멈 간격 2주마다 고향에 간다. 어떤 때는 한 주 연속으로 주말에...
경부고속도로 , 1번 국도, 1시간 50분의 운전..
80 넘어 인생 끝자락에서 위태롭게 서 있는 어머니, 아버지
나는 부모상을 치르는 친구, 지인들의 그 덤덤함이 아직 낯설고 적응이 안된다.
일요일 점심 먹고 서울로 올라 가는 아들의 뒤에서 손 흔들며 배웅하는 어머니, 아버지
이제 몇 번 이나 더 볼 수 있을까 하고 되뇌인다.
여섯살 무렵, 장례식장이 없던 시절 돌아가신 동네 어르신의 꽃상여 행렬을 보고
문득 우리 부모님이 돌아가시면 어떨까 상상만으로도 숨이 턱 막혔던 기억이 난다.
그 기억이 어제 같은 데 빨리 감기한 영화처럼 내 인생은 흘러 가버렸고 피할 수 없는 숙명도 성큼 다가와 있네.
'생각 한 조각' 카테고리의 다른 글
때늦은 유행에 동참하기(feat . AI) (0) | 2025.03.22 |
---|
mysql 모니터링을 위한 shell script
용도
DBA 업무를 하다보면 db 상태라든지 점검을 위한 sql 문들을 많이들 갖고 있을 텐데 필요한 순간마다 매번 찾아서 쿼리 실행기(mysql cli 나 기타 gui tool등) 를 통해서 copy 후 실행하는 방식은 좀 불편하였다.
이를 간편하게 하기 위해서 평소 활용도가 높거나 유용한 쿼리들을 번호만 입력하면 쉽게 실행할 수 있고 Enter 키만 치면 반복해서 실행하도록 하는 shell script 를 작성하였다.
본인들이 소장하고 있는 쿼리문을 shell script 에 계속 추가해 나갈 수 있다.
실행방법
$ sh mymon.sh
실행 화면

서브메뉴 실행화면

소스 다운로드
https://github.com/bsshin71/mymon
GitHub - bsshin71/mymon: shell script for monitoring MySQL
shell script for monitoring MySQL. Contribute to bsshin71/mymon development by creating an account on GitHub.
github.com
지원 기능 상세
기능대분류 | 메뉴명 | 호출 sql파일 | 기능 | 비고 |
1.GENERAL | 11 - Instance/Database Info | 1_instance.sql |
|
|
12 - Parameter Info (innodb buffer) | 1_parameters.sql |
|
||
13 - Memory Usage by each module | 1_memoryusage.sql |
|
||
2.Cache & Latch | 21 - Buffer Hit Ratio | 2_bufferhitratio.sql |
|
|
3.SESSION | 31 - Current Session Info | 3_current_session.sql |
|
|
32 - Current Running Session Info | 3_run_session.sql |
|
||
33 - Current Wait Session Info | 3_wait_session.sql |
|
||
34 - Running Session SQL Info | 3_run_session_sql.sql |
|
||
4.LOCK | 41 - Current Transaction | 4_current_transaction.sql |
|
|
42 - Current Lock status of Grant and Wait | 4_lock_grant_wait.sql |
|
||
43 - Waiting commit session info | 4_waiting_commit_session.sql |
|
sys.session 의 trx_state가 'ACTIVE' 인 세션정보 | |
44 - Waiting commit Transaction info (require time) | 4_waiting_commit_transaction.sql |
|
지정시간 입력값 필요 | |
45 - Meta Locking Session Info | 4_meta_lock_session.sql |
|
||
46 - Waiting Session by table lock | 4_wait_session_by_tablelock.sql |
|
||
47 - All Lock Wait stat by table (sort by avg) | 4_all_lockwait_stat_by_table_sortby_avg.sql |
|
||
48 - All Lock Wait stat by table (sort by sum) | 4_all_lockwait_stat_by_table_sortby_sum.sql |
|
||
49 - Write Lock Wait stat by table (sort by avg) | 4_write_lockwait_stat_by_table_sortby_avg.sql |
|
||
491 - Write Lock Wait stat by table (sort by sum) | 4_write_lockwait_stat_by_table_sortby_sum.sql |
|
||
5.Wait Event | 51 - Most time used Wait Event by AvgTime | 5_most_timeused_waitevent_avg.sql |
|
|
52 - Most time used Wait Event by SumTime | 5_most_timeused_waitevent_sum.sql |
|
||
53 - Most time used Wait Event by MaxTime | 5_most_timeused_waitevent_max.sql |
|
||
6.I/O | 61 - Event I/O by avg WaitTime | 6_fileio_by_eventname_avg.sql |
|
디스크 병목시 원인 추적시 활용 |
62 - Event I/O by sum WaitTime | 6_fileio_by_eventname_sum.sql |
|
||
63 - File I/O by avg WaitTime | 6_fileio_by_instance_avg.sql |
|
||
64 - File I/O by sum WaitTime | 6_fileio_by_instance_sum.sql |
|
||
65 - Table I/O by avg WaitTime | 6_tableio_by_table_avg.sql |
|
||
66 - Table I/O by sum WaitTime | 6_tableio_by_table_sum.sql |
|
||
67 - Index I/O by avg WaitTime | 6_indexio_by_index_avg.sql |
|
||
68 - Index I/O by sum WaitTime | 6_indexio_by_index_sum.sql |
|
||
7.DML statistics | 71 - Top slow query-digest by avg of exec time | 7_topslow_query_digest_by_avg.sql |
|
|
72 - Top slow query-digest by sum of exec time | 7_topslow_query_digest_by_sum.sql |
|
||
73 - Top slow query history by duration | 7_topslow_queryhistory_by_duration.sql |
|
||
74 - Most executed query | 7_most_exec_query.sql |
|
||
75 - Most row examined query | 7_most_row_examined_query.sql |
|
||
8. Space & Usage | 81 - Database Usage | 8_database_usage.sql |
|
|
82 - Top table Usage | 8_top_table_usage.sql |
|
||
83 - Top index Usage | 8_top_index_usage.sql |
|
||
84 - Top partition table Usage | 8_top_partition_table_usage.sql |
|
||
85 - Redo dir Disk Usage ( only possible local) | 8_redolog_dir.sql sub-script:disk_usage.sh |
|
||
86 - Datafile dir Disk Usage ( only possible local) | 8_datafile_dir.sql sub-script:disk_usage.sh |
|
||
87 - Temp dir Disk Usage ( only possible local) | 8_tmp_dir.sql sub-script:disk_usage.sh |
|
||
9. Replication | 91 - Connected Slave hosts | 9_connected_slave_hosts.sql |
|
|
92 - Master Server info | 9_master_server_info.sql |
|
||
93 - Show slave status | 9_show_slave_status.sql sub-script:slave_status.sh |
|
||
94 - Replication Lag (auto repeat) | 9_show_slave_status.sql sub-script:show_delta.sh |
|
||
10. Status | 101 - Thread status | 10_thread_status.sql |
|
|
102 - Replication status | 10_replication_status.sql |
|
||
103 - DML execution status (auto repeat) | 10_dml_execution_status.sql sub-script:show_multi_delta.sh |
|
||
20. Plan & Index | 201 - Unused Index | 20_unused_index_status.sql |
|
|
202 - Tables with full table scan | 20_tables_with_fullscan.sql |
|
||
203 - Statement with full table scan | 20_statement_with_fullscan.sql |
|
||
30. Performance_schema Configuration | 301. Show Performance_schema variable | 30_perf_variables.sql |
|
|
302. Show Performacne_schema setup_consumer | 30_perf_setup_consumer.sql |
|
||
303. Enable Performance_schema support statement history_long | 30_enable_history_long.sql |
|
||
304. Disable Performance_schema support statement history_long | 30_disable_history_long.sql |
|
||
305. flush status (=reset status ) | 30_flush_status.sql |
|
||
306. Truncate all performance_schema table( reset all) | 30_ps_truncate_all_table.sql |
|
다양체학습
최적화
[오픈소스컨설팅]Day #2 MySQL Tuning, Replication, Cluster
https://www.slideshare.net/ienvyou/day-2-mysql-tuning-replication-cluster
[오픈소스컨설팅]Day #2 MySQL Tuning, Replication, Cluster
MySQL 최적화 ㅇ 최적화 간략 소개 ㅇ 파티셔닝 ㅇ Thread pool ㅇ 테이블 유지보수 ㅇ 테이블 검사, 최적화, 복구 MySQL Replication ㅇ Replication 소개 ㅇ Replication 구성방법 ㅇ Replication tuning 방법 …
www.slideshare.net
'DBMS > MySQL' 카테고리의 다른 글
mysql 모니터링을 위한 shell script (0) | 2024.08.21 |
---|
데이터모델링 과정
전일종가대비 % (변동율) 구하는 수식
( 1 - 현재가 / 전일종가 ) * -100 = 전일종가대비 변동율
'프로그래밍 > C&C++' 카테고리의 다른 글
switch 문을 대체하는 function pointer (0) | 2019.01.01 |
---|
switch 문을 대체하는 function pointer
1. sample 코드
#include <stdio.h>
typedef void (*func) ();
void foo1()
{
printf("foo1\n");
}
void foo2()
{
printf("foo2\n");
}
void foo3()
{
printf("foo3\n");
}
void switch_with_fpointer( void (*pt2func)() )
{
pt2func();
}
int main()
{
func fpointers[] = { foo1, foo2, foo3 };
fpointers[1]();
switch_with_fpointer( &foo3 );
}
2. 자료
http://oopweb.com/CPP/Documents/FunctionPointers/Volume/CCPP/FPT/em_fpt.html
'프로그래밍 > C&C++' 카테고리의 다른 글
전일종가대비 % (변동율) 구하는 수식 (0) | 2019.03.04 |
---|
svn: E200030: There are unfinished transactions 오류시
Some of selected resources were not cleaned.
svn: E200030: There are unfinished transactions detected in 'C:\eclipse-workspace\CCEX'
해결방법
'프로그래밍 > 개발환경&명령' 카테고리의 다른 글
vi 편집기에서 세로 모드 (column mode) 로 문자열 입력 (0) | 2018.07.13 |
---|
rabbitMQ sample 소스
Rabbitmq 공통모듈 작성을 위한 기본 소스 작성및 기능분석
1. c library api 문서
http://alanxz.github.io/rabbitmq-c/docs/0.8.0/amqp_8h.html
http://alanxz.github.io/rabbitmq-c/docs/0.2/amqp_8h.html
https://blog.naver.com/tireeo/220303953568
2. 큐 유형별 예제
2.1 fair dispatch 형 ( Work Queue 형 )
https://blog.naver.com/tireeo/220303948203
* 큐에 있는 내용을 하나씩 교대로 꺼내감. 꺼내갈때는 한번에 하나씩 꺼내가는 것처럼 보이지만 실제로는 prefetch 해 간다. 따라서 consumer가 죽으면 큐대기열에서 안꺼내간 큐가 남을 수 있다.
* 이 문제를 해결하기 위해서는 channel.basicQos(1) 사용 필요 , 사용법 확인 필요함.
2.1.1 sample 소스
mytest-dispatch\ 에 위 유형 예제 있음.
2.1.2 실행방법
#터미널1 sh recv.sh
# 터미널2 sh recv.sh
# 터미널3 sh send.sh
2.2 Publish / subcribe ( fanout )
* 큐대기열에 같은 내용을 복제한다. consumer1 과 consumer2 가 같은 내용의 큐를 가져간다.
2.2.1 sample 소스
mytest-prosub-fanout\ 에 예제 소스
2.2.1 실행방법
#터미널1 sh recv.sh
# 터미널2 sh recv.sh
# 터미널3 sh send.sh
2.3 Routing
* routing key 값에 따라서 exchange가 분배해주는 큐의 위치가 달라진다. 같은 routing key 값을 사용하면 같은 내용이 복제되는 fanout과 같은 방식이 된다.
2.3.1 sample 소스
mytest-routing\
2.3.2 실행방법
#터미널1 sh send.sh
# 터미널2 sh send2.sh
# 터미널3 sh recv.sh
# 터미널4 sh recv2.sh
2.4 Topic 방식 ( 사용 안할 예정)
* routing key 값의 패턴에 따라서 exchange --> queue 방향이 정해진다. 예들 들어서 routing key가 *.black.* 로 exchange 에 바인딩 큐대기열은 routing key 가 abc.black.twotwo 인 메시지가 저장되는 큐가 된다.
2.4.1 sample 소스
mytest-topic\
2.4.2 실행방법
#터미널1 sh send.sh
#터미널2 sh recv.sh
#터미널3 sh send2.sh
#터미널4 sh recv2.sh
'시스템 > RabbitMQ' 카테고리의 다른 글
rabbitMQ 종류 (0) | 2018.09.09 |
---|