전체 글 41

[Django] DRF : 장고 모델을 json 객체로 추출하기

장고로 프로젝트를 진행하다 보면 프론트와 연동하게 될 때가 있다. 이 방법들은 이전 포스트(link)에서 자세히 설명했고, 이 포스트에서는 그 중 장고에서 만든 모델을 json 객체로 추출해서 접근하는 방법을 알아보도록 하겠다. Django REST Framework(DRF)는 웹에서 REST API 서버를 구축할 수 있도록 도와주는 오픈소스 라이브러리이다. 다양한 기기와 플랫폼이 만들어지면서 데이터를 다룰 때 기존의 방법에 한계가 생겼고, 이를 해결하기 위해 등장한 도구가 REST API이다. (1) 준비하기 먼저, DRF 를 사용하기 위해 터미널에서 다음 명령어를 입력해 DRF를 설치한다. pip install djangorestframework 다음으로 리액트에서 장고가 만드는 api에 접근할 수 ..

스터디/Web 2022.01.19

프론트와 연결하기 (1) - 장고/리액트 연동

우리 프로젝트는 백엔드로 장고(Django)를 사용하고 프론트엔드로 리액트(React)를 사용한다. 때문에 둘을 연동하는 과정이 필요한데, 이번 주제에서는 이 과정을 다뤄보려고 한다. 먼저 우리 프로젝트의 상황을 설명해야 하겠다. 우리 프로젝트는 프론트엔드를 담당하는 팀원과 백엔드를 담당하는 팀원이 나눠져있다. 즉, 한 개발환경에서 리액트와 장고를 동시에 사용하지 않는다. 때문에 리액트와 장고를 연동할 수 있는 방법을 먼저 살펴보자. (1) 장고 -> 리액트 : json 객체로 데이터 보내기 이 방법은 장고와 리액트 연동을 알아볼 때 가장 많이 나왔던 내용이다. 장고의 Django REST Framework(DRF) 를 이용해 장고의 모델을 json 객체로 얻을 수 있다. 이 과정을 완료하면 웹페이지에서..

서평 작성 (3) - 서평 상세보기

