Autohotkey 에서 창 크기 조정 단축키 코드 입니다.

가로 세로를 아래 코드를 응용하시면 됩니다. 

본인은 Ctrl + Shift + Left/Right 단축키를 줄선택으로 정의해 놓아서 창 크기 조정은 정의하지 않았습니다.

; 활성창의 높이를 증가
^+Down::
	; 활성창 타이틀 조회
	WinGetActiveTitle, title
	; 활성창 위치,크기 조회
	WinGetPos, x, y, Width, Height, %title%
	; 활성창의 크기 조정
	WinMove, %title%, , x, y, Width, Height + 20
	Return
	
; 활성창의 높이를 축소	
^+Up::
	; 활성창 타이틀 조회
	WinGetActiveTitle, title
	; 활성창 위치,크기 조회
	WinGetPos, x, y, Width, Height, %title%
	; 활성창의 크기 조정
	WinMove, %title%, , x, y, Width, Height - 20
	Return

AutoHotKey 소스코드 입니다.

; 활성창을 해당 모니터 영역의 좌측 1/2영역에 배치
^+1::
	WinGetActiveTitle, title
	WinGetPos, x, y, Width, Height, %title%
	SysGet, MonitorCount, MonitorCount
	Loop, %MonitorCount%
	{
		SysGet, Monitor, Monitor, %A_Index%
		SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
		if (MonitorWorkAreaLeft < MonitorWorkAreaRight){
			half_width := (MonitorWorkAreaRight - MonitorWorkAreaLeft) / 2
		}
		else {
			half_width := (MonitorWorkAreaLeft - MonitorWorkAreaRight) / 2
		}
		if ( x >= MonitorWorkAreaLeft && x < MonitorWorkAreaRight )
		{
			;MsgBox, 'Target Monitor NO: ' %A_Index%
			WinMove, %title%, , MonitorLeft, MonitorTop, half_width, MonitorWorkAreaBottom
			Break
		}
	}
	return

; 활성창을 해당 모니터 영역의 우측 1/2영역에 배치
^+2::
	WinGetActiveTitle, title
	WinGetPos, x, y, Width, Height, %title%
	SysGet, MonitorCount, MonitorCount
	Loop, %MonitorCount%
	{
		SysGet, Monitor, Monitor, %A_Index%
		SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
		if (MonitorWorkAreaLeft < MonitorWorkAreaRight){
			half_width := (MonitorWorkAreaRight - MonitorWorkAreaLeft) / 2
		}
		else {
			half_width := (MonitorWorkAreaLeft - MonitorWorkAreaRight) / 2
		}
		if ( x >= MonitorWorkAreaLeft && x < MonitorWorkAreaRight )
		{
			;MsgBox, 'Target Monitor NO: ' %A_Index%
			WinMove, %title%, , MonitorLeft + half_width, MonitorTop, half_width, MonitorWorkAreaBottom
			Break
		}
	}
	return

15년간 항상 가벼운 노트북만

(노트북을 항상 가지고 다니며 업무와 개인 취미 생활(코딩, 크롤링 등)을 하다보니)

사용하다보니 게임을 못하는건 차지하고라도

아이들 동영상 편집하는 것도 버벅여서 힘들었습니다.

제가 LG gram을 2018년에 구매하고 2019년 후반인가? LG gram 사은품으로 Zotac egpu를 주더라고요,

각종 sns의 설명으로는 2019년 제품부터 지원한다고 하는데

제 노트북이 썬더볼트도 지원하는데 정말 안될까? 하지만 테스트해볼 곳도 없어 1~2년을 망설였습니다.

물론 여러 게시물에 보면 호환성이 나쁘다는 말도 많았고요,

돈 버린다 생각하고 질렀습니다.

결과는 대 만족

발로란트 & 녹스 에뮬레이터 1대 를 월활하게 구동 가능 하더군요.

혹시 구매 의향이 있으나 선능 및 연결이 어떻게 되는지 궁금해 하실 분들을 위해서 

