IT
파이썬(Python)과 Oracle 9i를 이용한 로그인 화면 구현 설명서 (예제 포함)
carnival6103
2025. 2. 2. 10:28
반응형
파이썬과 Oracle 9i 데이터베이스를 연동하여 간단한 로그인 화면을 구현하는 방법을 안내합니다.
Oracle 9i는 비교적 오래된 버전이지만, 학습 목적으로 사용하거나 특정 환경에서 필요할 수 있습니다.
주의: Oracle 9i는 현재 지원이 종료된 버전이므로 보안 취약점이 존재할 수 있습니다. 실제 서비스 환경에서는 최신 버전의 Oracle 데이터베이스를 사용하는 것을 권장합니다.
1. 필요한 준비물
- 파이썬(Python): 최신 버전의 파이썬이 설치되어 있어야 합니다. https://www.python.org/
- Oracle 9i 클라이언트: Oracle 9i 데이터베이스에 접속하기 위한 OCI (Oracle Call Interface) 라이브러리가 필요합니다.
- cx_Oracle: 파이썬에서 Oracle 데이터베이스를 사용하기 위한 라이브러리입니다. 다음 명령어로 설치할 수 있습니다.
Bash
pip install cx_Oracle
2. Oracle 9i 데이터베이스 설정
- Oracle 9i 서버에 접속하여 새로운 사용자 계정을 생성합니다. (예: login_user)
- login_user 계정에 로그인 권한을 부여합니다.
- login_user 계정으로 접속하여 사용자 정보를 저장할 테이블을 생성합니다. (예: users 테이블)
SQL
CREATE TABLE users (
id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
username VARCHAR2(255) UNIQUE NOT NULL,
password VARCHAR2(255) NOT NULL
);
3. 파이썬 코드 작성
다음은 파이썬 코드를 사용하여 로그인 화면을 구현하는 예제입니다.
Python
import tkinter as tk
import cx_Oracle
def login():
username = username_entry.get()
password = password_entry.get()
try:
# Oracle 연결
dsn_tns = cx_Oracle.makedsn("your_oracle_host", "your_oracle_port", "your_oracle_sid") # SID, Host, Port 정보 입력
conn = cx_Oracle.connect(user="login_user", password="your_oracle_password", dsn=dsn_tns) # 사용자 계정 정보 입력
cursor = conn.cursor()
# 사용자 정보 조회
sql = "SELECT * FROM users WHERE username = :username AND password = :password"
cursor.execute(sql, username=username, password=password)
result = cursor.fetchone()
if result:
login_success()
else:
login_failed()
conn.close()
except cx_Oracle.Error as err:
error, = err.args
print(f"Oracle 연결 오류: {error.message}")
def login_success():
result_label.config(text="로그인 성공!")
def login_failed():
result_label.config(text="로그인 실패!")
# Tkinter 창 생성
window = tk.Tk()
window.title("로그인 화면")
# 레이블 및 입력 필드 생성
username_label = tk.Label(window, text="아이디:")
username_label.grid(row=0, column=0)
username_entry = tk.Entry(window)
username_entry.grid(row=0, column=1)
password_label = tk.Label(window, text="비밀번호:")
password_label.grid(row=1, column=0)
password_entry = tk.Entry(window, show="*")
password_entry.grid(row=1, column=1)
# 로그인 버튼 생성
login_button = tk.Button(window, text="로그인", command=login)
login_button.grid(row=2, column=0, columnspan=2)
# 결과 메시지 레이블 생성
result_label = tk.Label(window, text="")
result_label.grid(row=3, column=0, columnspan=2)
window.mainloop()
4. 코드 실행 및 테스트
- 위 파이썬 코드를 실행합니다.
- 로그인 화면이 나타나면 Oracle 데이터베이스에 등록된 사용자 이름과 비밀번호를 입력합니다.
- "로그인" 버튼을 클릭하여 로그인을 시도합니다.
- 로그인 성공 또는 실패 메시지가 화면에 표시됩니다.
5. 추가 기능
- 비밀번호 암호화: 비밀번호를 데이터베이스에 저장할 때 암호화하여 보안을 강화할 수 있습니다.
- 아이디/비밀번호 찾기 기능: 아이디 또는 비밀번호를 잊었을 경우 이를 찾을 수 있는 기능을 추가할 수 있습니다.
- 회원가입 기능: 새로운 사용자가 회원가입을 할 수 있는 기능을 추가할 수 있습니다.
기본적인 로그인 화면 구현 방법을 설명을 드렸으며, 필요에 따라 다양한 기능을 추가하여 더욱 완성도 높은 로그인 시스템을 구축할 수 있습니다.
반응형