본문 바로가기
반응형

Python130

BERT 모델을 이용해서 이상 문장 학습 및 탐지하기 BERT 모델이 비밀번호 관련 문장을 학습하여 탐지할 수 있도록 설계하려면, 먼저 데이터셋을 준비하고, BERT 모델을 미세 조정(Fine-tuning)해야 합니다. 이 과정은 다음과 같이 구성됩니다:1. 데이터 준비먼저 비밀번호 관련 문장이 포함된 데이터셋이 필요합니다. 데이터셋은 "비밀번호가 포함된 문장"과 "비밀번호가 없는 문장"을 두 클래스로 나누어 구성해야 합니다.예시 데이터셋 (CSV 형식 예): 문장값"The password is 1234."1"This is just a normal sentence."0"비밀번호는 qwerty입니다."1"오늘 날씨가 참 좋네요."02. Hugging Face를 사용한 BERT 모델 Fine-tuning아래 코드는 BERT 모델을 이용해 문장을 분류할 수 있.. 2025. 4. 16.
Python - 내장 변수 관리 locals() locals() 함수는 현재 로컬 심볼 테이블을 나타내는 딕셔너리를 반환환다.이 딕셔너리는 함수 내에서 정의된 변수와 그 값을 포함합니다. locals()는 주로 디버깅이나 동적으로 로컬 변수를 조작할 때 유용하다.1. 로컬 변수 조회:locals()를 사용하면 함수 내에서 정의된 모든 로컬 변수를 쉽게 조회할 수 있습니다.2. 로컬 변수 수정:Python 3.13부터 locals()로 반환된 딕셔너리를 수정하면 실제 로컬 변수도 업데이트def update_locals(): test = 'hello' local_vars = locals() local_vars['test'] = 'world' print(test) # 출력: worldupdate_locals()CLI에서 현재 선언된 .. 2025. 4. 9.
Python - 글로벌 인터프리터 락(GIL) 제거를 위한 주요 기술 Python에서 글로벌 인터프리터 락(GIL) 은 동시성을 없애서 충돌이 없도록 하여, 쉽게 코딩할 수 있었지만, 그만큼 성능적으로 특히 멀티 코어에서 약점을 보였다. 하여 Python 3.12버전부터 GIL 없이 실행하는 방법은 주로 PEP 703에서 제안된 여러 기술을 통해 가능하게 되었는데, GIL은 CPython에서 여러 스레드가 동시에 Python 코드를 실행하는 것을 방지하는 메커니즘으로, 멀티코어 CPU를 효율적으로 활용하지 못하던 부분이 어떻게 가능하게 된 것일까? 관련하여 알아보도록 하자.GIL 제거를 위한 주요 기술멀티스레드에서 가장 큰 문제는 바로 변수 접근이라고 할 수 있다. 따라서 이를 Python에서는 객체가 참조되는지를 카운트하는 방식을 채택했다고 보면된다. 즉 삭제해도 되는 .. 2025. 4. 9.
FastAPI - Docs, Redoc 비활성화 하기 오늘은 간단한 주제인데, FastAPI를 이용해서 API Interface 확인을 위해서 Docs, Redoc많이 활성화해서 사용하는데, 실제 보안적으로 생각해보면, 내 인터페이스 전체를 노출하는건 상당한 위험이 될 수 있다.API 호출할 수 있는 파라메터를 전부 제공해주기 때문에, 다양한 공격 시나리오 및 테스트할 수 있는 루트를 제공하는 것이나 마찬가지가 된다. 따라서 대외적으로 API 서비스를 하지 않는 거라면 API 상세를 없애는게 바람직하다. 비활성화하는 방법은 간단하다.FastAPI app 생성 시점에 docs_url과 redoc_url 를 생성하지 않도록 하면된다.app = FastAPI(docs_url=None, redoc_url=None)그럼 아래와 같이 기존 Docs, Redoc 주소가.. 2025. 3. 28.
Python - (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') INSERT (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') 이 오류의 정확안 의미는 간단하다.내가 행하는 행위중 컬럼 하나 혹은 그 이상이 잘못되었다는 것이다.이 때 확인해보기 좋은것은 당시 입력값을 보여주는데, 하나씩 값을 확인해보면, 분명 잘못된 컬럼 값이 있음을 알 수 있을 것이다.주의하게 봐야 하는것으로 TSQL 문으로 넣을 때 규칙을 알고 있으면 좋은데 - 기본적으로 컬럼 과 입력값 을 쌍따옴표로 구분하기 때문에 이것이 잘 지켜지는지 보면 좋다.필자가 오류 내용 찾았던 값으로 msg 컬럼에 값을 넣는데, '(따옴표)으로 시작해야 하는데 입력값에 문제가 있다는 것을 알게 되었다.'msg': (False, '', '안녕이렇.. 2025. 1. 13.
Python - uv 패키지, 프로젝트 관리자 설치 및 사용법 오늘은 요즘 핫하다고 할 수 있는 uv를 이용해서 설치와 기본 사용법에 대해서 설명해보고자 한다.uv는 Python 패키지와 프로젝트를 관리할 수 있는데, pip 의 차기 버전이라고 할 수 있을 정도로 빠른 속도와 관리의 편의성을 제공한다.pip의 기존 문제점이라고 하기는 어렵지만, pip는 쉽게 사용할 수 있는 장점이 있는 반면에 프로젝트별 버전관리의 불편함과 느린 속도가 큰 문제점이다. uv는 프로젝트 관리와 패키지 관리를 일원화 하여 편의성을 높이고,(npm 같은 느낌)패키지를 설치하는데도 기존 pip보다 빠르게 구성되어 많은 최적화가 되어진 모습을 보여준다.또 기존에 Python의 버전 설치에 대한 부분도 함께 해결된다는 점은 큰 장점이라고 생각되며, 패키지 관리 역시 요즘 통합되고 있는 pypr.. 2025. 1. 8.
Python - "datetime" 클래스의 "utcnow" 메서드는 더 이상 사용되지 않습니다. Python 3.12 버전부터 경고가 나타나는데 utcnow가 사라진다는 것이다.Python 기본적인 타임 포맷은 타임값이 들어가지 않는 방식을 채택하고 있었다.>>> from datetime import datetime, timezone>>>>>>>>> print(datetime.utcnow())2024-12-10 00:52:07.010333>>>>>> print(datetime.now(timezone.utc))2024-12-10 00:52:07.550513+00:00그리고 타임값은 timezone을 사용할 때만 추가되었다.Python에서는 이 부분이 혼선을 초래한다고 판단하여 utcnow를 제거하고, now를 사용하도록 권장하고 있는 것으로 보인다.하지만 이는 과거 코드들, utcnow 를 사용하여 .. 2024. 12. 10.
Python 3.12 - 주요 내용과 예제로 살펴보기 Python 3.12의 주요 변경 사항을 요약하면 다음과 같다새로운 기능 및 개선 사항1. 유연한 f-string 구문 분석:이제 f-string 내부에서 더 많은 표현식을 사용할 수 있습니다. 여러 줄 표현식, 주석, 백슬래시, 유니코드 이스케이프 시퀀스 등을 포함할 수 있게되었다. #아래와 백슬래쉬를 쉽게 사용이 가능하게 되었다.>>> a = ["hello", "world"]>>> f"{'\n'.join(a)}"'hello\nworld'2. 타입 주석 개선:제네릭 클래스와 함수에 대한 새로운 타입 주석 구문이 도입되었다 (PEP 695)이는 제네릭 타입을 사용하는 구문을 더 직관적이고 명확하게 만들어, Python 개발자들이 타입 힌팅을 더 쉽게 사용할 수 있도록 하는 것을 목표로 한다.# 기존 방식.. 2024. 11. 11.
Python - 3.12 Datetime 변화( 메서드는 더 이상 사용되지 않습니다.) 3.12 Datetime 버전에서 Datetime이 큰 변화가 있을 예정이다.Python 3.12에서 datetime 관련 변환에 대한 주요 내용은 다음과 같다.datetime.utcfromtimestamp()와 datetime.datetime.utcnow()가 deprecated되어 향후 버전에서 제거될 예정이다. utcnow() 및 utcfromtimestamp() 메서드의 사용 중단:datetime.datetime의 utcnow()와 utcfromtimestamp() 메서드는 더 이상 권장되지 않으며, 향후 버전에서 제거될 예정이다. 대신, UTC 시간대를 나타내는 객체를 사용하여 now()와 fromtimestamp() 메서드를 호출할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 좋.. 2024. 11. 11.
반응형