Python 43

Python - asser

assert란조건을 테스트하는 디버깅 문: 운영환경에서는 사용 하지 않음조건이 참이면 정상적으로 실행이 계속됩니다.거짓이면 AssertionError가 발생✔️ 사용 사례함수 인수 또는 출력이 유효한지 확인프로그램을 실행하는 동안 특정 조건이 사실인지 확인문장 구조✔️ 기본 문장assert condition ✔️ 메시지 포함assert condition, message예제 코드✔️ 조건이 참이면 정상적으로 실행x = 10assert x > 0, "x must be positive" ✔️ 조건이 거짓이면 AssertionError 발생x = -10assert x > 0, "x must be positive"실행 결과Traceback (most recent call last): File "assert.py..

Python/중급 2024.10.22

Python - 비동기 프로그램(asyncio)

비동기 프로그램 이란동기 vs 비동기 프로그래밍동기 프로그래밍: 작업이 순차적으로 실행되며, 각 작업이 완료될 때까지 다음 작업을 기다림비동기 프로그래밍: 작업을 시작한 후 완료를 기다리지 않고 다른 작업을 수행할 수 있음동기 프로그래밍 예제import timedef sync_task(name, duration): print(f"{name} 작업 시작") time.sleep(duration) # 작업 시뮬레이션 print(f"{name} 작업 완료")def main(): start = time.time() sync_task("Task 1", 2) sync_task("Task 2", 3) sync_task("Task 3", 1) end = time.time() ..

Python/중급 2024.07.15

Python - Jinja2(템플릿 엔진)

템플릿 엔진(Template Engine) 이란?템플릿 엔진은 정적인 HTML에 동적인 데이터를 결합하여 웹 페이지를 생성합니다. 템플릿 파일에 데이터를 삽입하여 동적인 HTML을 생성합니다.Jinja2 란Python에서 가장 많이 사용되는 템플릿 엔진입니다. 마이크로 웹 프레임워크인 Flask에서 채택되어 사용되고 있습니다.Jinja2 설치pip install Jinja2사용 예시기본 예시:from jinja2 import Template# 템플릿template = Template('Hello, {{ name }}!')# 데이터data = {'name': 'John'}# 렌더링: 템플릿에 데이터를 삽입하여 최종 HTML 생성result = template.render(data)print(result) ..

Python/여러가지 2024.04.03

Python - SQLAlchemy

SQLAlchemy 란?SQLAlchemy는 Python에서 데이터베이스와 상호작용합니다.데이터베이스와 애플리케이션을 연결SQL 쿼리를 생성 및 실행ORM(Object-Relational Mapping - 데이터베이스 스키마와 Python 객체를 매핑) 기능 제공SQL문 없이 Python 객체로 데이터를 조작또한 다양한 데이터베이스 엔진(SQLite, PostgreSQL, MySQL, Oracle 등)을 지원 - 이식성이 높음ORM(Object-Relational Mapping) 이란?ORM은 객체 지향 프로그래밍 언어에서 사용하는 객체와 관계형 데이터베이스의 데이터(테이블의 행과 열)를 매핑해주는 기술입니다. 프로그래밍 언어의 객체와 데이터베이스의 데이터를 1대1로 연결시켜줍니다.예를 들어, 프로그램에..

Python/여러가지 2024.04.02

Python - 공공데이터 포털 Open API 사용하기

openAPI 신청공공데이터 포털- https://www.data.go.kr- 회원가입 : https://www.data.go.kr/uim/mss/socialMberInfoStep1FormView.do- 검색어 : 대기오염 - openAPI -> 한국환경공단_에어코리아_대기오염정보 -> 상세보기 - 참고문서 download - 활용신청 - 활용목적 : 웹사이트 개발 -> 테스트 웹사이트 개발 - 동의 -> 활용신청 - 마이페이지 - 한국환경공단_에어코리아_대기오염정보 - End Point : http://apis.data.go.kr/B552584/ArpltnInforInqireSvc - 일반 인증키(Encoding) ..

Python/여러가지 2024.03.27

Python - JSON(JavaScript Object Notation)

