728x90
반응형

PyQt5는 GUI 애플리케이션을 제작하기 위한 강력한 라이브러리로, 메뉴와 같은 다양한 인터페이스 구성 요소를 쉽게 구현할 수 있습니다. 이번 글에서는 PyQt5를 사용하여 간단한 메뉴를 만드는 방법을 소개합니다.


전체코드

아래 코드는 PyQt5를 사용하여 메뉴를 생성하는 간단한 예제입니다. File 메뉴와 Exit 액션을 추가하여, 사용자가 메뉴를 통해 프로그램을 종료할 수 있도록 구성되어 있습니다.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp


class MyApp(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # Exit 액션 정의
        exitAction = QAction('Exit', self)
        exitAction.setShortcut('Ctrl+Q')  # 단축키 설정
        exitAction.setStatusTip('Exit application')  # 상태 표시줄 메시지
        exitAction.triggered.connect(qApp.quit)  # 종료 이벤트 연결

        # 상태 표시줄 생성
        self.statusBar()

        # 메뉴바 생성
        menubar = self.menuBar()
        menubar.setNativeMenuBar(False)  # macOS의 기본 메뉴바 동작을 비활성화
        filemenu = menubar.addMenu('&File')  # File 메뉴 추가
        filemenu.addAction(exitAction)  # Exit 액션 추가

        # 창 속성 설정
        self.setWindowTitle('Menubar')
        self.setGeometry(300, 300, 300, 200)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

728x90

코드 설명

1. QMainWindow 기반 클래스 사용

QMainWindow는 PyQt5에서 창을 생성하기 위한 표준 클래스입니다. 메뉴바, 툴바, 상태 표시줄 등 다양한 GUI 구성 요소를 기본적으로 지원합니다.

2. Exit 액션 추가

exitAction = QAction('Exit', self)
exitAction.setShortcut('Ctrl+Q')  # 단축키 설정
exitAction.setStatusTip('Exit application')  # 상태 표시줄에 표시될 메시지
exitAction.triggered.connect(qApp.quit)  # 메뉴 선택 시 애플리케이션 종료
  • QAction: 메뉴에서 사용할 액션을 정의합니다.
  • setShortcut: 단축키를 설정합니다.
  • setStatusTip: 상태 표시줄에 표시할 힌트를 제공합니다.
  • triggered.connect: 액션이 트리거될 때 실행할 작업을 연결합니다.

3. 메뉴바 생성

menubar = self.menuBar()
menubar.setNativeMenuBar(False)  # macOS 기본 메뉴바 비활성화
filemenu = menubar.addMenu('&File')  # File 메뉴 추가
filemenu.addAction(exitAction)  # Exit 액션 추가
  • menuBar: 메뉴바를 생성합니다.
  • addMenu: 메뉴바에 새 메뉴를 추가합니다.
  • addAction: 특정 메뉴에 액션을 연결합니다.
  • setNativeMenuBar(False): macOS에서는 기본적으로 메뉴바가 상단에 고정됩니다. 이를 창 내부로 표시하려면 해당 설정을 비활성화합니다.

4. 상태 표시줄 생성

self.statusBar()
  • 메뉴나 액션과 관련된 힌트를 사용자에게 제공하기 위해 상태 표시줄을 생성합니다.

5. 창 속성 설정

self.setWindowTitle('Menubar')
self.setGeometry(300, 300, 300, 200)
self.show()
  • setWindowTitle: 창의 제목을 설정합니다.
  • setGeometry: 창의 위치와 크기를 설정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 GUI 창이 나타납니다:

  • File 메뉴 클릭 시 Exit 옵션이 나타납니다.
  • Ctrl+Q 단축키를 누르거나 Exit을 클릭하면 프로그램이 종료됩니다.

주요 학습 포인트

  1. PyQt5에서 QMainWindow를 활용한 GUI 애플리케이션 개발 방법을 익힐 수 있습니다.
  2. 메뉴와 액션을 생성하고 연결하는 과정을 이해할 수 있습니다.
  3. 상태 표시줄을 사용하여 사용자 경험(UX)을 향상시키는 방법을 배울 수 있습니다.

PyQt5를 활용하면 이 외에도 다양한 기능을 쉽게 구현할 수 있습니다. 메뉴에 서브 메뉴를 추가하거나, 도구 모음을 생성하는 방법도 이어서 학습해 보세요! 😊

728x90
반응형
728x90
반응형

 

PyQt5는 Python에서 GUI(Graphical User Interface)를 구현하기 위해 널리 사용되는 라이브러리입니다. 이번 포스팅에서는 PyQt5를 사용해 간단한 창을 여는 방법을 소개합니다.


1. PyQt5 설치하기

PyQt5를 사용하기 위해서는 먼저 라이브러리를 설치해야 합니다. 다음 명령어를 터미널이나 커맨드라인에서 실행하세요:

> pip install pyqt5

설치가 성공적으로 완료되면 PyQt5와 관련된 패키지가 다운로드됩니다. 출력 예시는 다음과 같습니다:

Collecting pyqt5
  Downloading PyQt5-5.15.11-cp38-abi3-win_amd64.whl (6.9 MB)
   ...
Successfully installed PyQt5-Qt5-5.15.2 PyQt5-sip-12.16.1 pyqt5-5.15.11

 


2. PyQt5 기본 코드 설명

다음은 PyQt5를 사용해 간단한 창을 만드는 코드입니다:

전체 코드

import sys
from PyQt5.QtWidgets import QApplication, QWidget


class MyApp(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('My First Application')
        self.move(300, 300)
        self.resize(400, 200)
        self.show()


if __name__ == '__main__':
   app = QApplication(sys.argv)
   ex = MyApp()
   sys.exit(app.exec_())

728x90

코드 분석

1. PyQt5 모듈 가져오기

import sys
from PyQt5.QtWidgets import QApplication, QWidget
  • sys: 시스템 관련 작업을 처리하기 위한 모듈입니다. 프로그램 종료 시 필요한 인자를 전달합니다.
  • QApplication: PyQt5 프로그램에서 반드시 생성해야 하는 객체로, GUI 애플리케이션의 기본적인 환경을 제공합니다.
  • QWidget: PyQt5에서 기본 창 역할을 하는 클래스입니다.

2. MyApp 클래스 정의

class MyApp(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()
  • MyAppQWidget을 상속받아 정의한 클래스입니다.
  • __init__ 메서드에서 부모 클래스(QWidget)의 생성자를 호출한 뒤, 사용자 정의 초기화 메서드 initUI()를 실행합니다.

3. UI 초기화

    def initUI(self):
        self.setWindowTitle('My First Application')
        self.move(300, 300)
        self.resize(400, 200)
        self.show()
  • setWindowTitle: 창의 제목을 설정합니다.
  • move: 창의 시작 위치를 설정합니다. (x=300, y=300)
  • resize: 창의 크기를 설정합니다. (너비 400, 높이 200)
  • show: 창을 화면에 표시합니다.

4. 프로그램 실행

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())
  • QApplication 객체 생성: sys.argv를 인자로 전달하여 애플리케이션 객체를 생성합니다.
  • MyApp 객체 생성: MyApp 클래스의 인스턴스를 생성합니다.
  • app.exec_(): 이벤트 루프를 실행합니다. 프로그램이 종료될 때까지 계속 실행되며, 종료 시 반환 값을 시스템에 전달합니다.

3. 실행 결과

위 코드를 실행하면 다음과 같은 창이 열립니다:

  • 제목: My First Application
  • 크기: 400 x 200
  • 위치: 화면에서 x=300, y=300 지점에 표시

 


4. 추가적인 내용

PyQt5 학습 포인트

  1. 위젯 추가하기: 창에 버튼, 레이블, 텍스트 입력창 등을 추가하는 방법을 학습하세요.
  2. 레이아웃 관리: 위젯들을 창 내부에서 효율적으로 배치하는 방법을 익히세요.
  3. 이벤트 처리: 버튼 클릭 등 사용자 동작에 반응하는 이벤트를 처리하는 방법을 알아보세요.

참고 자료


이번 포스팅에서는 PyQt5를 이용한 간단한 창 구현 방법을 살펴보았습니다. PyQt5는 강력한 기능을 제공하며, 이를 활용해 다양한 GUI 애플리케이션을 제작할 수 있습니다. 앞으로 PyQt5로 더욱 흥미로운 애플리케이션을 만들어 보세요!

728x90
반응형
728x90
반응형

사진 속에는 우리가 눈으로 볼 수 없는 다양한 메타데이터가 포함되어 있습니다. 특히 스마트폰이나 GPS 기능이 있는 카메라로 촬영한 사진에는 GPS 정보가 포함될 수 있습니다. 이번 포스팅에서는 파이썬을 사용해 이미지에서 GPS 정보를 추출하는 방법을 소개합니다.


준비물

이 작업을 위해 두 가지 라이브러리가 필요합니다: PillowExifRead. 아래 명령어를 사용하여 설치할 수 있습니다.


Pillow

Pillow는 Python의 강력한 이미지 처리 라이브러리로, 이미지 파일을 열고, 읽고, 저장하며 다양한 변환 작업(예: 크기 조정, 포맷 변환 등)을 수행할 수 있습니다.

이 포스팅에서는 이미지를 열고 EXIF 메타데이터를 추출하기 위해 사용됩니다. 직관적이고 간단한 API 덕분에 이미지 처리에 널리 활용됩니다.


ExifRead

ExifRead는 이미지의 EXIF 메타데이터를 분석하는 데 특화된 라이브러리입니다. GPS 정보와 같은 세부 데이터를 효율적으로 읽고, 해석하는 기능을 제공합니다.

Pillow만으로도 EXIF 데이터를 읽을 수 있지만, ExifRead는 특히 GPS 데이터를 더 세밀하고 직관적으로 다룰 수 있도록 설계되어 있습니다.

 

pip install Pillow ExifRead

코드 구현

다음은 파이썬으로 이미지의 GPS 정보를 추출하는 코드입니다.

1. 이미지의 EXIF 데이터 읽기

from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS

def get_exif_data(image_path):
    """이미지에서 Exif 데이터를 추출합니다."""
    try:
        image = Image.open(image_path)
        exif_data = image._getexif()
        
        if not exif_data:
            return None
        
        exif = {}
        for tag, value in exif_data.items():
            tag_name = TAGS.get(tag, tag)  # 태그를 사람이 읽을 수 있는 이름으로 변환
            exif[tag_name] = value
        
        return exif
    except Exception as e:
        print(f"Error reading EXIF data: {e}")
        return None
  • Image.open(image_path): Pillow를 사용해 이미지를 엽니다.
  • image._getexif(): 이미지의 EXIF 데이터를 추출합니다.
  • TAGS.get(tag, tag): EXIF 태그 번호를 사람이 읽을 수 있는 이름으로 변환합니다.
728x90

2. GPS 정보 추출

def get_geotagging(exif_data):
    """Exif 데이터에서 GPS 정보를 추출합니다."""
    if not exif_data or "GPSInfo" not in exif_data:
        return None
    
    gps_info = exif_data["GPSInfo"]
    geotags = {}
    
    for key, val in gps_info.items():
        tag_name = GPSTAGS.get(key, key)  # GPS 태그 이름 변환
        geotags[tag_name] = val
    
    return geotags
  • exif_data["GPSInfo"]: EXIF 데이터에서 GPS 정보를 포함하는 부분만 추출합니다.
  • GPSTAGS.get(key, key): GPS 태그 번호를 사람이 읽을 수 있는 이름으로 변환합니다.

3. GPS 데이터를 도(degree)로 변환

def convert_to_degrees(value):
    """GPS 좌표 값을 도(degree)로 변환합니다."""
    d, m, s = value  # degree, minute, second 형식
    return d + (m / 60.0) + (s / 3600.0)

EXIF 데이터에서 GPS 좌표는 (degree, minute, second) 형식으로 저장됩니다. 이를 십진수 형식으로 변환하는 함수입니다.


4. 위도와 경도 계산

def get_coordinates(geotags):
    """GPS 정보에서 위도와 경도를 추출합니다."""
    if not geotags:
        return None
    
    lat = geotags.get("GPSLatitude")
    lat_ref = geotags.get("GPSLatitudeRef")
    lon = geotags.get("GPSLongitude")
    lon_ref = geotags.get("GPSLongitudeRef")
    
    if not lat or not lon or not lat_ref or not lon_ref:
        return None
    
    lat = convert_to_degrees(lat)
    if lat_ref != "N":
        lat = -lat
    
    lon = convert_to_degrees(lon)
    if lon_ref != "E":
        lon = -lon
    
    return lat, lon

 

  • GPSLatitude****, ********GPSLongitude: 위도와 경도 정보를 가져옵니다.
  • GPSLatitudeRef****, ********GPSLongitudeRef: 위도/경도의 북(N)/남(S), 동(E)/서(W) 방향을 확인합니다. 방향이 남(S) 또는 서(W)일 경우 음수로 변환합니다.

전체 코드

위의 함수들을 조합하면, 이미지에서 GPS 정보를 추출하는 전체 코드는 다음과 같습니다:

from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS

def get_exif_data(image_path):
    try:
        image = Image.open(image_path)
        exif_data = image._getexif()
        if not exif_data:
            return None
        exif = {TAGS.get(tag, tag): value for tag, value in exif_data.items()}
        return exif
    except Exception as e:
        print(f"Error reading EXIF data: {e}")
        return None

def get_geotagging(exif_data):
    if not exif_data or "GPSInfo" not in exif_data:
        return None
    gps_info = exif_data["GPSInfo"]
    geotags = {GPSTAGS.get(key, key): val for key, val in gps_info.items()}
    return geotags

def convert_to_degrees(value):
    d, m, s = value
    return d + (m / 60.0) + (s / 3600.0)

def get_coordinates(geotags):
    if not geotags:
        return None
    lat = geotags.get("GPSLatitude")
    lat_ref = geotags.get("GPSLatitudeRef")
    lon = geotags.get("GPSLongitude")
    lon_ref = geotags.get("GPSLongitudeRef")
    if not lat or not lon or not lat_ref or not lon_ref:
        return None
    lat = convert_to_degrees(lat)
    if lat_ref != "N":
        lat = -lat
    lon = convert_to_degrees(lon)
    if lon_ref != "E":
        lon = -lon
    return lat, lon

# 사용 예제
image_path = "example.jpg"  # 이미지 경로
exif_data = get_exif_data(image_path)
geotags = get_geotagging(exif_data)

if geotags:
    coordinates = get_coordinates(geotags)
    if coordinates:
        print(f"GPS Coordinates: {coordinates}")
    else:
        print("GPS 정보가 없습니다.")
else:
    print("Exif에 GPS 정보가 없습니다.")

결과

사진에 GPS 정보가 포함되어 있다면, 위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다:

GPS Coordinates: (37.7749, -122.4194)

 

이 결과는 위도(latitude)와 경도(longitude)를 나타냅니다. 예를 들어, 37.7749, -122.4194는 샌프란시스코의 좌표입니다.


주의사항

  1. GPS 정보 유무: 모든 이미지에 GPS 정보가 포함되어 있지는 않습니다. 스마트폰이나 GPS 기능이 있는 카메라로 촬영된 사진만 GPS 정보를 포함할 가능성이 높습니다.
  2. EXIF 제거 여부: 일부 소셜 미디어나 편집 프로그램은 이미지를 저장할 때 EXIF 데이터를 제거할 수 있습니다.
  3. 라이브러리 버전: 최신 버전의 Pillow를 사용하는 것을 권장합니다.
728x90
반응형
728x90
반응형



드라이버 똑딱이 연습, 나의 도전기

현재 제가 사는 아파트에는 작은 골프 연습장이 있다. 비록 브랜드를 잘 모르는 스크린 타석 8개뿐이지만, 이런 환경에서 연습할 수 있다는 게 얼마나 다행인지 모르겠다. 감사한 마음으로 현실을 즐기며 연습하고 있다. 😊

 

 

내 연습은 제대로 하고 있는 걸까?

드라이버 똑딱이를 며칠 동안 연습했는데, 내가 제대로 하고 있는 것인지 궁금해져 영상을 촬영해 보았다. 그런데 영상을 보니 정말 너무 못 치고 있었다.

올해 레슨을 3개월 정도 받았는데, 그때 지적받았던 모든 문제를 여전히 반복하고 있었다. 몸은 참 정직하다는 생각이 들었다. 올해 동계훈련은 독학으로 하기로 했으니, 문제를 극복할 방법을 찾는 수밖에 없다. 중요한 부분부터 하나씩 연습을 시작해 본다.

 

허석 프로의 똑딱이 연습 영상

요즘 허석 프로의 드라이버 똑딱이 연습 영상을 자주 보고 있다. 아래 링크를 참고하면 좋다. 허석프로의 말대로 기적을 느끼고 싶다. ㅎㅎㅎ

기적을 믿고 싶은 티파일러 입니다. 기적을 주소서!

 

 


👉 허석 프로의 똑딱이 연습 영상

 

영상에서 나온 핵심 포인트를 정리하면 다음과 같다.


드라이버 똑딱이의 핵심 포인트

  1. 스윙 궤도는 in to out
    • 과하다고 느껴질 정도로 in to out 스윙을 해야 한다.
  2. 클럽 헤드의 위치
    • 스윙이 끝난 후 클럽 헤드는 손 안쪽이 아닌 바깥쪽에 있어야 한다.
  3. 오른쪽 어깨의 고정
    • 오른쪽 어깨가 덮이면 머리가 앞으로 나오기 때문에 절대 덮어서는 안 된다.
  4. 오른쪽 옆구리의 모양
    • 오른쪽 옆구리는 구겨져 있어야 한다.

영상에서는 공이 오른쪽에서 출발해 왼쪽으로 돌아가는 궤적이 나올 때까지 연습하라고 한다. 하지만 내 공은 돌기도 하고, 밀리기도 하고, 가끔 아주 조금만 돌아간다.

똑딱이 연습 - 공 궤적

 

 

 

연습 중에 느낀 점

촬영한 내 스윙을 보니 여전히 오른쪽 어깨가 덮이는 문제가 있었다. 이 때문에 클럽 헤드가 O 위치가 아니라 X 위치로 가버리는 것이다. 또한, 몸도 내가 원하는 대로 잘 따라주지 않는 것 같다.



허석 프로의 올바른 스윙 모습

 


나의 엉성한 스윙 모습


 

728x90


클럽 헤드 궤도

 

결론: 지금은 과정 중이다

촬영한 영상을 보면 한숨이 나올 정도로 부족한 모습이지만, 처음부터 잘할 것이라고 생각하지는 않았다. 지금은 올바른 스윙으로 가는 과정일 뿐이다.

이번 겨울 연습으로 조금씩 개선해 나가면서, 언젠가 멋진 스윙을 할 수 있을 것이라고 믿는다.

728x90
반응형
728x90
반응형

책 제목:
딱 4주 만에 완성하는 브랜딩 블로그
블로그 글쓰기는 어떻게 삶의 무기가 되는가

저자: 리블로그팀 로미,신영은,윤담,주얼송
읽은 날짜: 2024.12.12

책 표지 이미지


책 내용 요약


글도 못 쓰는데, 블로그 시작해도 될까요?
지금보다 나은 삶을 원한다면, 단언컨대 '글쓰기'를 시작하라.
내 블로그의 독자는 바로 나, 처음에는 나를 위한 글쓰기를 합니다.
오늘부터 이야기 거리를 만들기 위해 사전을 만드세요. 그 과정을 즐기고 기록하세요!
지금 내가 하는 일을 기록하고 말하고 꺼내놓을 때 자연스럽게 브랜딩이 됩니다.


중요한 문장

  • 특별해서 쓰는 것이 아닙니다. 쓰면서 특별해지는 것입니다.
  • 다른 사람이 아니라 가장 먼저 나를 위한 글을 써보세요.
  • 지금은 스스로를 드러내지 않으면 안 되는 시대입니다. 그게 브랜딩이죠.
  • 기록이 쌓이면 스토리가 됩니다. 기록이 쌓이면 브랜드가 됩니다. 기록이 쌓이면 커리어가 됩니다.



나의 생각


이 책을 읽으면서 바로 실행에 옮긴 것은 리블로그였다. 블로그를 만든지 오래 되었지만 특정 주제에 정보를 전달해야한다는 압박도 컸고, 포스팅을 하려면 사진도 필요한데 마음에 드는 사진도 없고, 특히 무엇보다 나는 글쓰기를 정말 못하는 순수 이과생이기 때문이다.
하지만 이책을 보고 "내가 잘 못 생각했구나, 나의 일상을 나를 위해 기록하는 공간으로 만들어야 겠구나. "라고 생각을 바꾸었다. 하지만 몇개의 포스팅을 쓰면서 다시 이전 처럼 더 멋진글을 쓰려 노력하려 하지만 그래도 하루 10분 아니면 5분이라도 내 생각을 정리하면서 포스팅을 남기게 되었다.
나를 브랜드화하는 것은 남이 아니라 내가 되어야 하기에 오늘도 난 블로그에 글을 쓴다.

728x90
반응형
728x90
반응형

책 제목: 퀸의 대각선 1,2


저자: 베르나르 베르베르
읽은 날짜: 2024.12.09

책 표지 이미지



줄거리 요약


체스대회에서 만난 두 소녀, 모니카와 니콜.
서로 다른 사상을 가진 두 소녀는 처음 만났을 때부터 영혼의 적임을 알아본다. 상대를 파괴하기 위해 평생을 바친다는 이야기

함께하는 집단의 힘을 믿는 니콜,
뛰어난 개인의 힘을 믿는 모니카

세계사의 보이지 않는 이면에서 정반대의 신념을 걸고 싸워 온 두 사람

과연 승자는?!



완독 후 감상


내가 좋아하는 작가는 많지 않다. 소설책은 특히나 호불호 성향이 강해서 특정 작가의 소설만을 읽는 편이다. 이것도 좀 바꿔야 하는데 ;;;
베르나르 베르베르 작가는 내가 좋아하는 작가 중 베스트 1이다. '개미'라는 소설을 고등학교 때 처음 접했고, 베르나르 베르베르에게 빠지게 된 것은 '뇌'라는 소설부터였을 것이다. 이후 '신', '파피옹', '꿀벌의 예언' 등 그의 상상적 세계의 이야기를 굉장히 좋아했다.
'퀸의 대각선' 두 천재 소녀가 세계사의 보이지 않는 이면에서 활동하며 서로 적으로 살아가며 대결하는 구도를 체스를 이용하여 재미나게 묘사했다. 특히, 흑과 백으로 번갈아 가며 니콜과 모니카의 이야기를 담아내는 전개방법이 흥미를 더 해주었다.
마지막 니콜과 모니카의 체스대결은 다소 억지스러웠지만 소설은 소설일 뿐 ㅎㅎ

728x90
반응형
728x90
반응형

나의 드라이버 스윙 분석: 문제점과 개선 방법

1. 문제점 분석

지난번 데이터를 바탕으로 객관적으로 분석한 결과, 나의 드라이버 스윙에는 다음과 같은 문제점이 있었다.

  • 정타 확률 부족
  • 높은 발사각

정타 확률 부족은 드라이버 스윗스팟에 공이 정확히 맞지 않고, 여기저기 맞는다는 의미다. 그렇다면 드라이버의 스윗스팟은 어디일까? 흔히 클럽의 스윗스팟은 헤드의 중앙이라고 알고 있지만, 드라이버의 경우, 중앙보다는 약간 위쪽에 맞는 것이 이상적이다. 아래 이미지의 초록색 부분이 바로 그 위치다. 반면, 파란색 부분에 맞으면 약 20m의 비거리 손실이 발생한다.

 

하지만 드라이버는 가장 긴 클럽이자 스윙 아크가 크고 컨트롤이 어려운 클럽이다. 따라서 중앙에 정확히 맞추는 것이 쉽지 않다. 그래서 반복적인 연습이 필요하다.


728x90

2. 드라이버 연습의 기본, 똑딱이 연습

골프를 처음 배울 때, 우리는 가장 기본적인 7번 아이언으로 그립과 어드레스부터 배웠다. 그리고 바로 풀스윙을 시작했을까? 아니었다. 똑딱이 연습부터 시작했다. 그 당시 우리는 어색한 자세로 똑딱이 연습을 하면서, 허리가 끊어질 것 같은 통증을 느꼈을 것이다. 하지만 이 연습을 거쳐 하프스윙, 3/4 스윙, 그리고 풀스윙으로 점차 아크를 확장해갔다.

그래서 나는 드라이버도 마찬가지로 똑딱이 연습부터 하기로 결심했다. 드라이버 똑딱이 연습이 어떻게 진행되어야 하는지에 대해 여러 가지 방법을 찾아보았다. 아래 유튜브 영상을 참고하자.

 

https://youtu.be/qGJiE8NL1To?si=BqySJECWXVidO_FC

JTBC GOLF - [골짤강]드라이버로 똑딱이 연습하기

 


3. 드라이버 똑딱이 연습법

드라이버의 똑딱이 연습은 정타를 맞추지 못하는 경우, 방향성에 문제가 생기는 경우, 심지어 깎아 치는 스윙을 고치기 위한 유용한 방법이다. 그럼 드라이버 똑딱이는 초보 때 하던 방식과 똑같이 해야 할까? 아니, 다르다. 드라이버 똑딱이 연습에는 몇 가지 중요한 포인트가 있다.

  • 정확한 순서로 연습: 손 → 헤드 → 공
  • 멈춤이 필요: 동작 하나하나를 구분하여 연습
  • 오른쪽 어깨 고정: 오른쪽 어깨가 앞으로 나오지 않도록 연습
  • 헤드 궤도 유지: 인-아웃 궤도를 유지하며 연습

드라이버 똑딱이 연습은 처음에는 지루하고, 허리가 아플 수 있다. 그러나 정타를 만들기 위한 필수적인 과정이다. 그래서 나는 드라이버 연습을 할 때, 한 시간20분은 똑딱이 연습으로 시작할 것이다. 그리고 2025년에는 멋진 드라이버 샷을 치는 내가 될 거라고 상상한다.

728x90
반응형
728x90
반응형

드라이버 스매시 팩터와 발사각, 그리고 나의 과제

1. 스매시 팩터: 정타의 중요성

프로 골퍼들의 드라이버 스매시 팩터는 평균 1.49 정도라고 한다. 하지만 나의 스매시 팩터는 대략 1.4 정도다. 흥미롭게도, 게임에서 "정확히 맞았다"는 느낌이 들었던 적은 거의 없었다.
GDR(골프 시뮬레이터)이나 전문 피팅숍의 정밀 기기를 사용하면 실제 수치는 1.25~1.3 정도로 나올 가능성이 높다. 실제로 샤프트 피팅샵에서 측정했을 때도 약 1.3이었다.

정타가 나오지 않으니 문제가 발생한다.

  • 볼스피드가 떨어지고,
  • 훅 구질이 자주 발생한다.

이처럼 정타의 부재는 비거리와 정확성 모두에 부정적인 영향을 준다.


2. 발사각: 티 높이와 스윙의 문제

발사각 또한 나의 드라이버 샷 성능에 큰 영향을 미치는 요소다. 일반적으로 발사각은 티 높이에 따라 변한다고 한다.

  • 나의 티 높이는 약 45~55mm 정도이며,
  • 드라이버 헤드는 10.5도를 사용 중이다.

드로우 구질을 내기 위해 티를 조금 높게 설정하는 편이지만, 나의 발사각은 평균적으로 20도 내외로 높은 편이다.

이렇게 높은 발사각의 원인은 무엇일까?
단순히 드라이버 헤드 기울기를 계산해 보면, 나는 약 9.5도 위로 타격을 하고 있는 셈이다. 어퍼블로가 완벽하다는 뜻일까? 아니다.
내 스윙에는 찍어치는 경향이 있어, 그 결과 발사각이 지나치게 높아지는 것으로 보인다. 참고로:

  • LPGA 선수의 발사각은 약 14도.
  • PGA 선수는 이보다 더 낮다.

3. 백스핀과 발사각의 상관관계

클럽 속도와 발사각은 백스핀에 직접적인 영향을 준다.

  • 나의 백스핀은 대략 3000~3500rpm 정도.
  • 프로 선수들의 평균 백스핀은 약 2400rpm이다.

발사각이 높으면 자연스럽게 백스핀도 증가한다. 이는 비거리 손실의 주요 원인이 될 수 있다.


나의 드라이버 과제: 정타와 발사각 개선


현재 데이터를 종합해 보면, 나의 드라이버 비거리를 방해하는 두 가지 요소는 다음과 같다.

  1. 정타 확률의 부족
  2. 높은 발사각

이 문제를 해결하기 위해 많은 시행착오가 예상되지만, 독학 골퍼로서 느끼는 매력도 크다. 하나하나 나의 스윙을 분석하고, 개선하는 과정에서 스윙에 대한 이해가 점점 깊어지고 있다.

다음 겨울 훈련은 이 두 가지 과제를 중심으로 진행해볼 예정이다.



어떤 방식으로든 이 여정을 통해 조금 더 나은 골퍼가 되길 기대해 본다. 😊



728x90
반응형
728x90
반응형

2024년, 2년 차 골프 시즌을 마무리하며

2024년 2년 차 골프 시즌이 끝났다. 작년 마지막 라운딩에서 100돌이를 깨고, 올해 두 번째 라운딩에서도 다시 한 번 100을 깼기에 올해 목표는 90돌이를 깨는 것이었다. 하지만 아쉽게도 다시 100을 넘는 백돌이로 시즌을 마감했다.

어디서부터 잘못된 걸까?

라운딩을 하면서 연습을 게을리한 걸까? 아니면 다른 문제가 있었던 걸까? 최근 이런 고민에 빠져 있었다. 고민 끝에 도달한 결론은 다음과 같다.

  1. 마음의 급함
    필드에 나가면 마음이 급해진다. 들뜬 마음 때문인지 몰라도 스윙이 서두르게 된다.
  2. 급한 백스윙과 도끼샷
    마음이 급해서인지 백스윙이 부자연스럽게 급하게 올라간다. 다운스윙도 하지 않고 채를 내려찍는 도끼샷을 자주 한다.
  3. 퍼팅 실력 부족
    형편없는 퍼팅 실력도 큰 문제였다.
728x90

 

이번 겨울, 나만의 스윙 찾기

그래서 이번 겨울에는 내 스윙을 객관적으로 분석하고, 나에게 맞는 스윙을 연구해보기로 했다.

1. 드라이버 분석
최근 드라이버 샷은 꽤 잘 맞았다. 필드에서 원하는 드로우 구질이 나왔고, 거리도 200m를 기록했다. 하지만 여전히 만족스럽지 못했다. 비거리볼스피드가 부족했다. 스크린에서 측정한 헤드스피드는 약 42m/s, 볼스피드는 59~62m/s로 나왔고, 문제는 발사각이었다. 발사각이 19~25도로 높게 나와 탄도가 너무 높아 거리가 줄어들었다.

욕심이 생겼다. 볼스피드 65m/s, 비거리 250m를 목표로 삼고, 샤프트를 교체해 보기로 했다.

2. 샤프트 교체 후 변화
샤프트 교체 이후 결과는 예상 밖이었다. 헤드스피드는 40m/s로 떨어지고, 볼스피드는 57m/s까지 줄었다. 비싼 비용을 들였음에도 성과가 기대에 미치지 못해 실망스러웠다. 그래도 긍정적인 변화도 있었다.

  • 직진성이 좋아졌다.
  • 발사각이 2~3도 낮아졌다.
  • 스윙이 간결해졌다.

샤프트 자체는 나에게 맞는 것 같았지만, 성능 저하의 원인을 찾기 위해 인터넷, 서적, 유튜브를 뒤지며 연구를 시작했다.

 

 

드라이버 개선 연습의 핵심

수많은 연습법을 살펴보며 한 가지 공통점을 발견했다. 바로 오른쪽 어깨 고정힙턴이다.

  1. 오른쪽 어깨를 고정한 상태에서 드로우 구질이 나올 때까지 연습할 것.
  2. 이후 힙턴을 추가해 스윙의 완성도를 높일 것.

물론 지면반력이나 로테이션 같은 요소도 중요하겠지만, 이번 겨울에는 스윙과 힙턴이라는 두 가지에 집중하려 한다.

 

동계 훈련 목표

동계 훈련의 드라이버 목표는 명확하다.

  1. 정확한 스윙
    정타 확률을 높여 안정적인 드로우 구질을 만든다.
  2. 볼스피드 65m/s 달성
    비거리를 늘려 필드에서 230m 이상의 드라이버 샷을 날린다.

실패와 시행착오도 있겠지만, 꾸준히 노력해서 드라이버 하나만큼은 자신 있는 2025년을 만들고 싶다.

728x90
반응형
728x90
반응형

골프와 멘탈의 상관관계: 멘탈이 승부를 좌우한다


축구, 농구, 야구, 테니스, 달리기 등 수많은 스포츠 중에서 가장 몸을 덜 쓰는 운동이 무엇일까요? 아마도 골프일 것입니다. 골프는 다른 종목처럼 빠르게 달리거나 상대와 겨루어 득점을 올리는 운동이 아닙니다. 골프는 독특하게도 동반자와 같은 방향의 목표를 향해 함께 나아가는 유일한 스포츠입니다. 아마도 이 점 때문에 '신사의 스포츠'라 불리는지도 모릅니다.


하지만 골프를 치면서 방해 요소가 전혀 없을까요? 그렇지 않습니다. 골프에서 가장 큰 방해 요소는 다름 아닌 **'나 자신'**입니다.

공 뒤에서 목표를 바라보고 어드레스를 취한 순간, 특히 백스윙을 시작하기 직전, 머릿속에는 수많은 생각들이 떠오릅니다.

  • "목표를 제대로 정렬했나?"
  • "지금 클럽이 거리를 낼 수 있을까?"
  • "백스윙이 매끄럽게 될까?"
  • "혹시 슬라이스가 나면 어쩌지?"


이러한 고민들이 쏟아지는 가운데 스윙을 하고 나면, 때로는 "아~"라는 탄식이 절로 나오곤 합니다. 이런 상황이 반복되면 멘탈은 금세 무너지고, 다음 스윙에도 영향을 미치게 됩니다.

저 역시 필드에서 이런 경험을 자주 했습니다. 특히 드라이버 샷이 흔들릴 때는 심한 부담감 때문에 **입스(yips)**까지 겪은 적도 있었습니다. 결국 티샷을 드라이버 대신 우드나 유틸리티로 시작하곤 했죠.

이처럼 골프에서 멘탈 관리는 스윙만큼 중요한 핵심 요소입니다. 프로 골퍼뿐 아니라 아마추어 골퍼 역시 멘탈을 관리해야 더 나은 스코어를 기록할 수 있습니다. 그렇다면 어떻게 하면 멘탈을 단단히 다질 수 있을까요?


1. 골프는 멘탈 게임이다


골프를 배우면 누구나 공을 타깃 방향으로 보내는 스윙을 익힙니다. 모든 골퍼의 스윙폼은 다르지만, 한 가지 분명한 사실은 완벽한 스윙만이 좋은 성적을 보장하지는 않는다는 것입니다. 골프는 완벽한 스윙이 아닌, 멘탈이 좌우하는 스포츠입니다.

홀에 공을 넣는 과정에서 중요한 것은 스코어에 대한 집중력과 사고방식입니다. 멘탈이 뒷받침되지 않으면 어떤 스윙 기술도 빛을 발하기 어렵습니다.


2. 미스샷에 대한 마음가짐


골프는 실수의 게임임을 인정해야 합니다. 타이거 우즈, 벤 호건, 로리 매킬로이와 같은 전설적인 선수들도 미스샷을 합니다. 골프는 실수를 줄여나가는 과정일 뿐, 실수를 완전히 없앨 수는 없습니다.

미스샷을 한 뒤, 실망하거나 좌절감에 빠지시나요? 그렇다면 실수에 대한 기준을 낮춰보세요. 미스샷은 언제든 일어날 수 있습니다. 기준을 조정하면 감정 기복이 줄어들고, 다음 샷에 더 집중할 수 있습니다.

또한, 좋았던 샷을 오래 기억하는 것도 중요합니다. 좋은 샷의 감각을 강화하면 자신감을 키울 수 있고, 더 나은 샷으로 이어질 가능성이 높아집니다.


3. 나의 자신감을 점검하라


자신감은 골프 멘탈의 핵심입니다. 자신감이 낮은 골퍼는 긴장하고 실수를 두려워하며, 스윙 결과에 지나치게 집착합니다. 반대로, 자신감이 높은 골퍼는 도전을 즐기고, 실수를 겸허히 받아들이며 자신의 장점에 집중합니다.

자신감을 높이려면 나만의 스윙 스타일을 받아들이고, 긍정적인 마음으로 게임을 즐기는 자세가 필요합니다.


4. 골프를 즐겨라


골프는 결국 공놀이입니다. 게임이 끝난 뒤 스트레스를 받고 자신을 책망한다면, 본질에서 벗어난 것입니다. 욕심을 내려놓고 순수히 게임을 즐기세요.

멘탈이 약한 골퍼는 자신을 자책하거나 다른 사람의 시선을 의식하며 골프를 어렵게 만듭니다. 하지만 골프는 본질적으로 자기 자신과의 게임입니다. 내가 골프를 좋아하고, 이 순간을 즐긴다면 이미 훌륭한 골퍼가 된 것입니다.

마무리하며


골프는 스윙 기술만으로는 완성되지 않는 스포츠입니다. 멘탈을 다지고 자신감을 키우며, 실수를 인정하고 게임을 즐기는 마음가짐이 필요합니다. 결국, 골프는 목표를 향해 나아가는 과정에서 자신을 돌아보는 스포츠입니다. 당신은 지금 어떤 마음가짐으로 골프를 즐기고 있나요?




728x90
반응형

+ Recent posts