반응형

Python tech 37

Python 에러 예방하기 (코드 악취 제거하기)

프로그래밍을 하다보면, 다양한 에러를 자주 만나게 되는데 처음에는 이게 문제인지도 모르고 짜게되는 경우가 빈번하게 일어난다. 하지만 경험이 쌓일수록, 문제가 자주 발생하던 코드 패턴에 대해서 본인 스스로도 예방하려고 하게 될텐데 초심자를 위해, 그리고 파이썬을 사용하는 사람일지라도 습관을 들이기 위해 이번 장을 살펴보자 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 코드 악취 (Code Smell) - 잠재적인 버그를 암시하는 코드 패턴 - 말그대로 코드에서 악취가 풍겨 이건 분명 에러날 가능성이 높겠다는 생각이 드는 그러한 것들그렇다면 지금부터 코드 악취의 종류에 대해 알아보고, 예방하는 방법이 있는지 살펴보자 중복 코드 말 그대로, 복붙해서 사용한 비슷한 동작을 수행하는 코드들 이..

Python 이해하기 쉬운 코드 이름 짓기

혹시 이런 통계를 본 적 있는가? 아무래도 내가 이해하기 쉽기 위해, 그리고 남들도 이해하기 쉽게 하기 위해 함수명, 파일명, 변수명 등등 이름 짓는 것이 가장 귀찮은 일들중 하나일 것이다. 그렇다면, 변수명을 잘 짓는 방법도 배워두면 어떨까 여기서는 파이썬에 특화된, 변수명 잘 짓는 방법을 알려주고 있다. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 대소문자 표기법 파이썬은 대소문자가 구분되는 언어이며, 공백이 포함될 수 없는 특징이 있다. 널리 알려진 몇 가지 표기법에 대해 알아보자. 스네이크 표기법 : this_is_snake_case 이와 같이 언더바 _ 와 영문 소문자를 사용한다. 카멜 표기법 : thisIsCamelCase 이와 같이 단어를 언더바가 아닌 대문자로 구분한다..

가독성 좋은 파이썬 코드 작성방법

보기 좋은 코드로 작성하는 것은 프로그래밍 유지 보수를 도와주는 필수 스킬이다. 초심자는 단순히 기술적 지식을 늘리거나, 코드를 작동하게 하는 것에 의의를 두어 이런 부분을 신경쓰지 않을 수도 있다. 하지만 자신의 코드를 나중에 볼 때, 혹은 남에게 보여주며 도움을 구할 때, 함께 프로그래밍 할 때 등 생각보다 가독성 좋은 코드를 작성해야하는 것은 기술을 구현하는 것만큼 중요하다. 지금부터 파이썬만의 가독성 좋은 클린코드를 작성하는 방법을 알아보자. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 용어 정리 Code Formatting : 코드 포매팅, 소스코드에 일련의 규칙을 적용하여 특정 형식을 갖추게 하는 것 Style Guide : 스타일 가이드는 특정 집단에서 일련의 코드 포메..

올바른 코딩 질문하는 방법

코딩, 프로그래밍에 몸담은지 몇 년이 지나면서 커뮤니티나 지인들로부터 굉장히 많은 질문을 받기도 하고 나또한 질문을 하곤 했다. 서로 지식을 공유하는만큼 최대한 구체적으로, 답변해주는 사람을 고려하며 질문하려 하지만 초심자의 경우 그렇지 못한 경우가 대부분이며, 이미 잘 알고 있는 사람이라 하더라도 매너없이 질문하는 경우를 보았다. 당신이 프로그래밍에 오래 몸담을 생각이 있다면, 질문하는 방법을 배워서 적용하는 것도 "실력"일 것이다. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 질문은 최후의 수단임을 명심하라 디버깅이 우선이며, 구글링을 먼저 할 것 얼마나 찾아보았나? 당신은 러시아어나 중국어가 나오는 문서까지 뒤져볼 정도가 되었지만 해결하지 못했다고 할 정도면, 충분히 검색한 것..

