Coding 35

[Python] Python에서 빠른 입출력 방법

프로그래밍 대회나 알고리즘 문제를 풀 때, 입출력 속도는 매우 중요합니다. 특히 파이썬은 다른 언어에 비해 입출력 속도가 느린 편이기 때문에, 기본 입출력 방법을 사용하면 시간 초과가 발생할 수 있습니다. 이 글에서는 파이썬에서 데이터를 빠르게 입출력하는 방법을 소개하겠습니다. 빠른 입력기본적으로 파이썬에서는 input() 함수를 사용하여 입력을 받습니다. 하지만 이 함수는 내부적으로 버퍼링을 하지 않아 속도가 느립니다. 따라서 sys.stdin.readline() 함수를 사용하여 입력 속도를 향상시킬 수 있습니다.import sysdata = sys.stdin.readline().rstrip()sys.stdin.readline()은 한 줄의 입력을 빠르게 받아옵니다.입력받은 문자열의 끝에는 줄바꿈 문자..

Coding/Python 2024.10.06

[Python] UnicodeEncodeError: 'utf-8' codec can't encode characters in position : surrogates not allowed 해결방법

오늘은 Python에서 이모지와 관련하여 인코딩을 하는 과정에서 오류가 발생해서 해결하는 방법에 대해 소개하겠다.오류>>> text = "😊">>> print(text)UnicodeEncodeError: 'utf-8' codec can't encode characters in position 17-18: surrogates not allowed 이 오류는 주로 Python에서 이모지 또는 특정 유니코드 문자를 처리할 때 발생한다. 이 오류의 원인은 다음과 같다.서로게이트 쌍 문제: UTF-16에서 사용되는 서로게이트 쌍이 UTF-8로 인코딩 되려 할 때 문제가 발생한다. Python 내부에서 UTF-16 서로게이트 쌍을 UTF-8로 직접 변환하려고 하면, UTF-8이 해당 문자를 표현할 방법이 없기 때..

Coding/Python 2024.07.08

[SQL] SQL 명령어(Keyword) 모음

SQL 명령어에 대해 소개해보려고 한다. 자주 사용하는 명령어 위주로 설명하고 이후에는 코테문제에서 사용했던 명령어들을 설명하려고 한다. 데이터다음은 user 테이블의 데이터이다.idnameageemail1John28John@example.com2Jane32Jane@example.com 3Bob24Bob@example.com 4Alice29Alice@example.com 5Tom31Tom@example.com 6Lucy22Lucy@example.com 7Mark35Mark@example.com 8Ana25Ana@example.com 9Yun28Yun@example.com  명령어명령어와 명령어에 대한 간단한 설명이다.키워드설명SELECT하나 이상의 컬럼의 데이터를 조회FROM데이터 조회의 대상이 되는 테..

Coding/SQL 2024.06.25

[Python] 파이썬에서 getter, setter 사용 방법(feat. Property)

파이썬에서 객체에 값을 저장하거나 가져올 때, getter와 setter를 사용하는데 이것들을 하나하나 선언하는 것 (get_name 또는 set_name)보다 파이썬에서 지원하는 것이 있다. 그것은 바로 Property(프로퍼티)이다. PropertyProperty는 클래스의 어떤 속성에 대한 접근을 제어하는 경우 사용한다. Property는 클래스 속성에 대해 접근을 하는 내장 함수이다. 이를 통해 클래스 속성의 값을 설정하거나 값을 가져올 때 추가적인 기능을 실행할 수 있도록 합니다. 이를 통해서 더욱 파이썬스러운 코드를 작성할 수 있습니다. getter, setter, deleter 사용방법기본적으로 Class 다음과 같이 선언되어있다고 해봅시다.class Person: def __init_..

Coding/Python 2024.06.13

[Python] 타입 힌트를 위한 typing 모듈에 대해 알아보자

Python에서 타입 힌트 등장 배경 Python은 동적 타입 언어로 알려져 있다. 이는 프로그래머가 변수의 타입을 미리 선언하지 않아도 되며, 프로그램 실행 시점에서 타입이 결정된다. 이러한 동적 타이핑은 개발의 유연성을 높이지만, 대규모 프로젝트나 복잡한 시스템에서는 종종 문제를 야기한다. 타입 오류가 런타임에서만 발견되기 때문에, 버그를 예방하고, 코드의 안정성을 향상시키기 어렵다. 이러한 문제점을 해결하기 위해 Python 3.5 버전에서 typing 모듈이 도입되었습니다. 타입 힌트(typing Module) Python의 typing 모듈은 개발자들이 변수, 함수 매개변수, 반환값 등의 데이터 타입을 명시적으로 선언할 수 있게 해주는 기능을 제공한다. 주로 코드의 가독성을 향상시키고, 정적 분..

