Tiny Star

✨Framework+Library 10

[Django] 가상환경으로 프로젝트 세팅하기2 (pipenv)

지난 venv를 가상환경으로 잡고 진행한 프로젝트가 마무리(?)되어 일단 테스트서버 문앞까지 갔다. 그리고 연이어 시작된 두번째 프로젝트.지난 venv를 가상환경으로 잡은 프로젝트에서도 내 컴퓨터에는 파이썬 버전 3.7, 3.8 두개가 설치되어 있었고venv는 내가 명시적으로 파이썬 버전을 잡아줄 수 있어서 환경변수는 3.7로 설정되어 있었다. 자세한 내용은 아래 포스팅! [Django] 파이썬 버전 바꾸고 가상환경으로 프로젝트 세팅하기(venv)개발감자 3개월차. 3개월 간 어미새 선임님이 세팅해준 프로젝트 받아서 본분을 다한 아기새 통감자. 회사가 바빠지면서 내가 스스로 세팅해야하는 일이 생겨서 처음으로 세팅해 본 장고+파이chun-k.tistory.com 두번째 프로젝트는 팀장님이 기초 세팅을 해주..

[Django] Q 객체 : 쿼리의 효율 올리기

현재 백오피스(관리자) 기능의 페이지를 구현중이다. DEV-DB에서 개발 중이지만, 운영 DB를 가지고 로컬에 복붙해놓은거라 그동안 개발공부를 하면서 더미로 집어넣은 소소한 데이터와는 양 자체가 다르다. 앞서 php로 구현된 구 코드들은 구현을 오라클 패키지를 사용해서 데이터를 호출했지만python으로  전면 개편하게 되면서 패키지는 생각하지 못하고 그냥 쿼리셋을 날린 결과 속도저하가 발생했다. 회원의 그룹과 계정을 각각 조회할 수 있는 페이지를 만들었고그룹을 조회하는 페이지는 잘 로드되지만 계정을 조회하는 페이지는 로드되는데 시간이 너무 오래걸리면서아래와 같은 ConnectionAbortedError가 나왔다. (시간이 지나면 로드가 되긴 됨) 어차피 이대로는 실서버 반영을 할 수 없으니 쿼리 속도를 ..

[Django] 파이썬 버전 바꾸고 가상환경으로 프로젝트 세팅하기(venv)

개발감자 3개월차. 3개월 간 어미새 선임님이 세팅해준 프로젝트 받아서 본분을 다한 아기새 통감자. 회사가 바빠지면서 내가 스스로 세팅해야하는 일이 생겨서 처음으로 세팅해 본 장고+파이썬 프로젝트! 일단 내 컴퓨터의 기본 파이썬 버전은 3.7이고 프로젝트에서 사용 할 파이썬 버전은 3.8.5이다. 깃에서 레포지토리 생성하고 클론해서 프로젝트 받아오면 기본 버전에 충실한 인텔리제이를 볼 수 있음 암튼 프로젝트 1분컷 세팅을 설명없이 나열해볼까한다.1.  Github에서 Repository를 생성 초딩도 만들 수 있는 New.직관적인 깃허브! 2. 프로젝트를 넣어놓을 폴더 또는 배경화면에서 Git Bash 실행 후 클론git clone 레포지토리 주소 꼭 Git Bash가 아니더라도 그냥 IDE에서 가져와도..

[Django] 장고 게시판 구현하기 - ckeditor5 적용하는 방법

대부분의 게시판을 구현하다보면 에디터 기능을 추가하게 되는데세상에는 다양한 에디터들이 많다. 대표적인 스마트에디터, summernote 등등등등...처음엔 나도 스마트에디터로 적용하는 방법을 찾아 헤매다녔는데 디자인이 그닥. 구리다.(사실 별 느낌 없었으나 선임님이 별로지않냐길래..ㅋ 듣고보니 그런거같음) 되게 다양하게 적용(?)하는 방법이 있는 것 같긴한데...... 너무 헷갈리고 장단점도 있는 것 같아서 정리해본다. 우선 CKEditor는 콘텐츠를 웹 페이지나 온라인 애플리케이션에 직접 작성할 수 있게 하는 위지위그 리치 텍스트 에디터이다.자바스크립트로 작성되어 있고 오픈 소스로 제공하는 것도 상용 라이선스를 제공하고 있어서무료로 사용이 가능하다.  CKEditor5는 Classic, Inline, ..

[Django] @action과 @api_view : View 하나에 같은 HTTP 요청 메서드가 두개일 때 API 구현하기

게시판과 댓글 CRUD의 로직이 완성됬다. 이후 내가 구현하고 싶은 것 게시판이 삭제 될 경우 댓글 전부 같이 삭제하는 로직 즉, 게시판 삭제 시 댓글의 is_delete가 False값에서 True값으로 일괄적으로 변경이 되어야 한다. (공부하는 사람들의 게시물을 보면 종종 완전히 remove 시켜버리는 경우가 있는데, 현업에서 개발은 그렇지 않다.API는 DELETE지만 실제 내부로직은 UPDATE가 맞음. DB에 한번 들어간 데이터를 지우는 일은 거의 없다.) 다시 본론으로 돌아와서 Comment View로직은 이미 댓글을 개별삭제 할 수 있는 delete 메서드가 있는 상태에추가로 게시글 삭제 시 댓글이 삭제되는 delete메서드가 추가로 필요하다. 이럴 때 쓸 수 있는 데코레이터가 @action과..