[파이썬 스킬업 #3] slicing과 key parameter를 활용하자

파이썬 코딩의 기술 정리 #3 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython 1. 시퀀스 슬라이싱(sequence slicing)을 활용합시다. - slicing이란? 리스트에서 특정 범위를 지정하여 새로운 리스트를 생성하는 것 #기본 사용 방법 a = list[start:end] #count만큼 건너뛰어 가져오고 싶을 때 b = list[start:end:count] #list 복사 #list는 mutable이기 때문에, 별도로 복사를 해주어야 합니다. #리스트 컴프리헨션으로 복사가 가능하고 copy_list = [x for x in list] #슬라이싱..

[파이썬 스킬업 #2] unpacking, enumerate, zip 활용하자

파이썬 코딩의 기술 정리 #2 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython 1. 인덱싱 indexing 대신, 언패킹 Unpacking을 사용합니다. - 파이썬 언패킹이란? 여러 객체를 포함하고 있는 하나의 객체를 풀어주는 행위 반대 개념으로 당연하 패킹 packing이 있겠죠 (=여러 객체를 하나로 묶어주는 행위) #packing packing_tuple = (a, b, c) packing_list = [a, b, c, d] #unpacking a, b, c = packing_tuple a, _, c, d = packing_list #언패킹과 동시에 b..

[파이썬 스킬업 #1] PEP8 스타일 가이드 핵심 정리

파이썬 코딩의 기술 정리 #1 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython PEP8 스타일 가이드를 따릅시다 ! 파이썬은 코딩 스타일을 친절히 설명해주고 있습니다. 자기 멋대로 코딩해도 코드는 잘 돌아갑니다 하지만.... 다음과 같은 이유로 스타일 가이드를 지키는 것을 권장합니다. 스타일 가이드를 준수하고, 알고 있다면 어떤 코드든 접근하기 쉬워진다. 가독성이 높아지기 때문에 쉽게 이해하고 분석할 수 있다. 다른 프로그래머 혹은 오픈 소스를 활용할 때, 협력을 용이하게 해준다. 따라서, 파이썬을 무기로 사용하고자 하는 개발자라면, 언젠가 보게될 문서라고 ..

[Python CV] 세그멘테이션을 통해 이미지 잘라내고 회전하기

이미지 데이터 전처리 (Image Preprocessing) 딥러닝을 활용하여 이미지 데이터를 훈련시키기 위해 필요한 과정 중 하나가 바로 이미지 데이터 전처리입니다. AI HUB의 축산물 품질 이미지 데이터를 다운로드하였습니다. https://aihub.or.kr/aidata/30733 축산물 품질(QC) 이미지 | AI 허브 구축 내용 및 제공 데이터량 aihub.or.kr 이 중에서 제가 사용한 데이터는 소고기와 돼지고기 데이터입니다. 아래 사진은 AI HUB에서 제공하는 육류 이미지 데이터의 예시입니다. 처음 원천 데이터를 그대로 fine tuning 시켰고, 그 결과 정확도가 50% 이상 오르지 않는 처참한 결과가 나왔습니다...;; 그래서 해결 방법을 고민하던 중, 이미지 데이터 전처리의 필요..

KoBERT로 감성 분석을 해보자 (Text Classification)

BERT 모델을 한국어 맞춤형으로 제작한, KoBERT 이런 어려운 작업을 해주신 SKTBrain 팀에 박수를 보냅니다. 우선 BERT란 무엇인가? 간단하게 말하자면, 사전에 학습된 대용량 말뭉치 모델이라고 할 수 있습니다. 2018년에 위대한 구글에서 개발한 언어 모델인데, NLP 전반적인 분야에 아주 좋은 성능을 보여주는 모델이라고 합니다. 그리고 이런 BERT 모델을 한국어 기반으로 제작한 것이 바로 KoBERT 입니다. KoBERT의 사용 방법에 대해서는 KoBERT Github에 간략히 소개되어있습니다. https://github.com/SKTBrain/KoBERT SKTBrain/KoBERT Korean BERT pre-trained cased (KoBERT). Contribute to SKT..

Python tech/NLP 2021.06.15

Colab에서 내 구글 드라이브의 파일 불러오기

Colab을 사용하다보면, 파일을 읽어올 필요가 있죠. Local PC에서 실행하면, 파일 입출력만 사용하면 되는데, Colab에서는 다르게 적용해야 합니다. 1. 구글 드라이브에 파일 업로드 2. 오른쪽 마우스 > 링크 생성 3. 링크 복사 아래와 같은 형식으로 링크가 복사됩니다. https://drive.google.com/file/d/엄청나게 긴 파일 id/view?usp=sharing 저기서 "엄청나게 긴 파일 id"를 가져옵니다. 다음과 같은 명령어 양식에 맞게 실행시켜주면, Colab에서 내 파일을 저장할 수 있습니다. !wget "https://drive.google.com/uc?export=download&id=엄청나게 긴 파일 id" -O 저장하려는 파일명 예 시 구글 드라이브 파일 id..