참조 :
google계정 php 연결 - http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/oAuth2/Google
twittter계정 django 연결 - https://realpython.com/blog/python/adding-social-authentication-to-django/
http://python-social-auth.readthedocs.org/en/latest/backends/google.html
기본세팅은
위 참조 twitter계정 django 연결 참조
config.py에 설정
2014년 12월 13일 토요일
2014년 9월 6일 토요일
Fabric을 이용하여 Ubuntu 서버에 Simple하게 FIle 만들기
참고 : http://docs.fabfile.org/en/1.9/tutorial.html
fabric은 이미 설치되어 있다고 가정
local 컴퓨터 파일
로컬에서 명령
fabric은 이미 설치되어 있다고 가정
local 컴퓨터 파일
fabfile.py
from fabric.api import cd, run def simple_file_test(): code_dir ="~" with cd(code_dir): run("touch hello_fab.txt") |
로컬에서 명령
greenyant-Mac:test greenyant$ fab simple_file_test
No hosts found. Please specify (single) host string for connection: ubuntu@192.168.1.222 (서버 아이디@서버 ip주소)
[ubuntu@192.168.1.222] run: touch hello_fab.txt
[ubuntu@192.168.1.222] Login password for 'ubuntu': (서버 패스워드 입력)
Done.
Disconnecting from 192.168.1.222... done.
서버에서 hello_fab.txt 파일 생성되었는지 확인
2014년 7월 8일 화요일
Django와 함께하는 Jquery Ajax의 simple한 예제
참고 :
http://stackoverflow.com/questions/5304517/ajax-post-in-django-framework
http://api.jquery.com/jquery.ajax/
http://stackoverflow.com/questions/5304517/ajax-post-in-django-framework
http://api.jquery.com/jquery.ajax/
ajaxtest.html
|
views.py
def ajaxtest(request): if request.is_ajax(): data = "You click " + request.GET['click'] + " button" import json return HttpResponse(json.dumps({'message':data}), 'application/json') return render(request, 'myapp/ajaxtest.html') |
2014년 6월 18일 수요일
2014년 6월 15일 일요일
Mathjax를 이용해 수식을 타이핑해서 확인할 수 있는 HTML 코드
참고 :
http://docs.mathjax.org/en/v1.1-latest/typeset.html
이어지는 글 : http://greenyant.blogspot.kr/2014/05/html_23.html
http://docs.mathjax.org/en/v1.1-latest/typeset.html
이어지는 글 : http://greenyant.blogspot.kr/2014/05/html_23.html
It's not working now. |
코드
|
2014년 6월 11일 수요일
열 추가 삭제되는 테이블 django formset과 연동
참고 :
자바 코드예제 : https://djangosnippets.org/snippets/1389/
formsets 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/formsets/
행 추가삭제 관련 블로깅 : http://greenyant.blogspot.kr/2014/05/table.html
이어지는 글 : http://greenyant.blogspot.kr/2014/06/django-formsets.html
자바 코드예제 : https://djangosnippets.org/snippets/1389/
formsets 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/formsets/
행 추가삭제 관련 블로깅 : http://greenyant.blogspot.kr/2014/05/table.html
이어지는 글 : http://greenyant.blogspot.kr/2014/06/django-formsets.html
views.py
from django.forms.formsets import formset_factory from myapp.forms import * def home(request): ArticleFormSet = formset_factory(ArticleForm, extra=2) formset = ArticleFormSet() return render(request, 'myapp/index.html', {'formset':formset}) |
form.py
from django import forms class ArticleForm(forms.Form): title = forms.CharField() pub_date = forms.DateField() |
index.html
|
django formsets의 기초적인 사용
참고 :
https://docs.djangoproject.com/en/1.6/topics/forms/formsets/
formset은 form을 여러개 만들어 사용할때 사용한다.
이 글은 django 프로젝트를 만들어 form을 만드는 방법을 알아야 볼 수 있다.
(djagno 프로젝트 만들기 블로그 링크 : http://greenyant.blogspot.kr/2014/05/django.html
django form 관련 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/)
여기서 사용한 프로젝트명은 website로 하였고 myapp을 만들어 사용하였다.
myapp->templates->myapp 만듦
myapp -> forms.py 만듦
setting.py에 myapp 추가
이와 같이 나타나며 페이지 소스를 확인해보면 아래와 같이 나타난다.
https://docs.djangoproject.com/en/1.6/topics/forms/formsets/
formset은 form을 여러개 만들어 사용할때 사용한다.
(djagno 프로젝트 만들기 블로그 링크 : http://greenyant.blogspot.kr/2014/05/django.html
django form 관련 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/)
여기서 사용한 프로젝트명은 website로 하였고 myapp을 만들어 사용하였다.
myapp->templates->myapp 만듦
myapp -> forms.py 만듦
setting.py에 myapp 추가
website/setting.py
... INSTALLED_APPS = ( ... 'django.contrib.staticfiles', 'myapp', ) ... |
website/urls.py
... urlpatterns = patterns('', ... url(r'^$', 'myapp.views.home'), url(r'^admin/', include(admin.site.urls)), ) |
myapp/forms.py
from django import forms class ArticleForm(forms.Form): title = forms.CharField() pub_date = forms.DateField() |
myapp/views.py
from django.shortcuts import render from django.forms.formsets import formset_factory from myapp.forms import * def home(request): ArticFormSet = formset_factory(ArticleForm, extra=3) formset = ArticFormSet() return render(request, 'myapp/index.html', {'formset':formset}) |
myapp/templates/myapp/index.html
{{ formset.management_form }} {% for form in formset %} {{form.as_p}} {% endfor %} |
이상태로 run하여 확인하면
이와 같이 나타나며 페이지 소스를 확인해보면 아래와 같이 나타난다.
페이지 소스
|
이어지는 글 :
2014년 5월 30일 금요일
django 프로젝트를 mysql로 연결하고 mysql-workbench로 보기
이 과정은 앞서 우분투에 설치한 django project를 기준으로 진행되었다.
(링크 : http://greenyant.blogspot.kr/2014/05/django.html )
먼저 mysql을 설치한다.
sudo apt-get -y install mysql-server mysql-client
설치 도중 root 비밀번호 입력이 뜬다.
본 예제는 "1111" 을 사용하였다.
앞으로 비밀번호를 사용하는 것을 보여줘야하기 때문에 단순한 비번을 사용하였다.
설치 후 아래 명령으로 동작 확인.
mysql -u root -p
(비번 입력)
mysql-workbench를 우분투 소프트웨어 센터에서 검색해서 설치한다.
더 많은 정보를 누르면 아래 그림과 같이 자세한 정보를 볼 수 있다.
설치하고나서 실행할 때는 설명에 써있는 것처럼 터미널에서
mysql-workbench 명령어를 입력한다.
mysql workbench를 실행하면 아래와 같은 화면이 뜬다.
로컬에 설치한 mysql로 연결하기 위하여 "New Connection"을 누른다.
여기서 나는 Connection Name에 "localDB"라고 입력 했음.
그러면 아래와 같이 메인창에 방금 만든 localDB 가 뜬다.
떠블 클릭해서 입장~
처음에 기본적으로 만들어져있는 SQL File 창에 SQL 문을 입력하고 번개 표시를 누른다.
아래와 같이 현재 설치되어 있는 데이터 베이스를 보는 명령을 실행하면
아래에 표로 표시가 된다.
확인이 되었으면 쿼리문을 아래와 같이 보내어
django_db(임의로 지정한 것임)를 만든다.
오른쪽 SCHMAS에 새로고침을 눌러 생성한 DB를 확인한다.
여기서 django_db의 encoding을 맞추어 준다.
이부분을 설정하지 않으면 나중에 만들 테이블에도 문제가 생겨
django의 admin페이지에서 한글로 수정하지 못하는 웃지 못할 일이 벌어진다.
Apply버튼을 누르면 실행할 SQL문이 나오는데,
사실 이 SQL만 따로 실행해도 된다.
드디어 만들어 놓은 django project를 사용하자.
Aptana Studio에 올려서 하는 방식으로 설명한다.
이것은 아래 링크를 통해 설치하는 것을 볼 수 있다.
(링크 : http://greenyant.blogspot.kr/2014/05/aptana.html )
Aptana Studio를 실행해서 Import Project를 통해 앞서 만든 django 프로젝트를 연다.
열었으면 setting.py 문서를 열어 DATABASES 설정을 아래와 같이 바꾼다.
mysql에서 설정했던 것으로 맞추어 주는 것이다.
설정을 마쳤으면 터미널에서 아래와 같은 명령으로 mysql DB로 연결시킨다.
source /home/ubuntu/webapps/main_env/bin/activate (가상환경 실행)
pip install mysql-python (mysql-python 설치)
python ~/webapps/hello_django/manage.py syncdb (syncdb로 DB 연동)
syncdb 할 때, 아래와 같이 생성되는 table을 볼 수 있으며
관리자로 사용할 계정을 만들게 된다.
여기서는 greenyant으로 만들었다.
스키마를 새로고침하여 table이 올라간 것을 확인할 수 있다.
아래와 같이 SQL문을 통하여 auth_user에 greenyant 계정이 들어와 있는 것을 알 수 있다.
이번엔 만들어진 table 간의 상관관계를 보기위하여
mysql workbench 기능 중 EER model을 사용한다.
아래와 같이 다시 홈 화면으로 다시 돌아가
"Create EER Model From Existing Database"를 실행한다.
아래와 같이 몇가지 세팅을 하고나면
아래 그림처럼 정렬되지 않은 모델을 볼 수 있는데,
이를 잘 정렬하면 아래와 같은 관계를 볼 수 있다.
참고 : "
(링크 : http://greenyant.blogspot.kr/2014/05/django.html )
먼저 mysql을 설치한다.
sudo apt-get -y install mysql-server mysql-client
설치 도중 root 비밀번호 입력이 뜬다.
본 예제는 "1111" 을 사용하였다.
앞으로 비밀번호를 사용하는 것을 보여줘야하기 때문에 단순한 비번을 사용하였다.
설치 후 아래 명령으로 동작 확인.
mysql -u root -p
(비번 입력)
mysql-workbench를 우분투 소프트웨어 센터에서 검색해서 설치한다.
더 많은 정보를 누르면 아래 그림과 같이 자세한 정보를 볼 수 있다.
설치하고나서 실행할 때는 설명에 써있는 것처럼 터미널에서
mysql-workbench 명령어를 입력한다.
mysql workbench를 실행하면 아래와 같은 화면이 뜬다.
로컬에 설치한 mysql로 연결하기 위하여 "New Connection"을 누른다.
여기서 나는 Connection Name에 "localDB"라고 입력 했음.
그러면 아래와 같이 메인창에 방금 만든 localDB 가 뜬다.
떠블 클릭해서 입장~
처음에 기본적으로 만들어져있는 SQL File 창에 SQL 문을 입력하고 번개 표시를 누른다.
아래와 같이 현재 설치되어 있는 데이터 베이스를 보는 명령을 실행하면
아래에 표로 표시가 된다.
확인이 되었으면 쿼리문을 아래와 같이 보내어
django_db(임의로 지정한 것임)를 만든다.
오른쪽 SCHMAS에 새로고침을 눌러 생성한 DB를 확인한다.
여기서 django_db의 encoding을 맞추어 준다.
이부분을 설정하지 않으면 나중에 만들 테이블에도 문제가 생겨
django의 admin페이지에서 한글로 수정하지 못하는 웃지 못할 일이 벌어진다.
Apply버튼을 누르면 실행할 SQL문이 나오는데,
사실 이 SQL만 따로 실행해도 된다.
드디어 만들어 놓은 django project를 사용하자.
Aptana Studio에 올려서 하는 방식으로 설명한다.
이것은 아래 링크를 통해 설치하는 것을 볼 수 있다.
(링크 : http://greenyant.blogspot.kr/2014/05/aptana.html )
Aptana Studio를 실행해서 Import Project를 통해 앞서 만든 django 프로젝트를 연다.
열었으면 setting.py 문서를 열어 DATABASES 설정을 아래와 같이 바꾼다.
mysql에서 설정했던 것으로 맞추어 주는 것이다.
설정을 마쳤으면 터미널에서 아래와 같은 명령으로 mysql DB로 연결시킨다.
source /home/ubuntu/webapps/main_env/bin/activate (가상환경 실행)
pip install mysql-python (mysql-python 설치)
python ~/webapps/hello_django/manage.py syncdb (syncdb로 DB 연동)
syncdb 할 때, 아래와 같이 생성되는 table을 볼 수 있으며
관리자로 사용할 계정을 만들게 된다.
여기서는 greenyant으로 만들었다.
스키마를 새로고침하여 table이 올라간 것을 확인할 수 있다.
아래와 같이 SQL문을 통하여 auth_user에 greenyant 계정이 들어와 있는 것을 알 수 있다.
이번엔 만들어진 table 간의 상관관계를 보기위하여
mysql workbench 기능 중 EER model을 사용한다.
아래와 같이 다시 홈 화면으로 다시 돌아가
"Create EER Model From Existing Database"를 실행한다.
아래와 같이 몇가지 세팅을 하고나면
아래 그림처럼 정렬되지 않은 모델을 볼 수 있는데,
이를 잘 정렬하면 아래와 같은 관계를 볼 수 있다.
참고 : "
How to create EER Diagram with MySQL WorkBench"
유튜브 영상 - http://www.youtube.com/watch?v=v5Q0lz5FkW0우분투에 django 설치하고 실행해보기
이 과정은 ubuntu 데스크 탑 버전에 올리는 것을 기준으로 하였다.(id : ubuntu)
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )
apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade
연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev
가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/main_env
가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.
가상환경 실행
source /home/ubuntu/webapps/main_env/bin/activate
django 설치
pip install django
hello_django라는 이름으로 django 프로젝트 생성 및 실행
cd webapps
django-admin.py startproject hello_django
cd hello_django
python manage.py syncdb
python manage.py runserver
브라우저에서 127.0.0.1:8000으로 확인
연관글 :
django 프로젝트를 mysql로 연결하고 mysql-workbench로 보기
http://greenyant.blogspot.kr/2014/05/django-mysql-mysql-workbench.html
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )
apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade
연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev
가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/main_env
가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.
가상환경 실행
source /home/ubuntu/webapps/main_env/bin/activate
django 설치
pip install django
hello_django라는 이름으로 django 프로젝트 생성 및 실행
cd webapps
django-admin.py startproject hello_django
cd hello_django
python manage.py syncdb
python manage.py runserver
브라우저에서 127.0.0.1:8000으로 확인
연관글 :
django 프로젝트를 mysql로 연결하고 mysql-workbench로 보기
http://greenyant.blogspot.kr/2014/05/django-mysql-mysql-workbench.html
2014년 5월 29일 목요일
우분투에 mezzanine 설치하고 실행해보기
참고 링크 :
https://github.com/stephenmcd/mezzanine
이 과정은 ubuntu 데스크 탑 버전에 올리는 것을 기준으로 하였다.(id : ubuntu)
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )
apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade
연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev
mezzanine 의존 라이브러리 설치
sudo apt-get install libjpeg8 libjpeg8-dev
sudo apt-get -y build-dep python-imaging
가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/mezza_env
가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.
가상환경 실행
source /home/ubuntu/webapps/mezza_env/bin/activate
mezzanine 설치
pip install mezzanine
hello_mezza라는 이름으로 mezzanine 프로젝트 생성 및 실행
cd webapps
mezzanine-project hello_mezza
cd hello_mezza
python manage.py createdb --noinput
python manage.py runserver
브라우저에서 127.0.0.1:8000으로 확인
https://github.com/stephenmcd/mezzanine
이 과정은 ubuntu 데스크 탑 버전에 올리는 것을 기준으로 하였다.(id : ubuntu)
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )
apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade
연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev
mezzanine 의존 라이브러리 설치
sudo apt-get install libjpeg8 libjpeg8-dev
sudo apt-get -y build-dep python-imaging
가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/mezza_env
가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.
가상환경 실행
source /home/ubuntu/webapps/mezza_env/bin/activate
pip install mezzanine
hello_mezza라는 이름으로 mezzanine 프로젝트 생성 및 실행
cd webapps
mezzanine-project hello_mezza
cd hello_mezza
python manage.py createdb --noinput
python manage.py runserver
브라우저에서 127.0.0.1:8000으로 확인
우분투 데스크탑에 Aptana 설치
우분투 설치 관련 글 :
http://greenyant.blogspot.kr/2014/05/ec2.html
먼저 jre6를 설치한다.
우분투 소프트웨어 센터에서 설치할 수 있다.
터미널에서 git 설치를 한다.(Aptana 기본 지원기능)
sudo apt-get -y install git
aptana.com에서 다운로드(저장으로 받는다. 열기로하면 오류 가능)하여
내폴더에 압축을 푼다(드래그&드롭 가능).
바탕화면에 바로가기 만들기
python 사용자의 경우
Window - Properties - PyDev - Interpreter-Python에서 Auto config 실행
http://greenyant.blogspot.kr/2014/05/ec2.html
먼저 jre6를 설치한다.
우분투 소프트웨어 센터에서 설치할 수 있다.
터미널에서 git 설치를 한다.(Aptana 기본 지원기능)
sudo apt-get -y install git
aptana.com에서 다운로드(저장으로 받는다. 열기로하면 오류 가능)하여
내폴더에 압축을 푼다(드래그&드롭 가능).
바탕화면에 바로가기 만들기
python 사용자의 경우
Window - Properties - PyDev - Interpreter-Python에서 Auto config 실행
EC2 서버 테스트용으로 사용할 가상 머신 설치
앞으로 진행할 서버 관련 세팅을 테스트하는 가상머신을 세팅하고자 한다.
가상머신 프로그램으로는 Virtual Box을 사용하였고
OS는 Ubuntu 12.04 데스크탑 용으로 사용하였다.
(14.04가 지금 나온 상황이지만 아직 불안정하단 판단)
내 세팅의 경우 :
한국어 용으로 설치(apt-get 서버로 한국이 잡힌다.)
메모리 크기 - 1024MB
VDI 가상 하드 사용
계정 이름 - ubuntu로 세팅(EC2 설치시 아이디와 같음. 다른 세팅은 디폴트사용, 암호입력)
OS 설치완료 후,
메뉴 ) Devices - Insert Guest Addition CD image 실행
설치 완료 후 재부팅(화면 사이즈에 따라 해상도 변화 확인)
메뉴 ) Devices - 클립보드 공유 - 양방향 설정
터미널 실행하여 apt-get update하고 upgrade함.
sudo apt-get update
업데이트 관리자 설치
이 상태로 가상머신을 종료하고,
추가적인 작업(개발 시작)은 가상 머신을 복제해서 사용한다.
복제 옵션은 완전한 복제를 사용한다.
복제 시간이 오래걸리긴 하지만,
개발 도중 다시 되돌리려면 다시 설치해야하는 수고보다는
복제해서 사용하는 것이 낫다.
가상머신 프로그램으로는 Virtual Box을 사용하였고
OS는 Ubuntu 12.04 데스크탑 용으로 사용하였다.
(14.04가 지금 나온 상황이지만 아직 불안정하단 판단)
내 세팅의 경우 :
한국어 용으로 설치(apt-get 서버로 한국이 잡힌다.)
메모리 크기 - 1024MB
VDI 가상 하드 사용
계정 이름 - ubuntu로 세팅(EC2 설치시 아이디와 같음. 다른 세팅은 디폴트사용, 암호입력)
OS 설치완료 후,
메뉴 ) Devices - Insert Guest Addition CD image 실행
설치 완료 후 재부팅(화면 사이즈에 따라 해상도 변화 확인)
메뉴 ) Devices - 클립보드 공유 - 양방향 설정
터미널 실행하여 apt-get update하고 upgrade함.
sudo apt-get update
sudo apt-get -y upgrade
업데이트 관리자 설치
이 상태로 가상머신을 종료하고,
추가적인 작업(개발 시작)은 가상 머신을 복제해서 사용한다.
복제 옵션은 완전한 복제를 사용한다.
복제 시간이 오래걸리긴 하지만,
개발 도중 다시 되돌리려면 다시 설치해야하는 수고보다는
복제해서 사용하는 것이 낫다.
2014년 5월 26일 월요일
Table 행 추가삭제 만들기
참고 :
http://stove99.tistory.com/93
http://www.freezner.com/archives/270
http://api.jquery.com/live/
http://stove99.tistory.com/93
http://www.freezner.com/archives/270
http://api.jquery.com/live/
행 추가 삭제 코드
|
2014년 5월 23일 금요일
HTML 코드를 타이핑해서 확인할 수 있게 하기
웹 상에서 TEXTAREA에 HTML 코드를 타이핑해서 바로 확인할 수 있게 한다.
아래 쪽 텍스트 박스에 HTML 코드를 타이핑하고 transform 버튼을 누르면 오른쪽에 바로 반영된다.
위 코드는 아래와 같다.
아래 쪽 텍스트 박스에 HTML 코드를 타이핑하고 transform 버튼을 누르면 오른쪽에 바로 반영된다.
It's not working now. |
위 코드는 아래와 같다.
코드
|
2014년 5월 22일 목요일
HTML 코드 Blogger(Blogspot)에 게시하기
참고 : http://dragonraja2010.blogspot.kr/2011/01/test.html
SyntaxHighlighter을 적용하는 방식이다.
이 방식은 HTML 코드를 블로거에 나타내는 좋은 방식이지만,
editor 창이나, 미리보기로 안보이는 단점과
html, head, body 태그는 표현 못한다.
그래서 나는 html, head, body는 표현하지 않고
따로따로 코드를 게시하는 것이 낫다고 생각하고,
editor 창이나, 미리보기로 안보이는 단점은
table을 사용해서 나타내고자 한다.
사용하는 table 양식
|
"글쓰기" 모드에서 표째 복사해서 붙혀넣기하고
"HTML" 모드에서 수정하면 됨..
먼저 "HTML" 모드에서 맨 처음 부분에 추가해야할 부분이다.
SyntaxHighlighter 설정 소스를 첨가
|
이것은 참조한 사이트와 정확히 일치한다.
그 다음으로 코드를 테이블 안에 코드를 첨부할 태그를 넣는다.
코드 첨부할때 사용할 태그
... |
예제는 아래와 같다.
예제
|
결과
안녕하세요. 푸른개미 블로그입니다. |
아래는 테이블을 복사해서 불힐 때 사용
제목을 입력하세요.
|
피드 구독하기:
글 (Atom)