본문 바로가기

python31

Django - Admin(Search, Filtering) 최근 내가 Django에 대해서 어느정도 알고 있는지도 확인하고 부족한 부분, 모르는 부분을 좀 보완하고자 인프런에서 강의를 듣고 있다. 아직 초반부임에도 불구하고 몰랐던 내용들이 줄줄이 나와서 좀 당황스러웠음;;; 지금까지 내가 알고 쓰던 기능들은 API 개발을 하기위한 최소 단위였다고 볼 수 있을 것 같다. 지금까지 내가 Django를 사용하면서 크게 신경쓰지 않았던 부분이 바로 Admin 페이지일 것이다. 전에 회사에 다닐때도 관리페이지를 따로 만들어서 사용했었기 때문에 Admin 페이지에 대해서 알아볼 생각을 못한 것도 있긴한데, 어쨋든 Admin 페이지에 대해서 별 생각을 안했던 것은 사실이다. DB에 저장된 데이터를 빠르게 수정할 필요가 있을 때나, Shell 통해서 데이터 관리하는 게 조금 .. 2022. 2. 4.
DRF - Serializer DRF를 사용해서 사용자를 관리하는 백엔드 앱을 만드는 간단한 프로젝트를 진행중이다. 지금까지는 DRF가 아닌 Native한 Django만을 사용해서 백엔드 앱을 만들어왔었는데, DRF를 얕게나마 경험을 해보니 장단점이 느껴지는 것 같다. DRF도 그렇고, Django도 그렇고 지금 내 이해도가 높은 수준은 아니지만 일단 어느정도 예제를 수행해보고 내 나름의 설계에 따른 앱을 만드는 과정에 있어서 가장 큰 차이점은 Serializer와 viewset, router 정도가 있을 것 같다. 아직 직접적으로 사용해보진 않았지만, Django에서는 관련 데코레이터를 직접 구현해서 사용해야했던 권한 관리나, 페이지네이션 기능도 DRF에 포함되어 있어서 가져다 사용할 수 있는 것 같다. 일단 가장 빨리 접했던 차이.. 2021. 12. 22.
Python - 예외처리 어제 퇴근 후에 간단한 기술 면접이 있었는데 질문중에 예외처리 문법에서 else의 역할이 무엇인지에 대한 질문이 있었다. 항상 except까지만 사용하다보니 정확하게 답변을 못했는데 파이썬의 예외처리 문법 관련해서 다시 한번 살펴볼 계기로 아주 적절한 계기같다. 근데 단순하게 예외처리에서 사용되는 키워드의 역할 정도만 정확하게 파악해보려고 공식 문서 살펴봤는데 당연하겠지만 예외처리를 구성하는 문법이 꽤나 다양해서 전체적으로 정리해보려고 한다. 파이썬의 예외처리 파이썬의 예외처리 문법에서 직접적으로 사용되는 키워드는 try, except, else, finally의 4종류가 사용된다. 각 키워드의 역할을 간단하게 정리하면 다음과 같다. try : 예외 발생을 잡아낼 코드의 부분을 지정하는 키워드이다. tr.. 2021. 11. 18.
Note.2 프로토타입 개발중... - 1 TDD는 버리기로 했다. 막상 시도해보려니까 테스트 코드 작성에 손이 안나가는 현상이... 특히 혼자서 하려다보니 괜히 쓸데없이 생각을 깊게 가져가서 더 손이 안나간 것 같다. 일단 현재 개발 계획이 5주(설계 및 기반 - 2주, 개발 - 3주)로 조금 짧게 잡았기 때문에 안해본 TDD 보다는 일단 예전 방식을 그대로 사용해서 서비스 테스트를 위한 MVP를 빠르게 완성하기로 했다. 개발 과정을 좀 더 세부적으로 돌아보면... 이번 주는 중간에 어린이날이 있어서 그런가 집중이 꽤나 부족했다. 설계한 API 플로우 대로 개발이 진행되지도 않았고... 생각지 못한 이미지 파일 전송 건이 생겨서 주의가 분산되기도 했다. 그래도 합류하신 프론트 개발자 분이 미디어 취득에 관해서 생각보다 수월하게 파악하셨고, 기존.. 2021. 5. 8.
Conda 기본 Conda(콘다) 파이썬 가상환경(env) 설정을 돕는 도구 가상환경이란 프로젝트별로 독립된 공간을 설정해서 사용하는 패키지나 도구들이 다른 프로젝트의 요소와 충돌하지 않게끔 하는 것 Anaconda라는 파이썬 배포판에 포함되어 있지만 따로 설치도 가능하다. Conda 설치 https://docs.conda.io/en/latest/miniconda.html Miniconda — Conda documentation Miniconda Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on.. 2020. 7. 29.
위코드 Pre Course - 파이썬의 Co-routine 파이썬에서의 코루틴에 대해서 정리한다. Coroutine이란? 제네레이터의 확장 방식 한번 코루틴을 실행하면 계속 상주하면서 호출에 대응하는 방식 Assignment 1. 호출 시 마다 good 문자열이 추가되도록 코드를 만들기 # Assignment 1 - good 문장열이 추가되어서 출력되도록 만들기 import time def coroutine_test(): greeting = "good " while True: text = (yield greeting) print(greeting + text) if __name__ == "__main__": cr = coroutine_test() print("cr=",end=""), print(cr) next(cr) time.sleep(2) print("send .. 2020. 7. 28.
위코드 Pre Course - 웹 크롤링 드디어 유명한 웹 크롤링을 경험했다. 웹 크롤링을 할 때에 사용하는 BeautifulSoup, Selenium 라이브러리에 대해서 간단하게 알아보고 실습을 중심으로 진행해봤다. Assignment 1. 빌보드 차트 순위 100 사이트에서 순위, 곡, 아티스트 정보, 앨범 커버를 BeautifulSoup/Selenium을 사용해서 크롤링해보자. # Assignment 1 from bs4 import BeautifulSoup from selenium import webdriver # 브라우저를 열수 있는 드라이브모듈 from selenium.webdriver.common.keys import Keys # 키이벤트를 돕는 키 모듈 import requests import re import csv import .. 2020. 7. 28.
위코드 Pre Course - 파이썬의 Process 파이썬에서 병렬 처리를 위해서 사용하는 개념인 프로세스에 대해서 정리한다. 전까지 내가 알기로는 프로세스와 스레드는 작업 단위로서 사용하는 말로 알고 있는편이었다. 보통 스레드보다 프로세스 단위가 더 크고 상위의 개념이라고 알고 있었는데, 파이썬에서는 병렬 처리를 위해 사용할 수 있는 독립된 개념인 것 같다. Process란? 프로세스는 프로세스 별도의 메모리 영역을 가진다. IPC(Inter-Process Communication)을 지원해서 프로세스간 통신이 가능하다. 스레드보다는 프로세스를 사용해서 다중 코어 프로그래밍을 하는 것을 권장한다고 함 프로세스 예제 from multiprocessing import Process, Queue import time def worker(id, number, .. 2020. 7. 27.
위코드 Pre Course - 파이썬의 Thread 파이썬에서 하나의 실행 단위라고 할 수 있는 Thread를 정리한다. Thread란? 스레드라고 읽는다. 병렬처리와 관련된 기본적인 개념과 동일한 의미를 가진다. 장점 적절하게 구현된 스레드 구조는 시스템의 자원을 더 효율적으로 사용해서 빠르고 효과적으로 로직을 처리 할 수 있다. 폴링 방식으로 작동하는 로직이 있을 경우에 스레드를 사용해서 비동기적으로 작업을 진행할 수 있다. 단점 무분별하게 구현된 스레드는 시스템의 자원적인 측면에 무리를 줄 수 있다. 스레드 간 자원공유에 대한 명확한 정책을 세워놓지 않으면 설계와 다른 방향으로 동작할 수 있다. Assignment 2개의 스레드에서 1억까지 1씩 더해가는 프로그램의 작동 결과 확인과 문제점 파악 # Assignment 1 def thread_1(nu.. 2020. 7. 25.