본문 바로가기

Python

(29)
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 - 비동기 프로그램(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 - 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)..
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 - 공공데이터 포털 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) : %2Fr5O..... - 일반 인증키(Decoding) : - 에어코리아_대기..
Python - JSON(JavaScript Object Notation) JSON 이란 JSON은 간결하고 가벼운 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉬우며, 기계가 구문 분석하고 생성하기 쉽습니다. 2001년 Douglas Crockford에 의해 처음 지정되었습니다. 당초에는 JavaScript 프로그래밍 언어의 하위 집합으로 설계되었지만, 현재는 언어에 독립적인 데이터 형식으로 사용됩니다. 사용 사례 웹 애플리케이션에서 브라우저와 서버 간에 데이터를 전송하는 데 널리 사용됩니다. 다양한 프로그래밍 언어에서 JSON 데이터를 쉽게 읽고 쓸 수 있습니다. REST API에서 데이터를 교환하는 표준 형식으로 자리 잡았습니다. NoSQL 데이터베이스(MongoDB 등)에서 데이터를 저장하는 형식으로 활용됩니다. 구성 파일, 로그 파일 등의 표현에도 사용될 수 있습니다. ..
Python - 가상환경(venv) 가상환경 (Virtual Environment) 이란 가상환경이란 파이썬 인터프리터, 라이브러리, 스크립트 등이 포함된 독립된 파이썬 실행 환경을 의미하며 프로젝트마다 서로 다른 버전의 패키지가 필요 때 가상환경으로 분리하여 관리할 수 있습니다. 일반적으로 새로운 프로젝트를 시작할 때마다 가상환경을 생성하여 작업합니다. 장점 패키지 버전 충돌 방지 격리된 실행 환경 제공 프로젝트 의존성 관리 용이 재현 가능한 개발 환경 구축 'venv' 모듈 Python 3.3 버전부터 기본적으로 제공되는 'venv' 모듈을 사용하여 가상환경을 생성할 수 있습니다. 가상환경 생성 터미널이나 명령 프롬프트에서 실행합니다. # 가상 환경을 생성하기 원하는 디렉토리로 이동 python -m venv myenv 'myenv'는..
Python - 비밀번호 해싱 비밀번호 해싱 (Password Hashing) 비밀번호를 데이터베이스(또는 다른 저장매체)에 저장할 때 평문으로 저장하면 보안에 취약하므로 해싱(또는 암호화)하는 것이 일반적입니다.비밀번호 해싱은 일반 텍스트 비밀번호를 가져와 해시 함수를 적용하고 결과 해시 값을 저장합니다. 해시 함수(Hash Function) 해시 함수는 임의의 길이의 입력 데이터를 고정된 길이의 유일한 값으로 변환하는 단방향 함수입니다. 참고로 변환된 고정 길이의 유일한 값은 해시 값입니다. 속성 설명 결정적 동일한 입력은 항상 동일한 결과를 낳습니다. 고정 크기 입력 크기에 관계없이 출력 길이가 고정됩니다. 빠른 계산 이 함수는 해시 값을 빠르게 생성해야 합니다. 사전 이미지 저항 해시 함수를 역전시키는 것은 계산상 불가능해야 ..