Coding/Python 2024.06.12

[PEP] 함수 Docstring과 Type Hint 작성 방법

파이썬에서 유명한 라이브러리 코드를 보게 되면 무언가 많이 작성되어 있는 것을 볼 수가 있다. def generate_identified_filename(filename: Path, identifier: str) -> Path: """ Append a string-identifier at the end (before the extension, if any) to the provided filepath Args: filename: pathlib.Path The actual path object we would like to add an identifier suffix identifier: The suffix to add Returns: String with c..

Coding/Clean Code 2024.06.11

[PEP] Pythonic한 Name Convention에 대해 알아보자

파이썬에서 사용하는 PEP(Program Enhance Proposal) 에서 Name Convention에 대해 알아보려고 한다. PEP는 파이썬 개발자들 간의 관습을 적어놓은 것이라고 생깍하면 된다. 파이썬 유저라면 파이썬 코드를 작성할 때 PEP-8을 이용해서 쓰는 것을 추천한다.목차피해야 할 이름Package and Module Names (패키지 모듈 이름)Class Name (클래스 이름)Type Variable Names (타입 변수 이름)Exception Names (예외 이름)Global Variable Names (전역 변수 이름)Function and Variable Names (함수, 변수 이름)Method Names and Instance Variables (메소드와 인스턴스 변수..

Coding/Clean Code 2024.06.10

[Clean Code] 프로그래밍 명명 규칙인 Camel Case, Snake Case, Pascal Case, Kebab Case에 대해 알아보자

프로그래밍을 하다 보면 변수, 함수, 클래스 등을 정의할 때 대문자를 쓰거나 언더바('_')를 쓰는 경우를 볼 수 있는데 이에 대해 자세하게 알아보려고 한다. 요약명명 규칙설명예시Snake_case모든 글자를 소문자로 하며, 단어는 밑줄로 구분한다. new_object, my_website_name, user_profile camelCasePascalCase와 유사하지만 첫 글자는 소문자이며, 공백은 없다. newObject, myWebsiteName, userProfile PascalCase각 단어의 첫 글자를 대문자로 이며, 공백은 없다 NewObject, MyWebsiteName, UserProfile Kebab-case모든 글자를 소문자로 하며, 단어는 하이픈( '-' )으로 구분한다. new-o..

Coding/Clean Code 2024.06.09

YAML, YML이란 무엇인가?

오늘은 yaml과 yml 파일 확장자가 무엇인지 알아보려고 한다. 그 이유는 docker-compose 파일과 스키마 작성시 yaml 확장자 파일을 사용하는데 내가 이전에는 본적이 없던 파일 형식이지만, 자주 사용되는 것을 보게 되었고 이에 대해 공부했던 내용들을 정리하려고 한다. YAML, YML은 무엇인가?yaml( YAML Ain't Markup Language)는 데이터를 표현하는 방법 중에 하나이다. JSON이나 XML와 비슷한 형식으로 작성할 수 있어서 자주 사용하는 방식입니다. 마크업 언어보다 데이터 중심을 구성을 강조한다는 점이 있으며, 공백문자를 이용한 들여쓰기로 파일을 작성한다. 파일 형식은 Key-Value 형식으로 작성한다. YAML, YML의 차이YML은 YAML의 파일 확장자 중..

Coding 2024.06.08

[Python] 'Fatal error in launcher: Unable to create process using' 오류 해결 방법

오류> pipFatal error in launcher: Unable to create process usingpip 오류의 발생원인은 다음과 같다.환경 변수 문제: PATH 환경 변수에 Python 설치 경로가 정확하게 설정되지 않았을 수 있다.버전 충돌: 사용하는 Python 버전과 설치된 패키지 버전이 서로 호환되지 않을 수 있다. 해결방법# pip 재설치python -m pip install --upgrade --force-reinstall pip 해결방법은 pip를 재설치하면 된다.

Coding/Python 2024.06.04