갑분 왠 개발일기냐라고 한다면, 2년 6개월 정도의 ai 개발 (이라고 쓰고 잡부라고 쓰는) 경력을 가지고 있음에도 불구하고, 이번 이직을 통해서 새로운 회사에서 새로운 프로젝트를 경험하게 됨에 따라 한없이 부족하고 또 부족한 실력이었음을 (알고있었음) 다시 한 번
주니어긴 하지만 초년따리도 아니고 항상 동기/비동기 함수에 대해서 들어본 바는 있지만 비동기 함수를 구현했을 때 제대로 이해하지 않고 그냥 비동기가 필요하니까~ 하고 코드 복붙 했던 나를 까면서 이번에 제대로 동기, 비동기 함수를 이해하고 구현한 코드를 이해하고 그리고
python에서 리소스를 관리하고 사용할 때 사용원하는 타이밍에 정확하게 리소스를 할당하고 제공함파일, 네트워크 연결, 데이터베이스 연결 등과 같은 리소스를 사용하는 동안 리소스를 열고 닫는 작업을 보장함즉, 리소스를 안전하게 열고 닫는 것이 주된 사용 사례일단 파일을
python으로 프로그래밍을 하다보면 심심찮게 \*args 와 \*\*kwargs를 볼 수 있다.\*args와 \*\*kwargs 는 python에서 함수에 가변 인자를 전달할 때 사용하는 특별한 매개변수이다.사실 여기서 중요한 것은 \* 라고 한다. \*var, \*
이터레이터(iterator)는 값을 차례대로 꺼낼 수 있는 객체(object) 이다.여기서 잠깐 python에서는 iterable 과 iterator 가 있다.반복 가능한 객체를 말한다.대표적으로 iterable한 type은 list, dictionary, set, s
먼저 generator에 대해 작성하기에 앞서, 참고해서 공부하고 있는 사이트에서 이터레이터를 언급하고 있다.프로그래머가 컨테이너, 특히 목록을 탐색할 수 있게 해주는 객체이터레이터는 순회를 수행하고 컨테이너의 데이터 요소에 대한 엑세스는 제공하지만, 반복(iterat
python의 데코레이터는 다른 함수를 수정하거나 확장하기 위한 도구이다.함수를 인자로 받아 해당 함수를 수정하거나 래핑하는 함수로, 함수의 기능을 확장/수정/ 함수 호출 전후에 추가 작업을 수행할 수 있도록 한다.여기서 'myDecorator' 함수가 다른 함수를 인
1. 글을 쓰게 된 배경 이전 회사에서는 AI 기반 서비스 api를 만들 때 구조를 혼자 생각하고, 혼자서 코드 짜고 그냥 돌아가면 굿. 그리고 코드 리뷰 해 줄 사람도 없어서 그냥 오류나면 예외처리하거나 그나마 추후에 들어온 팀원이랑 머리 싸매면서 수정해왔다. 이
Typing 모듈은 python 3.5 부터 도입된 모듈로 타입 힌트(type hint)를 제공하는데 사용된다.이 모듈은 함수의 매개변수와 반환 값, 변수, 클래스 등의 타입을 명시적으로 지정해 코드의 가독성을 향상시키고 타입 검사를 수행할 수 있게 해준다.Any :
BaseModel은 Pydantic 라이브러리에서 제공하는 기본 모델 클래스이 클래스를 상속하여 데이터 모델을 정의하고, 해당 모델의 필드와 유효성 검사 규칙을 설정할 수 있다.BaseModel을 사용하면 데이터 모델을 정의하고, 해당 모델의 객체를 생성할 때 유효성을
Pydantic 라이브러리에서 제공되는 구성 옵션을 딕셔너리 형태로 지정할 수 있는 클래스이 클래스를 사용해 모델의 구성 옵션을 설정하고 수정한다.일반적으로 Pydantic 모델은 클래스 변수로 'Config' 클래스를 사용하여 구성 옵션을 지정한다.경우에 따라 프로그
issubclass는 python에서 사용되는 내장함수 중 하나로, 클래스가 다른 클래스의 서브 클래스인지 여부를 확인할 때 사용한다.이 함수는 두 개의 인수를 취하는데, 첫 번째 인수는 클래스 자체이고, 두 번째 인수는 확인하려는 클래스(슈퍼 클래스) 이다.issub
Pydantic에서 사용되는 필드 초기화에 대한 옵션 중 하나이다.이 옵션은 필드에 기본값을 제공하는 방법 중 하나이다.Pydantic 모델에서 필드를 정의할 때, 필드의 기본값을 설정할 수 있는데 위의 예시에서는 'some_field' 필드의 기본값으로 'defula
데이터 유효성 검사 및 직렬화를 위한 python의 모델 검증 라이브러리데이터의 유효성을 검사하고 모델을 만들기 위해 pydantic.BaseModel을 사용한다. BaseModel을 사용해 필드를 정의하고 해당 필드에 대한 유효성 검사를 수행한다. pydantic에서
python의 기본 로깅(logging)로킹은 프로그램 실행 중에 발생하는 이벤트를 기록하고, 그 기록을 추적하고 분석하는 프로세스이다.로깅을 사용하면 프로그램의 상태를 확인하고 오류를 디버그하는데 도움이 된다python의 기본 로깅(logging) 모듈을 사용해 로거
aiohttp는 비동기 웹 서버 및 클라이언트를 개발하기 위한 python 라이브러리asyncio를 기반으로 한 비동기 HTTP 클라이언트 및 서버 제공aiohttp 라이브러리에서 제공하는 클라이언트 세션 객체ClientSession 은 HTTP 요청을 수행하는데 사용
csv 파일은 다양한 형식으로 작성될 수 있고, 이를 자동으로 감지하고 해석하는 것은 종종 어려울 수 있다.csv.Sniffer().sniff() 메서드는 파일 객체('file') 의 내용을 읽어와 csv 형식을 자동으로 감지하고 추정한다.주어진 파일 내용을 분석하여
Python으로 작성된 PDF 데이터 추출 도구PDF 파일에서 텍스트, 표, 이미지 등 다양한 유형의 데이터를 추출한다.텍스트 추출 : pdfplumber는 PDF파일에서 텍스트를 추출하는데 사용된다. 이를 통해 문서의 내용을 검색하거나 분석한다.표 추출 : PDF 파
엔드포인트는 웹 API에서 클라이언트가 서버와 상호작용할 수 있는 특정한 URL을 말한다.일반적으로 이런 URL은 서버에서 특정한 리소스나 기능을 가르키고, 클라이언트는 이를 통해 서버에 요청을 보내거나 데이터를 받아올 수 있다.엔드포인트 URL일반적으로 '/'로 시작
FastAPI - APIRouter FastAPI 애플리케이션에서 API 엔드포인트를 구성하는데 사용되는 클래스 해당 클래스를 사용해 코드를 논리적으로 그룹화하고 모델화해서 애플리케이션을 쉽게 유지 보수 할 수 있다. 여러 개의 APIRouter 인스턴스를 생성해서
python에서 어떤 것을 객체로 표현할 때, 이 객체들의 데이터 타입으로 나눠보면 문자(string), 숫자(int/float), 불리언(boolean), 리스트(List), 딕셔너리(Dictionary) 등 다양하다.그리고 이러한 것에 이름을 지어줄 수 있다.함수도
개발을 하다 보니, 자주 쓰는 모듈의 객체가 정의된 클래스들을 보면언더스코어('\_') 와 더블 언더스코어('\_\_') 가 메소드 명 앞에 쓰이는 것을 볼 수 있다. 이 차이를 좀 제대로 정리하고 싶어서 기록한다.언더스코어를 사용한 변수는 프로그래머에게 private
python에서 제공하는 logging로그는 중요도에 따라 서로 다른 레벨을 가지게 되고,이 중요도에 따라 로그를 관리할 수 있다. https://docs.python.org/3.7/howto/logging.html로그의 각 레벨과 설명을 간략하게 정리해보자면
python logging basic에 이어서 로깅 시스템에 대해 알아보자.https://velog.io/@heyggun/python-logging-basic-logging-level-log-%EB%82%A8%EA%B8%B0%EB%8A%94-%EB%B2%95-
python 클래스 내부에 정의된 메소드가 클래스 레벨에서 호출될 수 있도록 만들어주는 형태의 메소드클래스 메소드는 인스턴스에 의존하지 않고 클래스 자체에 대한 작업을 수행하는데 유용하다. 보통 클래스 메소드는 첫 번째 인자로 cls 를 받는데,이 cls 인자는 해당
python SQLAlchemy python 언어를 위한 SQL 툴킷 및 ORM(Obejct-Relational Mapping) 라이브러리 데이터베이스와의 상호작용을 쉽게 만들어주고, SQL 쿼리를 python 코드로 작성할 수 있게 도와줌 데이터베이스를 객체 지향
asyncio 모듈의 current_task() 함수는 현재 실행 중인 코루틴의 Task 객체를 반환한다. 이 함수는 비동기 프로그래밍에서 현재 실행 중인 태스크를 식별하고 관리하는데 사용된다.태스크 식별 : 여러 개의 코루틴이 동시에 실행되는 경우, 어떤 코루틴이 현
저번에 python의 @classmethod를 보고 classmethod에 대한 글을 포스팅 한 바 있다.python classmethodhttps://velog.io/@heyggun/python-classmethod그 때 이해했다고 생각했는데, 이번에 서비스