[Django] Django:장고 웹 프레임워크 구조

Django(장고)는 파이썬 언어를 기반으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크이다. 웹 프레임워크를 한번도 사용한 적이 없는 경우 단어 자체가 굉장히 낯설 수 있는데, 쉽게 풀어 이야기하자면 웹 사이트를 구축할 때 비슷한 유형의 요소들은 항상 존재하기 마련이다. 예를 들면 회원가입/로그인/로그아웃, 글쓰기/수정/삭제, 관리자 기능 등 어떤 웹에서나 필요한 기능들을 의미한다. 이런 필수 기능들을 매번 0부터 구현한다고 생각해보자. 엄청나게 비효율적이다. 이럴 때 바로 사용할 수 있는 구성 요소들을 갖춰 보다 쉽고 빠르게 웹 사이트를 개발할 수 있도록 돕는 것이 바로 웹 프레임워크이다. 개발자 치트키 도구같은거랄까. 알아서 다 해준다. 스프링이 자바나 코틀린 등의 언어로의 개발을 쉽게 도와주..

[Framework] 장고(Django)와 플라스크(Flask)

장고(Django)와 플라스크(Flask)를 사용해야 할 때가 왔다. 플라스크는 예전에 잠시 스파코 부캠에서 본격 자바를 배우기 전 Python, MongoDB와 함께 사용을 해봤던 경험이 있고, 장고의 경우는 이름만 들어 본 그런 사이다. 어차피 둘 다 알아야하기 때문에 입문은 장고로 하기로 마음먹었고, 장고를 설치하기 전 두 프레임워크의 정보를 머리에 집어넣을 겸 적어본다. 우선 장고(Django)와 플라스크(Flask) 모두 파이썬으로 웹 어플리케이션을 개발하기 위한 웹 프레임워크이다. 무엇이 더 좋고 나쁜 문제가 아닌 장고(Django)와 플라스크(Flask)는 파이썬 언어 기반인 것만 동일할 뿐 두 가지를 비교할 수 있는 대상이 못된다. 속도나 개발 편의성도 차이가 없는 편이고 결국 개발자의 실..

[🐼Pandas] csv/xlsx/SQL 데이터 다루기

판다스(Pandas)에서는 다양한 형태의 데이터를 데이터프레임 또는 시리즈 객체로 생성하고 불러와서 데이터를 가공할 수 있다고 지난 포스팅에 적어놓았다. 직접 코드에 생성하지 않아도 csv, xlsx, SQL 등으로 데이터를 불러와서 가공을 할 수도 있다. 데이터 불러오기 1) CSV(Comma-Separated Values) 먼저 csv 파일형식은 몇 가지 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일인데, 이 csv파일 데이터를 불러오는 방법이다. import pandas as pd # CSV 파일 불러오기 df = pd.read_csv('data.csv') 2) Excel / xlsx 많이 사용하는 스프레드시트 프로그램에서 생성한 데이터를 저장하는 파일 형식으로 csv와 차이는 read_뒤에 ..

[🐼Pandas] Data 객체 데이터 다루기

판다스(Pandas)에 대해 소개할 때 단순히 Data 객체가 어떻게 생성되는지 예시코드만 던졌었다. 여기서는 객체의 행 또는 열을 선택하거나 추가/삭제/변경 등의 기능을 좀 더 상세히 적어놓으려 한다. DataFrame 객체 행과 열로 이루어진 2차원 데이터를 다루기 위한 것으로 열은 각각의 변수, 행은 관측치를 나타낸다. [생성하기] 데이터를 생성할 때는 list, dict(딕셔너리), EXCEL 등 다양하게 생성을 할 수 있다. 1. list를 사용해서 Data Frame 객체 생성하기 import pandas as pd #pandas 대신 pd 라는 별칭 사용의 의미 data = [['A', 1]], ['B',2], ['C',3]] df = pd.DataFrame(data, columns ['co..

[🐼Pandas] 데이터 분석을 위한 라이브러리 : Pandas / 라이브러리 소개 / 설치방법

자바만 열심히 파던 내가 어쩌다보니 파이썬을 사용해 데이터 파싱/분석을 해야할 일이 생겨서 천천히 공부 중인 판다스. 나처럼 갑자기 구명조끼 하나없이 냅다 데이터의 바다에 던져 질 사람들을 위해 판다스가 뭔지부터 정리해본다. 판다스(Pandas)? 파이썬에서 데이터 조작이나 분석을 위한 라이러리 중 하나로, 특히 표 형태의 데이터를 다루는데 유용한 라이브러리이며, 데이터를 구조화하고 처리하는데 사용된다. 판다스(Pandas)는 데이터 과학 및 머신러닝 분야에서 널리 사용되고 있고 데이터의 전처리부터 분석이나 모델링, 데이터 조작, 정제, 분석, 시각화 등이 가능하도록 다양한 기능을 제공한다. 판다스(Pandas)는 데이터프레임(DataFrame)과 시리즈(Serise)라는 두 가지의 주요 자료구조를 제공..