PYTHON
-
[Python] 타이핑, 타입 힌트 (typing / type hint)programming/Python 2022. 11. 6. 22:06
최근 회사 프로젝트에서 AI모델 개발, 웹 개발, 배포까지 혼자서 해야 했던 프로젝트가 있습니다. 집에 가서도 모델을 튜닝하고 백엔드 로직을 작성하고 DB도 만들고... 프론트도 하고.. 개발 중에 여기저기서 발생하는 문제들을 해결하다가 보면 어느 순간 제가 작성한 코드를 보면 많은 변수들의 타입을 알지 못해서 맨탈이 나갈 때가 있습니다. 프로그램의 복잡도가 높아지고 거대해질수록 이러한 문제는 빈번하게 발생합니다. 파이썬은 동적타입언어(dynamically typed language)여서 변수에 타입을 알아서 동적으로 지정해주기 때문에 빠르게 개발을 좋지만 프로그램이 점점 거대해질수록 타입을 알지 못하는 변수들 때문에 생상성이 급격하게 하락할 수 있습니다. 이러한 단점을 보안하기 위해 Python에서는 ..
-
[Django]Startproject, Startapps 명령어로 생성되지 않은 파일에서 장고 사용하기programming/Django 2022. 5. 6. 14:56
오류 파이썬 장고에서 프로젝트나 앱을 만들면 해당 이름의 폴더와 .py 파일이 생성되는데 생성한 프로젝트 안에서 다른 .py파일을 생성하고 장고에 등록된 모델 또는 함수를 사용할 때 다음과 같은 애러가 발생됩니다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. ImproperlyConfigured( django.core.excep..
-
[Python] List보다 Numpy 가 빠른이유programming/Python 2022. 4. 23. 11:50
List vs Numpy 파이썬에서 List는 여러 값들을 저장할 수 있는 자료구조로써 활용도가 매우 높습니다. 리스트는 다양한 자료형의 데이터를 여러 개를 저장할 수 있으며 쉽게 데이터를 수정할 수 있습니다. 하지만 데이터의 처리 양이 많아지고 처리방법이 복잡해질수록 많은 사람들은 Numpy ndarray를 사용합니다. 오늘은 많은 사람들이 왜 List 보다 Numpy ndarray를 더 많이 사용하는지 알아보도록 하겠습니다. Numpy 큰 matrix 처리 및 다양한 연산 기능을 제공 합니다. 반복문 없이 데이터 배열에 대한 처리를 지원합니다. 선형대수와 관련된 다양한 기능을 제공합니다. C, C++, 포트란 등의 언어와 통합이 가능합니다. Built-in List 보다 Numpy의 ndarray 가..
-
[Python]_8. 튜플(Tuple)programming/Python 2021. 11. 17. 23:00
튜플(Tuple) 이번에는 '튜플(Tuple)'에 대해 알아보도록 하겠습니다. 튜플은 리스트와 매우 비슷합니다. 튜플과 리스트가 서로 다른 점이 있다면, 대괄호 대신에 소괄호로 묶어서 표현하며 리스트는 요소의 변경이 가능한 반면에 튜플은 요소의 변경이 불가능하다는 특징을 지니고 있습니다. 우선 튜플이 어떠한 형태를 가지고 있는지 먼저 알아보도록 하겠습니다. >>> tuples = (1, 2, 3, 4) >>> type(tuples) 위의 코드를 보시면 리스트와는다르게 소괄호로 묶어서 정의하며 , 로 각각의 요소를 구분합니다. 아래의 코드처럼 둘러싸고있는 소괄호를 제거하거나 리스트와 똑같이 튜플 안에 튜플을 요소로 가질 수 있습니다. >>> tuples = ('a',) >>> type(tuples) >>>..
-
[Python]Python의 유용한 라이브러리들programming/Python 2021. 9. 16. 10:22
파이썬이 많은 인기를 누리고 있는 중에 하나의 이유를 뽑자면 광범위한 라이브러리를 쉽게 다운받아서 사용할 수 있는 장점이 있기 때문입니다. 오늘은 파이썬의 유용한 라이브러리들을 소개해보도록 하겠습니다. 먼저 라이브러리에 개념에 대해 알고가야 합니다. 라이브러리 (Library) 파이썬 라이브러리는 내가 필요한 코드를 작성할 필요 없이 많은 동작을 수행할 수 있게 해주는 함수와 메서드의 집합입니다. 마치 도서관 (library)에서 내가 필요한 책을 꺼내어 보듯이 프로그래밍 중에 파이썬 라이브러리를 꺼내어 사용할 수 있습니다. 여러 파일로 이루어져 있을 수 있고, 함수 메서드 속성들이 하나의 패키지로 모여져 있습니다. 라이브러리에는 이미 우리가 수행하고자 하는 기능과 동작들이 이미 정의되어 모여져 있기 때..
-
[자료구조]링크드 리스트(Linked List)programming/Python 2021. 6. 8. 14:45
링크드 리스트 (Linked List) 링크드 리스트(Linked List), 연결 리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 됩니다. 특징 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조입니다. 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조입니다. 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원합니다. 장점 배열은 미리 데이터의 공간을 할당해야하지만 링크드 리스트는 미리 데이터 공간을 미리 할당하지 않아도 됩..
-
[자료구조]배열(Array), 큐(Queue), 스택(Stack)programming/Python 2021. 5. 20. 20:24
배열(Aarry) 배열이란 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조입니다. 파이썬에서는 리스트 타입이 배열 기능을 제공합니다 특징 같은 종류의 데이터를 효율적으로 관리하기 위해 사용합니다. 같은 종류의 데이터를 순차적으로 저장합니다. 장점: 빠른 접근 가능 : 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근)이 가능하기 때문에 데이터 접근 속도가 빠릅니다. 단점: 데이터 추가/삭제의 어려움 : 일반적으로 C언어에서는 미리 최대 길이를 지정해야 되지만 파이썬의 list는 자동적으로 늘어나기 때문에 최대길이를 지정하지 않아도 됩니다. 큐(Queue) 큐란 한쪽 끝(rear)에서는 삽입 연산만 이루어지며 다른 한쪽 끝(front)에서는 삭제 연산만 이루어지는..
-
[자료구조]Hash, Hashing, Hash Tableprogramming/Python 2021. 5. 5. 17:40
자료구조(Data-Structure) 처리하고자 하는 데이터의 효율적인 접근 및 조작을 가능하게 해주는 저장 및 관리방식입니다. 도서관의 책들이 잘 정리되어 있으면 우리는 우리가 원하는 책을 쉽게 찾을 수 있습니다. 하지만 뒤죽박죽 되어 있는 책들 중에 우리가 원하는 책을 찾으려면 시간이 꽤 오래 걸립니다. 자료구조도 이와 같습니다. 자료구조를 잘 선택하면 사용하는 메모리를 최소화할 수 있으며 시, 공간적으로 효율성을 확보할 수 있습니다. 오늘은 Hash Table 자료구조에 대해 포스팅 하겠습니다. 해시 테이블(Hash Table) 해시 테이블은 해시 함수를 이용해서 key를 고정된 크기의 값으로 변환한 후 해시 함수 결과 값을 인덱스에 key - value를 저장하는 방법입니다. 기본 연산으로는 탐색..