이름 그대로 그리드(grid)는 행(row)과 열(column)의 집합을 의미합니다. Tkinter의 그리드 관리자도 같은 원리로 동작하며, 위젯을 2차원 평면 위에 배치하여 세로와 가로 위치를 기준으로 정렬해 줍니다.
이번 글에서는 창 크기를 조절할 때에도 위젯이 항상 화면 중앙에 위치하도록 만드는 방법을 살펴보겠습니다. grid(row, column) 속성을 사용하면 레이블 위젯을 수평 방향으로 중앙에 배치할 수 있고, sticky 속성과 함께 rowconfigure, columnconfigure의 weight 값을 설정하면 창 크기가 변해도 위젯의 위치가 흔들리지 않습니다.
예제 코드
# tkinter 라이브러리 임포트
from tkinter import *
# Tkinter 프레임(창) 인스턴스 생성
win = Tk()
# 프레임의 크기 설정
win.geometry("750x250")
# 모든 경우에 대해 창이 중앙 정렬 상태를 유지하도록 설정
win.grid_rowconfigure(0, weight=1)
win.grid_columnconfigure(0, weight=1)
# 레이블 생성
label = Label(win, text="This is a Centered Text", font=('Aerial 15 bold'))
label.grid(row=2, column=0)
label.grid_rowconfigure(1, weight=1)
label.grid_columnconfigure(1, weight=1)
win.mainloop()실행 결과
위 코드를 실행하면 텍스트 레이블 위젯이 수평 방향으로 중앙에 정렬된 창이 나타납니다. 창의 크기를 자유롭게 조절해도 위젯의 위치는 전혀 영향을 받지 않고 항상 중앙을 유지합니다.

핵심 포인트 정리
- grid_rowconfigure / grid_columnconfigure: weight 값을 1로 지정하면 해당 행·열이 남은 공간을 균등하게 차지하여 중앙 정렬 효과를 얻습니다.
- sticky 속성: 위젯이 셀 안에서 늘어나거나 특정 방향으로 붙는 것을 제어할 수 있습니다.
- geometry(): 초기 창 크기를 지정하여 레이아웃을 확인하기 좋은 환경을 만듭니다.