[Django, Vue]Django + Vue 연동하기 3 - Front end
·
SW개발/Django
이전 포스팅에서는 CRUD를 위한 화면을 구현하였다. 이전에 구성했던 장고의 모델은 username, age, city로 이루어져 있으니 입력화면도 이와 같이 수정할 것이다. Content.vue // components/Content.vue 파일 수정 User CRUD create clear Title content 약간의 코드를 수정하여 입력을 받는 명과 입력받는 개수를 장고 모델에서 선언한 것과 동일하게 해주었다. 이제부터는 백엔드 서버와 통신하기 위해 axios를 이용해 볼 것이다. (장고 서버는 running 상태여야 함) axios 란? axios는 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다. 즉, 우리가 만든 장고 백엔드서버와 프론트엔..
[백준]15649번 N과 M (1) - 백트래킹
·
SW개발/코딩테스트
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net n, m = map(int, input().split()) visited = [False] * n arr = [] def dfs(cnt): # 수열이 m 자리수가 되면 종료 if cnt == m: print(*arr) # 리스트내의 모든 원소 출력 return for i in range(n): if visited[i]: # 이미 사용한 수라면, 방문했다면 continue arr.append(i ..
[Django, Vue]Django + Vue 연동하기 2 - Front end
·
SW개발/Django
지난번 포스팅에서는 Vue를 사용하기 위한 여러 환경들에 대한 설치를 완료하였다. 이번 포스팅부터는 실제로 Vue 컴포넌트들을 하나씩 작성해보며 간단하게 프론트엔드 작업을 진행할 것이다. Vue src 디렉토리 구조 leffept@MacBookPro src % tree # tree 명령어로 Vue 프로젝트의 src 폴더의 디렉토리 구조 확인. . ├── App.vue ├── assets │ ├── logo.png │ └── logo.svg ├── components │ └── HelloWorld.vue ├── main.js └── plugins └── vuetify.js Vue-cli로 생성한 프로젝트의 디렉토리중 중요한 것들만 조금 설명해보겠다. build/ : webpack 빌드 관련 설정이 모여 있..
[백준]1065번 한수 - 완전 탐색
·
SW개발/코딩테스트
https://www.acmicpc.net/problem/1065 n = int(input()) han = 0 for i in range(1, n + 1): if i < 100: # 두자리수는 모두 등차수열, 즉 한수임 han += 1 else: # 세자리수라면 check = list(map(int, str(i))) # 리스트에 각 숫자를 저장 if check[1] - check[0] == check[2] - check[1]: # 각 자리의 차이가 같다면, 한수라면 han += 1 print(han) 코드 설명 두자리수까지는 모두 등차수열을 이룬다 따라서 100 미만은 전부 카운트를 해준다. 세자리수가 될때는 숫자를 분해하기 위해 문자열로 바꾼 값을 다시 Int 로 바꾸면서 리스트에 저장한다. 세자리수가..
[Django, Vue]Django + Vue 연동하기 1 - Front end
·
SW개발/Django
지난번 포스팅에서 Djagno CRUD 서버를 만들었으니 이제 Vue를 이용하여 프론트 화면을 만들고, 장고 서버로 CRUD 기능을 요청하는 프론트 작업을 해볼 것이다. Vue 설치하기 Vue를 이용하는 방법에는 크게 두가지가 존재한다. CDN 방식 : 프로토 타이핑또는 학습 목적이라면 아래와 같은 코드를 html에 포함하여 최신 버전의 vue를 이용할 수 있다. NPM install 방식 : Vue를 사용하여 대규모 애플리케이션을 구축할 때 NPM을 이용한 설치가 권장된다. # 최신 안정화 버전 $ sudo npm install -g @vue/cli Vue CLI는 Vue.js 프로젝트 생성을 돕는 vue 공식 CLI 다. 이것을 이용해 vue 명령어를 사용할 수 있고 프로젝트를 생성하거나 관리를 할 ..
[백준]1436번 영화감독 숌 - 완전 탐색
·
SW개발/코딩테스트
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net n = int(input()) cnt = 0 check = 666 while True: if '666' in str(check): cnt += 1 if cnt == n: print(check) break check += 1 코드 설명 가장 작은 수는 666이 되기 때문에 초기값을 666으로 한 cehck 변수를 설정하여 준다. check 값을 1씩 증가시켜가면서 666이라는 값이 들어있을 경우에..
[Django]REST API CRUD Server 만들기 2 - DRF
·
SW개발/Django
지난번 포스팅을 통하여 API Server 를 만들기 위한 준비를 전부 하였다. 이제부터는 Serializer를 활용하여 데이터를 주고 받을 수 있는 페이지를 만들어 볼 것이다. Serializer 생성 # app이름/serializer.py 생성 from rest_framework import serializers # serializer import from .models import User # 선언한 모델 import class UserSerializer(serializers.ModelSerializer): class Meta: model = User # 모델 설정 fields = ('id', 'username', 'age', 'city') # 필드 설정 Serializer를 위해 app의 하위 폴..
[Django]REST API CRUD Server 만들기 1 - DRF
·
SW개발/Django
지난 포스팅에서 Django + Nginx + Gunicorn 을 연동하였으니 이제는 장고의 Rest Framework 를 이용해 간단하게 CRUD 할 수 있는 API Server를 만들어 볼 것이다. 우선 장고의 Rest Framework 에 대해 알아보자. django-rest-framework 공식 Documentation -> www.django-rest-framework.org Django REST Framwork (DRF) DRF란 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리(프레임워크)이다. DRF 사용 이유 웹 브라우저 API는 범용성이 큼, 개발을 쉽게 만들어 줌 ORM & non-ORM 에 대해 모두 Serialization 기능을..
[WAS, WSGI, CGI]WAS, WSGI, CGI 란?
·
SW개발/IT 용어
WAS (Web Applicaiton Server) WAS는 웹서버가 동적으로 가능하면 WAS이다. 즉, Webserver + CGI 가 WAS 라는 소리이다. CGI (Common Gateway Interface) 웹 서버에서 애플리케이션을 작동시키기 위한 인터페이스다. 정적인 웹서버를 동적으로 만들기 위해 등장하였다. 서버 프로그램과 외부 프로그램간의 인터페이스가 CGI 라고 볼 수 있다. WSGI (Web Server Gateway Interface) 파이썬에서 애플리케이션(파이썬 스크립트)이 웹 서버와 통신하기 위한 인터페이스이다. Django, Flask와 같은 것이 WSGI 를 지원하는 웹 애플리케이션이다. WSGI Server (Middleware) Web server와 WSGI를 지원하는 ..
[Django]Django + Nginx + Gunicorn 연동하기 2
·
SW개발/Django
지난번 시간에 Django + Gunicorn 을 연동하였으니 이제는 Nginx 도 붙여 하나의 서비스를 하기 위한 준비들을 해볼 것이다. 먼저 Nginx의 특징을 간단하게 알아보고 설치를 진행할 것이다. Nginx 란? Nginx 웹서버는 러시아의 이고르 시셰프가 개발한 무료 오픈소스 웹서버 소프트웨어다. 가벼움과 높은 성능을 목표로 하고 웹서버, 리버스 프록시, 메일프록시등의 기능을 가지고 있다. Nginx 특징 기존의 웹서버(Apache)는 하나의 쓰레드에서 하나의 클라이언트를 처리함 -> 정보를 읽고 쓰고 가공하는데 지연시간이 존재 Single Thread 기반으로 context switching 을 하지 않음 Nginx는 이벤트 지향 아키텍처(Event-driven Architecture) 방식..