사용툴 분석 13

Union이 뭐고 왜 사용하는가?

Union은 Python의 typing 모듈에서 제공하는 타입 어노테이션으로, 변수나 함수의 매개변수, 반환값이 여러 타입 중 하나일 수 있음을 나타낼 때 사용됩니다. Union을 통해 코드에서 여러 타입을 허용해야 할 때 가독성을 높이고, 타입 안정성을 강화할 수 있습니다.Union의 주요 특징다양한 타입 허용: Union은 타입을 제한하면서도 여러 타입을 허용할 수 있어, 함수나 클래스가 다양한 입력을 유연하게 처리할 수 있도록 해줍니다. 예를 들어, Union[int, str]는 해당 변수나 매개변수가 int 또는 str 타입일 수 있음을 나타냅니다.타입 안전성 강화: Union을 사용하면 코드 내에서 여러 타입의 데이터를 허용하면서도 각 타입에 맞는 처리를 할 수 있어, 잘못된 타입 사용을 방지할..

사용툴 분석 2024.11.08

Type Hinting과 Pydantic 차이

Pydantic과 타입 힌팅(type hinting)은 모두 코드에서 데이터 타입을 명시하는 데 도움을 주지만, 그 목적과 기능은 서로 다릅니다.1. 타입 힌팅 (Type Hinting)타입 힌팅은 코드에서 변수, 함수 매개변수, 반환값 등에 타입 정보를 명시하는 기능입니다. Python에서는 타입 힌팅을 통해 코드 가독성과 안정성을 높일 수 있지만, 실행 시에 실제로 타입 검사를 수행하지는 않습니다. 즉, 타입 힌팅은 개발자와 IDE에게 타입 정보를 제공할 뿐이며, 코드 실행 중에 데이터 타입을 강제하지 않습니다.예시: 타입 힌팅def add_numbers(a: int, b: int) -> int: return a + b# 잘못된 타입을 넣어도 에러가 발생하지 않음 (실행 시점에서 검증이 이루어지..

사용툴 분석 2024.11.08

피클(pkl)과 json의 차이.

배경메타 데이터를 저장하는 과정에서 어느 순간 GPT가 피클 저장방식을 권유했다.그래서 메타 데이터를 저장하는 과정에서 피클과 json 저장방식을 비교하고 차이점을 도출한다.피클(Pickle) vs JSON 차이점 비교특징피클(Pickle)JSON언어 지원Python 전용다수의 언어에서 사용 가능 (Python, JavaScript 등)자료형 유지Python 객체의 모든 자료형을 유지기본 자료형만 지원 (str, int, list, dict 등)커스텀 객체 지원클래스 인스턴스, 함수 등 복잡한 객체도 직렬화 가능지원하지 않음 (직접 처리 필요)직렬화 속도바이너리(b) 형태라 상대적으로 빠름텍스트 형태라 상대적으로 느림파일 크기피클은 객체 구조 전체를 직렬화하므로 더 클 수 있음텍스트 형식으로 상대적으로 ..

사용툴 분석 2024.10.03

RabbitMQ로 우선순위 큐 실제 적용해보자

RabbitMQ는 AMQP (Advanced Message Queuing Protocol) 기반의 메시지 브로커로, 다양한 메시지 큐 기능을 제공합니다. Python에서 RabbitMQ를 사용하는 일반적인 방법은 pika 라이브러리를 사용하는 것입니다. 이를 사용하면 메시지 발행(Publish), 큐 소비(Consume), 교환(Exchange), 라우팅(Routing), 바인딩(Binding) 등을 수행할 수 있다.다음은 RabbitMQ의 다양한 기능을 pika 라이브러리를 통해 사용하는 방법에 대한 설명과 예제1. pika 라이브러리 설치먼저 pika를 설치해야 함:pip install pika2. RabbitMQ 연결 설정 및 채널 생성RabbitMQ에 연결하고 채널을 생성하는 기본 방법입니다. l..

사용툴 분석 2024.10.02

메타데이터 활용한 코딩들