지금까지 서평 목록들을 리스트로 전체 조회하는 페이지와 글쓰기 페이지를 구현했다. 이번에는 서평 목록에서 하나를 선택했을 때 해당하는 서평의 상세 페이지를 구현하려고 한다. (1) list 파일 보기 파일 > templates/review/list.html ... DB에서 서평 목록을 받아와서 페이지에 띄우는 list.html 코드 중 일부이다. 각각의 서평을 태그로 감싸 해당 내용을 선택하면 서평의 상세 페이지로 이동하도록 구현하려고 한다. 해당 상세페이지의 url 은 "http://기본주소/review/detail/서평Id" 로 설정했다. (2) urls.py 파일 수정 파일 > review/urls.py urlpatterns = [ ... path('detail//', views.detail, na..

[Django] 모델 만들고 페이지에서 조회하기

참고: https://wikidocs.net/70650 이전 글에서 모델을 만들고 migrate 해서 앱에 적용하는 방법까지 배웠다. 이것을 내 프로젝트에 적용해서 모델을 만들고 데이터를 조회하는 페이지를 만들어보도록 하겠다. (1) 모델 만들기 (models.py 파일 작성) 모델 > User 테이블 속성명 데이터타입 userId (PK) int userEmail varchar(30) userPw varchar(20) userName varchar(20) 모델 > Review 테이블 속성명 데이터타입 reviewId (PK) int userId (FK) int bookId varchar(30) reviewTxt text 다음의 속성을 가진 유저 테이블과 서평 테이블을 생성한다. class User(mo..

스터디/Web 2022.01.13

서평 작성 (2) - 서평 쓰고 조회하기

서평 작성 파트의 첫번째 단계에서 장고 모델로 서평 DB를 만든 후 그 DB 안의 서평들을 웹페이지에서 조회하는 기능까지 구현했다. 이번엔 그 다음 단계로 작성한 서평을 DB에 등록하도록 하는 기능을 구현했다. 웹페이지에서 서평을 쓴 후 그 내용을 서평 DB에 넣고 전체 목록으로 조회하는 기능이다. (1) 서평 목록을 조회하는 페이지에 글쓰기 페이지로 이동할 수 있는 요소를 추가한다. 파일 > templates/review/list.html ... 글쓰기 ... (2) urls.py 파일에 write 페이지와 관련된 내용을 추가한다. 파일 > review/urls.py urlpatterns = [ ... path('write/', views.write, name='write'), ... ] urls.py..

서평 작성 (1) - 서평 DB 만들고 목록 조회하기

프로젝트 내용들 중에 서평 작성 파트를 시작했다. 서평 작성 안에도 여러가지 기능들이 있는데, 이번에는 서평의 전체 목록을 조회하는 기능을 수행했다. 서평을 저장할 DB를 만들고 더미 데이터를 넣은 다음, 그 내용들을 새로운 페이지에서 조회하는 과정으로 진행했다. DB를 만들기 위해서 장고의 기본 기능인 모델을 이용했고 모델 조회 기능을 이용해 간단하게 서평 목록을 조회하도록 했다. 다만 아직 프론트와 연결하는 방법을 찾지는 못해서 ui 안에서 목록이 보이는 것이 아니라 UI를 적용하지 않은 HTML 기본 UI에 내용만 보이고, 해당 내용을 클릭하면 새로운 페이지(추후 서평 상세페이지)로 이동하는 것까지 완성했다. 아직 부족한 점이 있어서 코드를 프로젝트 작업단에 바로 올리지 않고 테스트 폴더와 git ..

[Django] 기본 개념 (앱, 모델, 관리자)

참고: https://wikidocs.net/73306 (1) 앱 장고에서는 기능을 수행하기 위해 '앱'이라는 형식을 사용한다. 프로젝트에 앱을 만드는 명령어는 다음과 같다. (mysite) C:\(생략)\DjangoProj\mysite>django-admin startapp myapp#앱 이름: myapp 앱이 생성되었으니 필요한 내용과 구현할 기능을 IDE에서 작성하고 개발서버를 구동한 다음 주소 뒤에 '/myapp' 를 붙이면 해당 기능이 구현된 웹 페이지가 띄워진다. 해당 페이지가 제대로 작동하려면 '프로젝트/config/urls.py' 에 url 매핑을 추가해야 한다. (...) urlpatterns = [ (...) path('myapp', 함수명) (...) ] (...) 다음과 같이 매핑을..

스터디/Web 2022.01.06

[Django] 개발환경 구축하기

참고: https://wikidocs.net/72280 장고를 처음 접하다보니 개발 환경이 마련되어있지 않아서 자료를 참고하며 개발 환경을 구축했다. (1) 가상 환경 구축 가상 환경을 만드는 이유는 위 자료에 자세히 설명되어 있다. 간단하게 얘기하자면 여러 프로젝트를 수행하다가 파이썬 버전을 다르게 사용하는 등 차이를 둬야할 때가 있는데 가상 환경에서 프로젝트를 진행하면 이런 경우에 각 환경 별로 대처하기가 쉽다. 본인은 mysite 라는 이름으로 가상 환경을 만들어보았다. C:\venvs\mysite\Scripts> activate cmd 상에서 원하는 폴더로 이동한 후, activate 명령어를 입력하면 가상 환경으로 이동한다. (mysite) C:\venvs\mysite\Scripts> deact..

스터디/Web 2022.01.05

프로젝트 참여 시작

지난 주에 처음 얘기가 나온 이후 오늘부터 '고양이와 책을' 프로젝트에 참여하게 되었다. 대략적인 프로젝트 개요는 책의 서평 작성을 제공하는 웹사이트 제작으로, 이 프로젝트에서 백엔드 개발자로 참여하게 되었다. 언어는 장고(Django)를 사용할 예정. 장고로는 처음 개발을 해보는 것이라 앞으로 많은 공부가 필요할 것 같다. 중간부터 참여하게 된 것이라 일단 며칠간은 공부와 프로젝트 파악에 힘쓰고 그 다음으로는 서평 작성 기능부터 개발을 시작할 예정이다. 오늘은 회의에 처음 참석하고 간단한 인사와 앞으로의 일정을 공유했다. 프로젝트 카테고리에는 프로젝트 일지처럼 남기고 리뷰할만 한 기능들은 따로 글을 작성한 후에 링크하는 식으로 이을 예정이다.

[CV] CNN, 합성곱 연산, 패딩, 풀링

CNN 이란? 합성곱 신경망(Convolutional Neural Network, CNN)은 시각적 이미지를 분석하는 데 사용되는 깊고 피드-포워드적인 인공신경망의 한 종류이다. 이미지 및 비디오 인식, 추천 시스템, 이미지 분류, 의료 이미지 분석 및 자연어 처리에 응용되어 사용된다. CNN의 정규화 방법은 일반적인 방법과 조금 다른데, 일반적인 정규화 방법은 손실 함수에 가중치 측정을 추가하지만 CNN은 데이터에서 계층적 패턴을 활용하고 작고 간단한 패턴을 사용해 복잡한 패턴을 조립한다. 이런 특징 때문에 일반적인 경우에는 이미지 인식 시에 사용하는 이미지의 해상도가 높아지면 입력값과 가중치의 수가 커지기 때문에 연결성과 복잡성이 증가하지만, CNN은 연결성과 복잡성이 훨씬 낮다. CNN의 구조는 아..

스터디/ML, DL 2020.02.01