제 노트북 및 그래픽 카드 정보 & 연결 정보 공유 합니다.

설치
연결 정보

TSpider 는 MariaDB의 Spider 엔진을 기반으로 텐센트에서 기능을 추가하여 수정한 엔진 입니다.

Spider 에 대한 자세한 설명은 : https://rastalion.me/spider-%EC%97%94%EC%A7%84%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%83%A4%EB%94%A9-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-01/

 

SPIDER 엔진을 이용한 샤딩 환경 구축 #01 - RastaLion's IT Blog

  Spider 엔진? Spider 스토리지 엔진은 샤딩 기능이 내장 된 스토리지 엔진입니다. 파티셔닝 및 xa 트랜잭션을 지원하며 다른 MariaDB 인스턴스의 테이블을 마치 동일한 인스턴스에있는 것처럼 처리

rastalion.me

 

Spider 와 달리 TSpider에서는 샤드키를 정의하기위해 CRC32()함수를 사용할 수 있다는 점이 큰 차이점 입니다.

crc32 함수를 통하여 문자형 컬럼도 샤드키로 사용할 수 있습니다.

Spider TSpider

 

 

 

 

또한 tdbcl 을 통하여 TSpider DB에서 일반적은 Create 구문을 실행하면 tdbcl이 자동으로 Spider 구문으로 변경하여

Spider DB에 테이블을 생성하며, 또한 자동으로 각 node 에 도 동일한 구조의 테이블을 생성 합니다.

이후 Spider DB에서 조회 쿼리등을 실행하여 됩니다.

자세한 사항은 아래 주소의 공식 문서를 참고하시면 됩니다.

✔ TenDB Cluster(TSpider) 공식 문서 : tendbcluster.net/book-en/

 

Introduction · TenDB Cluster Manual

No results matching ""

tendbcluster.net

TenDB Cluster 구성도

TSpider 구성도

 

다음으로는 TendbCluster(TSpider)를 Docker 환경으로 구축하는 방법을 설명 드리겠습니다.

단일 PC에 동일 버전의 MySQL(MariaDB)을 2개 설치하기 위해서는 Installer 파일로는 설치가 되지 않습니다.

그럴경우 직접 기존 설치된 폴더를 복사하여 MySQL을 구동하는 방법을 설명 드리겠습니다.

현재 제 노트북에는 MySQL 이 2개 , MariaDB 가 2개 설치되어 있습니다.

이 중 MySQL 8.0버전의 DB를 하다 더 설치 및 구동해 보겠습니다.

 

1. MySQL Server 8.0 설치 & 데이터 폴더 복사

  - 총 2개 폴더를 복사하여 다른 이름으로 붙여넣기 해주셔야 합니다.

  - 저는 _Sub_1 으로 복사하겠습니다.

    ✔ 프로그램 폴더

원본 복사
c:\Program Files\MySQL\MySQL Server 8.0\ c:\Program Files\MySQL\MySQL Server 8.0_Sub_1\

    ✔ 데이터 폴더

원본 복사
c:\ProgramData\MySQL\MySQL Server 8.0\  

 

2. 복사한 데이터 폴더의 my.ini 수정

    ✔ port, report_port, datadir, basedir 항목의 값을 변경합니다. 4개 항목 외 기존 경로 및 port가 지정된 항목은 함께 수정해 주어야 합니다.

원본 복사

 

3. MySQL Install 명령어 실행 & 서비스 등록

    ✔ 복사한 프로그램 폴더로 이동하여 아래와 같이 Install 명령 실행

    ✔ [복사한프로그램폴더\bin\mysqld.exe] --install  [서비스명] --defaults-file="복사한 데이터 폴더의 ini파일"

    ✔ Ex:  "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --install MySQL57_25000 --defaults-file="F:\MySQL\MySQL Server 5.7_25000\my.ini"

  • 위에서 입력한 서비스명으로 서비스탭에 등록 됩니다.
  • 반드시 관리자 권한으로 CMD를 실행하셔야 서비스가 정상 등록됩니다.
  • 꼭 복사한 프로그램폴더의 mysqld 실행 파일의 경로를 명시해 주시길 바랍니다.

 

