import yt_dlp
def download_video(url):
# yt-dlp 옵션 설정
ydl_opts = {
'outtmpl': '%(title)s.%(ext)s', # 파일 이름 형식 (제목과 확장자로 저장)
'format': 'best', # 가장 좋은 품질로 다운로드
}
# yt-dlp 다운로드 수행
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
if __name__ == "__main__":
url = input("다운로드할 URL을 입력하세요: ")
download_video(url)
from konlpy.tag import Kkma
# Kkma 객체 생성
kkma = Kkma()
# 복합어 예시
texts = [ '관리자유저ID', '관리자이름']
# 배열 원소 최대 갯수 5개로 가정
max_elements = 5
# 형태소 분석
for text in texts:
morphs = kkma.morphs(text)
# 형태소가 5개 미만일 경우 앞에 ,,, 을 추가
result = ','.join(morphs) # 형태소들을 ,로 연결
result = ',' * (max_elements - len(morphs)) + result # 부족한 부분 만큼 , 을 추가
print(result)
# generate.py BEGIN -------------
import mysql.connector
from jinja2 import Environment, FileSystemLoader
# MariaDB 접속 설정
def get_db_connection():
return mysql.connector.connect(
host="", # MariaDB 호스트
user="", # MariaDB 사용자
password="", # MariaDB 비밀번호
database="" # 사용할 데이터베이스
)
# 테이블 정보 가져오기
def get_table_comment(table_name):
connection = get_db_connection()
cursor = connection.cursor()
cursor.execute(f"""SELECT
TABLE_COMMENT
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME = '{table_name}'
""")
table_comment = cursor.fetchone()[0]
cursor.close()
connection.close()
return table_comment
# 테이블 컬럼 정보 가져오기
def get_table_columns(table_name):
connection = get_db_connection()
cursor = connection.cursor()
cursor.execute(f"""SELECT
column_name,
column_type,
column_comment
FROM
information_schema.columns
where 1=1
and table_name = '{table_name}' """)
columns = cursor.fetchall()
cursor.close()
connection.close()
return columns
# Jinja2 템플릿을 사용하여 Java 클래스를 생성
def generate_java_code(table_comment, columns, class_name):
# Jinja2 환경 설정
env = Environment(loader=FileSystemLoader("templates"))
# 템플릿 파일 로딩
template = env.get_template("entity_template2.java.j2")
# 테이블 컬럼에 맞는 데이터 생성
column_info = []
for column in columns:
column_info.append({
"name": to_camel_case(column[0]),
"type": "int" if "int" in column[1].lower()[0:3] else "String",
"comment": column[2],
"name2": column[0]
})
# 템플릿 렌더링
java_code = template.render(table_name="MBR_ACNT", table_comment=table_comment, class_name=class_name, columns=column_info)
# 생성된 Java 코드 출력
return java_code
# 파일로 저장
def save_java_file(java_code, class_name):
file_name = f"{class_name}.java"
with open(file_name, "w") as file:
file.write(java_code)
print(f"Java 파일이 생성되었습니다: {file_name}")
def to_camel_case(s):
# 문자열을 '_' 기준으로 분리
words = s.split('_')
# 첫 단어는 소문자로, 나머지 단어는 첫 글자만 대문자로 변환
return words[0].lower() + ''.join(word.capitalize() for word in words[1:])
# eg T_MBR_ACNT -> MbrAcnt
def to_class_name(s):
# 문자열을 'T_' 기준으로 분리
words = s.split('_')
return ''.join(word.capitalize() for word in words[1:])
def main():
table_name = "T_MY_TABLE"
class_name = to_class_name(table_name)
table_comment = get_table_comment(table_name) # 테이블 주석
columns = get_table_columns(table_name)
java_code = generate_java_code(table_comment, columns, class_name)
save_java_file(java_code,class_name)
if __name__ == "__main__":
main()
# generate,py END ----
package kwwa.lms.bo.mbrAcnt.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
// {{ table_name }} 테이블 : {{ table_comment }} 테이블
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class {{ class_name }} {
{% for column in columns %}
private {{ column.type }} {{ column.name }}; // {{ column.comment }} ({{ column.name2 }})
{%- endfor %}
}
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py