배경수치 데이터 만으론 설명되지 않는게 있다. 예를 들어 평균 연봉을 계산할때는, 일괄적으로 순위를 내는게 아니라. 직군별로 묶어서 계산해야 공정하다. 그럴때 내용 외에 메타데이터를 섞어주면 좋다.그렇게다면 모든 요소를 DB에 저장하는 방식도 있지 않을까? -> 아주 대용량이 아니라면 따로 DB 서버를 유지하는건 비효율적인것 같다. 여기에 더해서 메타데이터를 활용하면 좀 더 복잡한 구조도 가볍게 저장 가능하다. DB라면 구조가 복잡해 질수록 테이블이 늘어나고, Join 연산이 많아져 쿼리 비용이 늘어날꺼다.다음은 메타데이터를 활용하면 좋은 예시이다.예시: 문서 관리 시스템에서 메타데이터를 활용한 데이터 저장시나리오:문서 관리 시스템에서 여러 문서 파일을 관리하고, 문서에 대한 정보(예: 제목, 작성자, ..

사용툴 분석 2024.10.02

TypedDict의 개념과 langsmith

1. TypedDict의 개념TypedDict는 Python 3.8에서 도입된 타입 힌팅 도구로, 딕셔너리에서 키와 값의 타입을 명시적으로 정의할 수 있게 해줍니다. 이는 런타임에서는 일반 딕셔너리처럼 동작하지만, 정적 타입 검사기(예: mypy, pyright)에서 키-값 쌍의 타입 일치 여부를 미리 검사할 수 있는 기능을 제공합니다.주요 특징:딕셔너리에서 각 필드의 타입을 명시적으로 정의.타입 검사기를 통해 타입 불일치를 미리 확인.선택적 필드와 필수 필드를 구분할 수 있음.코드의 가독성과 유지보수성 향상.예시:from typing import TypedDict, NotRequired# Person 딕셔너리를 정의class Person(TypedDict): name: str age: Not..

사용툴 분석 2024.09.08

VScode에 공짜 로컬 GPT 연결하기(continue)

continue가 뭔데? 씹덕아복붙 필요없는 GPT (ctr +L)공식 문서 이용 하이퀄리티 답변 생성코딩중 오류나오는 즉시 판단(ctr + 위방향키 +R) 초기 코드 생성 (ctr +I)주석대로 코드 생성로컬 gpt라고는 했지만 AI를 조수로 두고 코딩을 같이하는 툴이라고 보면된다.continue에 대한 더 많은 정보는 https://docs.continue.dev/intro미리 할것ollama 설치https://ollama.com/downloadllm GPU 기반으로 실행하게 CUDA 설치( CPU 기반 실행보다 빠름)(윈도우에 CUDA 설치하기 https://teang1995.tistory.com/17)과정vscode 접속extension or 확장 탭 클릭continue 검색 후 다운continu..

사용툴 분석 2024.08.02

개발 환경과 유용한 툴 설명

개발 환경과 툴 설명로컬 IDEVS코드 내 LLM 활용코파일럿: GitHub에서 제공하는 AI 기반 코드 작성 도구로, 코드 자동 완성과 코드 제안을 통해 개발 생산성을 높입니다.Cursor: 코드 편집 시 문맥을 이해하여 코드 내비게이션, 참조 검색 등을 쉽게 할 수 있도록 도와주는 도구입니다.VS코드 내 공유 작업공동공유코딩: 실시간으로 여러 명이 동시에 같은 코드베이스에서 작업할 수 있게 하여 협업을 강화합니다.Live Share: 다른 사용자가 원격으로 VS코드 세션에 접속하여 코드를 보고 편집할 수 있게 하여 원격 협업과 코드 리뷰를 가능하게 합니다.사용 모듈의 문법 변경 시Mention: 변경된 문법을 코드 내에서 언급하고 공식 문서에 링크를 연결하여 팀원들이 최신 정보를 쉽게 접근할 수 있게..

사용툴 분석 2024.07.26

PsExec 이란?

PsExec 개념PsExec는 원격 시스템에서 명령을 실행하기 위한 유틸리티로, 다양한 시스템 관리 작업을 자동화하고 원격에서 수행할 수 있도록 도와줍니다. PsExec의 작동 원리초기 연결 설정:사용자가 PsExec 명령을 실행하면, PsExec는 먼저 네트워크를 통해 원격 시스템에 연결을 시도합니다.이 과정에서 사용자 인증을 수행하여 원격 시스템에 접속할 수 있는 권한을 확인합니다.PsExec 서비스 설치:PsExec는 원격 시스템에 접속한 후, 임시로 PsExec 서비스를 설치합니다.이 서비스는 PSEXESVC.exe라는 이름으로 원격 시스템의 C:\Windows 디렉토리에 복사됩니다.PsExec 서비스는 PsExec 명령이 실행되는 동안에만 존재하며, 작업이 완료되면 자동으로 제거됩니다.명령 실행..

사용툴 분석 2024.07.17

리눅스 폴더 구조

배경airflow 컨테이너(리눅스구조) 내부에 여러 폴더들이 있는데 각각 무슨역할을 하는지 궁금하다.아래는 Linux 시스템의 주요 디렉토리에 일반적으로 포함될 수 있는 파일 유형과 몇 가지 예시 파일들입니다. 이들은 각 디렉토리의 용도와 역할을 이해하는 데 도움이 될 것입니다.폴더 별 설명/bin-Binary(실행파일)용도: 이 디렉토리에는 사용자와 시스템이 사용하는 필수 실행 파일이 포함되어 있습니다. 예를 들어, ls, cp 등의 기본적인 시스템 명령어가 여기에 있습니다.예시:ls - 디렉토리 내용을 리스트업.cp - 파일 복사.mv - 파일 이동. /boot - Boot용도: 부팅에 필요한 파일들, 예를 들어 커널, 부트 로더 설정 파일 등이 저장됩니다.예시:vmlinuz - 부팅에 사용되는 Li..

사용툴 분석 2024.07.10