4. 서비스 시작

    ✔ 서비스 탭에서 시작 버튼을 눌러 주시면 됩니다.

설명에 사용한 MySQL 버전 : 5.7.20

 

1. Scheduler 확인

show global variables like '%schedule%';

사용 가능할 경우 ON, 그렇지 않을 경우 OFF 로 표시 됩니다.

1-1. Scheduler 사용 설정

   ini를 수정하게 되면 MySQL 을 재시작 해주어야 합니다. 그렇지 않을 경우 ini 수정 후 set global 명령어를 통해서

   수동으로 설정을 변경해 주시면 됩니다. 추후 재시작 하게되면 그때부터는 ini의 설정에 따라서 동작 하게 됩니다.

    ini 에 아래 구문을 추가합니다. 

event_scheduler = 1

혹은 

event_scheduler = ON

   "1" 이나 "ON" 이나 동일하게 동작(설정) 됩니다.

1-2. Process 확인

show processlist;

 Scheduler 설정을 정상적으로 완료하였을 경우 아래와 같이 event_scheduler 데몬이 접속 중임이 확인 됩니다.

 

2. Schedule 생성

  ◈ Schedule 은 DB에 종속되기에 명령을 실행할 DB가 선택된 상태에서 생성해야 합니다.

DROP EVENT IF EXISTS `calc_ranking`;
DELIMITER $
CREATE EVENT IF NOT EXISTS `calc_ranking`
ON SCHEDULE
	EVERY 5 HOUR                  -- 5시간 마다 실행 (사용 가능 형식: second, minute, day)
	STARTS '2020-01-01 00:00:00'  -- 지정하지 않을 경우 현재 시간부터 5시간 경과 후에 첫 스케줄러가 동작됨
ON COMPLETION PRESERVE
ENABLE
COMMENT 'calc_profile_ranking'
DO 
BEGIN
    call test_procedure(1);
    UPDATE tbl_test set action_status = 1;
END$
DELIMITER ;

  - 매일 5시에 실행되는 작업을 만들고 싶을 경우 ON SCHEDULE 부분을 아래와 같이 수정 합니다.

ON SCHEDULE
	EVERY 1 DAY                   -- 하루에 한번
	STARTS '2020-01-01 05:00:00'  -- 기준 시각이 05시 이기 때문에 매일 5시에 스케줄러 실행

  - 특정 문서의 경우 매일 특정 시간에 실행되는 스케줄을 등록하기 위해 아래와 같은 구문을 사용하는데

그럴 필요 없이 과거 날짜의 특정 시간을 시작시간으로 설정하면 해당 시간 을 기준으로 하루에 한번 실행 됩니다.

STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)

 

3. Schedule 확인

  ◈ Schedule 은 DB에 종속되기에 명령을 실행할 DB가 먼저 선택되어 있어야 합니다.

SHOW EVENTS;	-- 현재 선택된 DB에 등록된 Schedule을 조회 합니다.
or
SELECT * FROM information_schema.EVENTS;  -- 모든 DB에 등록된 설정을 조회 합니다.

SHOW EVENTS
SELECT * FROM information_schema.EVENTS

- Schedule 등록 스크립트를 확인하실 수 있습니다.

SHOW CREATE EVENT `Schedule Name`;
SHOW CREATE EVENT `calc_ranking`;

- Create Event 컬럼의 내용은 아래와 같습니다.

CREATE DEFINER=`root`@`%` EVENT `calc_ranking` 
ON SCHEDULE EVERY 5 HOUR STARTS '2020-01-01 00:00:00' 
ON COMPLETION PRESERVE ENABLE COMMENT 'calc_profile_ranking' 
DO BEGIN
    call test_procedure(1);
    UPDATE tbl_test set action_status = 1;
 END

 

4. 삭제

DROP event `이벤트명`;
DROP EVENT `calc_ranking`;

 

이상 입니다.

+ Recent posts