JSON 이란JSON은 간결하고 가벼운 데이터 교환 형식입니다.사람이 읽고 쓰기 쉬우며, 기계가 구문 분석하고 생성하기 쉽습니다.2001년 Douglas Crockford에 의해 처음 지정되었습니다.당초에는 JavaScript 프로그래밍 언어의 하위 집합으로 설계되었지만, 현재는 언어에 독립적인 데이터 형식으로 사용됩니다.사용 사례웹 애플리케이션에서 브라우저와 서버 간에 데이터를 전송하는 데 널리 사용됩니다.다양한 프로그래밍 언어에서 JSON 데이터를 쉽게 읽고 쓸 수 있습니다.REST API에서 데이터를 교환하는 표준 형식으로 자리 잡았습니다.NoSQL 데이터베이스(MongoDB 등)에서 데이터를 저장하는 형식으로 활용됩니다.구성 파일, 로그 파일 등의 표현에도 사용될 수 있습니다.다른 데이터 형식(X..

Python/여러가지 2024.03.23

Python - 가상환경(venv)

가상환경 (Virtual Environment) 이란가상환경이란 파이썬 인터프리터, 라이브러리, 스크립트 등이 포함된 독립된 파이썬 실행 환경을 의미하며 프로젝트마다 서로 다른 버전의 패키지가 필요 때 가상환경으로 분리하여 관리할 수 있습니다.일반적으로 새로운 프로젝트를 시작할 때마다 가상환경을 생성하여 작업합니다.장점패키지 버전 충돌 방지격리된 실행 환경 제공프로젝트 의존성 관리 용이재현 가능한 개발 환경 구축'venv' 모듈Python 3.3 버전부터 기본적으로 제공되는 'venv' 모듈을 사용하여 가상환경을 생성할 수 있습니다.가상환경 생성터미널이나 명령 프롬프트에서 실행합니다.# 가상 환경을 생성하기 원하는 디렉토리로 이동python -m venv myenv'myenv'는 가상환경의 이름으로 원하..

Python/여러가지 2024.03.23

Python - 비밀번호 해싱

비밀번호 해싱 (Password Hashing)비밀번호를 데이터베이스(또는 다른 저장매체)에 저장할 때 평문으로 저장하면 보안에 취약하므로 해싱(또는 암호화)하는 것이 일반적입니다.비밀번호 해싱은 일반 텍스트 비밀번호를 가져와 해시 함수를 적용하고 결과 해시 값을 저장합니다.해시 함수(Hash Function)해시 함수는 임의의 길이의 입력 데이터를 고정된 길이의 유일한 값으로 변환하는 단방향 함수입니다. 참고로 변환된 고정 길이의 유일한 값은 해시 값입니다.속성설명결정적동일한 입력은 항상 동일한 결과를 낳습니다.고정 크기입력 크기에 관계없이 출력 길이가 고정됩니다.빠른 계산이 함수는 해시 값을 빠르게 생성해야 합니다.사전 이미지 저항해시 함수를 역전시키는 것은 계산상 불가능해야 합니다.충돌 저항동일한 ..

Python/여러가지 2024.03.23

Python - Pydantic

Pydantic 이란?pydantic은 Python의 Type Annotations을 활용하여 데이터 유효성을 검사 하는 라이브러리입니다.데이터 모델링: pydantic을 사용하면 데이터 모델을 정의할 수 있습니다. 이 모델은 데이터의 구조, 유형, 제약 조건 등을 정의합니다.데이터 유효성 검사: pydantic은 정의된 모델에 따라 데이터의 유효성을 자동으로 검사합니다. 잘못된 유형의 데이터나 제약 조건을 위반하는 경우 예외를 발생시킵니다.데이터 변환: pydantic은 데이터 유형 간 자동 변환을 지원합니다. 예를 들어 문자열을 날짜 객체로 변환하거나 JSON 데이터를 Python 객체로 변환할 수 있습니다.JSON 지원: pydantic은 JSON 데이터를 Python 객체로, Python 객체를 ..

Python/여러가지 2024.03.22

Python - typing

Python에서 타입 힌트를 구성하고 사용하면 코드의 가독성과 유지 관리성이 크게 향상될 수 있습니다. 또한 자동 완성 및 정적 분석과 같은 작업에 대한 더 나은 도구 지원을 용이하게 할 수 있습니다. 타입 힌트는 변수, 함수의 매개변수, 반환 값 등에 대한 타입 정보를 명시적으로 선언하는 것입니다. 타입 힌트은 Python 인터프리터에 의해 강제되지 않기 때문에 실행 시점에는 무시됩니다. 타입 힌팅은 주로 코드 가독성, IDE 지원, 정적 분석을 위한 용도입니다.기본 타입정수, 문자열, 부동 소수점 및 부울과 같은 기본 유형의 경우 변수 및 함수 반환 유형에 타입 정보를 명시적으로 선언# 변수에 타입 힌트 추가name: str = "Python"age: int = 30is_student: bool = ..

Python/여러가지 2024.03.22