재밌는 프로젝트가 하고 싶어서 평소에 관심을 가지던 Random에 관한 프로젝트를 진행하고자 한다., ''

 

타겟은 '선택장애', '결정장애' 라고 불리우는 햄릿증후근(Hamlet Syndrome) 이다.

 

 

 

실제로 이러한 결정장애를 겪는 사람들이 많아서 이들을 위한 서비스를 개발하고 싶었다.

 

그래서 나온 서비스들이 참 많았다. 배달음식메뉴만 정하면 되는 것! 브랜드를 고민하는 것 조차 대신 해주는 이런 서비스~ 예를 들면 떡볶이가 먹고 싶다! 그런데 신전 떡볶이를 먹을 것인가?! 엽기떡볶이를 먹을 것인가?! 이런 고민을 싹~ 없애주는 서비스다!

 

개인의 취향에 맞는 큐레이션 서비스며~ 인기 뷰티 유튜버들이 선정한 뷰티박스! 등 선택에 시간을 많이 투자하게 되는 결정장애가 있는 사람들을 위한 서비스가 많았다.

 

나는 그러면 무슨 서비스를 하지?

 

내가 진행하는 거니깐 나한테서 특징을 찾을까?

 

하다가 결정한 것이 '이름' 이다.

 

***   그래서~ 이 프로젝트의 이름은 '너의 이름은 햄릿'

 

햄릿 증후군을 위한 이름을 정해주는 서비스!

 

내 이름은 보통 특이하다고 평가해주는 '란아' 이다.

 

내 이름의 특징을 정리하자면..

 

1. 한글이름 같지만 한자이름. 란(난초 란) 아(예쁠 아)

 

2. 영어이름을 따로 정하지 않고, 내 이름을 갖다 쓰기 좋음. Ran - A 여서 영어 철자도 간단함.

 

3. 발음이 쉽지 않음. 내 이름을 육성으로 말하면 정확하게 알아듣는 사람이 드뭄. '난나', '난아', '라나' 등...

 

그리고 주변인들의 이름 특징들을 분석해보니 여러가지 분류가 되었다.

 

일단 아이 이름을 짓는 다는 가정하에,

 

이렇게 항목을 정하였다.

 

1. 부모님 이름 섞기

ex) 아버지 (김철수) + 어머니 (이영희)

일 때, 나는 자식 이름을 김영수 라던지 김철희, 김수영 이런식으로만 나올 줄 알았는데, 실제로는

김이수 이런식으로 어머니의 성이 이름으로 가는 경우도 많았다.

 

2. 순 우리말 이름

 

3. 흔하지 않은 이름

ex) 내 이름 같은?

+ 그림에서는 빠졌지만 인기있는 이름도 추가.

인기있는 이름은 대법원 홈페이지에서 얻을 수 있었다.

출생신고한 이름이 카운트 되어 인기있는 이름들을 확인할 수 있다.

남들이 다쓰는 이름을 왜 쓰냐고? 그들도 모르고 있지는 않을 터.

예를 들어, 나의 어머니는 내 이름을 개명하고자 했다. '소연', '효정' 등의 이름을 들었었는데, 이유는 이름이 너무 튀니깐 안좋다는 것이다. 적당히 무난한 이름으로 사는 것이 편하다고... 결국 개명은 나의 절대 반대로 이루어지진 않았다.

 

4. 글로벌한 이름

ex) 강다니엘 같은 실제로 사용하는 이름으로 외국에서 따로 외국이름을 짓지 않아도 되는 이름

 

5. 발음이 쉬운 이름

ex) 내 이름은 이름을 알릴때가 가장 힘들었다. 란을 표현할 때 한번더 '계란할때 란이요.' 이렇게 말을 해줘야 했다. 그럼 다들 웃곤 했는데 아직까지도 란을 설명할 단어가 떠오르지 않는다.

그리고 이름에 '제' 는 '재'로 알아듣기 쉬워서 그 이름 또한 '제 할때 어 이 요!' 이렇게 말을 해줘야 할 것이다.

 

6. 태명

태명은 된소리와 거센소리의 조합으로 짓는 것이 좋다고 한다. 왜냐하면 태명은 뱃속 태아가 잘 들을 수 있는 소리로 지어주는 것이 좋아서 이다. 뱃속에서 부터 학습효과를 노린다는 것인데, 이 규칙을 이용해서 이쁜 태명을 추천해주는 것도 좋을 듯 싶다.

 

 

그리고 이름하니깐 '닉네임'이 떠올랐다.

 

다들 닉네임을 지을 때 고민을 많이 하지 않는가?

 

나는 너무 고민을 하게되고, 고민해서 지으면 꼭 중복이 되었다.

 

특히 '메이플스토리' 에서는 너무 많은 유저들 때문에 왠만하게 길게 짓지 않는 이상 거의 중복이였던 것 같다.

 

그래서 닉네임 만들어 주는 것을 도와주면 어떨까 싶다.

 

1. 게임 닉네임 만들기

 

2. 커플 애칭

ex) 우결 등에서도 xx커플 이런 식으로 만드는데 이름의 특징을 이용해서 만들면 좋을 것 같다.

 

3. 트위터 이름 만들기

 

4. 카페(동호회) 닉네임

 

5. 인스타그램 닉네임

 

그리고 OTHERS로 이름 외에도..

 

1. REAL 랜덤 추출

ex) 3가지 중 뭘 고를까 고민될 때 랜덤으로 골라주는 것 등...

 

2. 로또 번호 추출

나는 로또를 일주일에 딱 1장씩 사곤 하는데, 그 때마다 고민이 많다.

자동은 싫고, 수동으로 하자니 고민이다.

그래서 그냥 로또번호 무작위로 추출해주는 어플을 사용하거나 하는데, 가끔씩 내 생일이라던지 나에게 관련된 번호를 조합하기도 한다.

그래서 로또 번호 추출은 진짜 무작위 추출해주는 부분과 고객에 대한 번호 정보들을 입력받아 고객 맞춤 번호를 합성해서 출력해주는 서비스는 어떨까 싶다.

나라면 이용할 듯!

원래 서비스는 나라도 이용할 수 있는 것을 만들어야하니깐!

 

 

 

 

1.1 django project

  1. 프로젝트 생성

    가상 환경이 활성화 된 현재 폴더 안에 프로젝트를 생성. 명령어 마지막 `.` 주의.

    project 를 생성할 때, Python 이나 Django 에서 사용중인 이름은 피해야 한다.

    `-` 도 사용할 수 없다.

    (ex. django, test, class, django-test...)

    $ django-admin startproject intro .
  2. 서버 실행

    $ python manage.py runserver
  3. gitignore 설정

    $ touch .gitignore
  4. TIME_ZONE, LANGUAGE_CODE 설정

    • `settings.py`

      LANGUAGE_CODE = 'ko-kr' TIME_ZONE = 'Asia/Seoul'
  5. 서버 재실행 및 한글화 확인

**상황에 따른 설정**

공식문서에 따르면, 단일 프로젝트에서는 `django-admin` 보다는 `manage.py`를 사용하는 것이 편할 것이라고 이야기한다. 기본적으로 후자는 프로젝트 경로를 시스템 path에 추가하며, settings.py 설정된 내용을 `DJANGO_SETTINGS_MODULE` 환경변수에 넣어서 활용한다.

다만, 나중에 프로젝트 및 app 단위별로 setting이 나뉘게 된다면 이 경우에는 `django-admin` 명령어에 CLI 옵션 `--settings` 를 통해 지정하여 실행할 수 있는 장점이 있다.

  1. 프로젝트 구조

django-intro/ manage.py intro/ __init__.py settings.py urls.py wsgi.py db.sqlite3

  • `django-intro/`: 디렉토리 바깥의 디렉토리는 단순히 프로젝트를 담는 공간. 이 이름은 Django 와 아무 상관이 없으니, 원하는 이름으로 변경이 가능.

  • `manage.py`: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티.

  • `django_intro/`: 디렉토리 내부에는 project 를 위한 실제 Python 패키지들이 저장됨. 이 디렉토리 내의 이름을 이용하여, (`django_intro.urls` 와 같은 식으로) project 어디서나 Python 패키지들을 import 할 수 있다.

  • `__init__.py`: Python 으로 하여금 이 디렉토리를 패키지 처럼 다루라고 알려주는 용도의 단순한 빈 파일.

  • `settings.py`: 현재 Django project 의 모든 환경/구성을 저장.

  • `urls.py`: 현재 Django project 의 URL 선언을 저장. Django 로 작성된 사이트의 "목차". 사이트의 url 과 views 의 연결을 지정. 모든 url 매핑 코드가 포함될 수 있지만, 특정한 어플리케이션에 매핑의 일부를 할당해주는 것이 일반적.

  • `wsgi.py`: 현재 project 를 서비스 하기 위한 WSGI 호환 웹 서버의 진입점.

    • `WSGI(Web server gateway interface)`: 파이썬 웹 프레임워크에서 사용하는 웹서버 규칙

 

1.2 django application

  • 실제로 특정한 역할을 해주는 친구가 바로 application

  • 프로젝트는 이러한 어플리케이션의 집합이고, 실제 요청을 처리하고 페이지를 보여주고 하는 것들은 이 어플리케이션의 역할

  • 하나의 프로젝트는 여러 개의 어플리케이션을 가질 수 있다.

    • 어플리케이션은 하나의 역할 및 기능 단위로 쪼개는 것이 일반적이나 작은 규모의 서비스에서는 잘 나누지 않는다. 반드시 이렇게 나눠야 한다는 기준 또한 없다.

  • 각각의 어플리케이션은 MTV 패턴으로 구성되어 있다.

  1. Application 만들기

    $ python manage.py startapp home
  2. Application 구조

    home/ __init__.py admin.py apps.py models.py tests.py views.py migrations/ __init__.py
    • `admin.py` : 관리자용 페이지 커스터마이징 장소.

    • `apps.py` : 앱의 정보가 있는 곳. 우선 우리는 수정할 일이 없다.

    • `models.py` : 앱에서 사용하는 Model 를 정의하는 곳.

    • `tests.py` : 테스트 코드를 작성하는 곳.

    • `views.py` : view 들이 정의 되는 곳. 사용자에게 어떤 데이터를 보여줄지 구현하는 곳.

  3. Application 등록

    • 방금 생성한 application 을 사용하려면 프로젝트에게 앱을 만들었다고 알려주어야 사용 가능하다.

    • `home > apps.py > class HomeConfig()` 구조 이기 때문에 `home.apps.HomeConfig` 로 작성한다.

    •  

      `settings.py`

       

    INSTALLED_APPS = [
       #  Local Apps
       'home.apps.HomeConfig',
  
       #  Django Apps
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    # 항상 `,`(쉼표) 를 작성해주고 마치는 습관을 가진다.
    # 혹은 그냥 'home' 이라고 작성할 수 있다. 다만, 후반부 자세한 설정에 한계가 있기 때문에 위처럼 작성한다.

 

'Python2 > Django(장고)' 카테고리의 다른 글

1  (0) 2019.06.12

1

파이썬을 이용하여 CRUD를 사용한 프로젝트 MOVIE를 작성해보겠다.

._movies.json
0.00MB

 

1. movie-crud 라는 프로젝트를 생성한다.
* 터미널에 아래 명령어 입력
2. pip install django
3. django-admin startproject crud .

4. 생성된 URL접속

 

로켓모양 웹사이트가 뜨면 성공!

 

* django는 app으로 구성되어 있으므로 app을 생성한다. 
python manage.py startapp movies

 

models.py 작성하기

(아래 코드 첨부)


from django.db import models

# Create your models here.
class Movie(models.Model) :
    title = models.CharField(max_length = 100)
    title_origin = models.CharField(max_length = 100)

    vote_count = models.IntegerField()
    open_date = models.CharField(max_length = 30)

    genre = models.CharField(max_length = 20)
    score = models.FloatField()
    poster_url = models.TextField()
    description = models.TextField()

 

나 이렇게 했어~ 설계도 보여줘
python manage.py makemigrations
    -> No changes detected 뜸
    왜 떠? 아직 출생신고 안했잖아?

 

일명 출생신고! setting.py 에서

 

INSTALLED_APPS = [
    #django apps
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    #local apps
    'movies',
]

 

이렇게 수정하기

python manage.py makemigrations 
-> 어떻게 반영할지 설계도 작성, 우리가 모델을 작성을 다했다고 django한테 알려줌.

-> 0001_initial.py가 생성됨.

python manage.py migrate 
-> 실제 장고가 우리에게 만들어준 설계도를 기반으로 실제 db에 반영시키는 것 
-> 테이블을 만드는 것

movies 아래 fixtures 디렉토리 생성

생성한 디렉토리에 movies.json를 넣기 

    -> movies.json 파일 따로 첨부파일로 걸어둠.

터미널에 아래 입력하기 
python manage.py loaddata movies.json

admin.py작성

(아래에 코드 첨부)

 

from django.contrib import admin
from .models import Movie

# Register your models here.
admin.site.register(Movie)

python manage.py createsuperuser
-> username, email, pw 입력
-> email은 입력하지 않아도 됨.

 

python manage.py runserver

을 터미널에 입력한 후 뜬 url로 접속

그리고

url뒤에 /admin 붙임.

관리자 페이지로 접속이 되고 (위에서 설정한 id/pw)

Movies로 들어감.

 

위와 같이 목록 중에서 아무거나 택하여 들어가면 영화정보를 알 수 있음.

'Python2 > CRUD' 카테고리의 다른 글

[공대란아] CRUD프로젝트1_MOVIE_0_목표  (0) 2019.06.12
[공대란아] CRUD란?  (0) 2019.06.12

- 데이터를 생성, 조회, 삭제, 수정할 수 있는 Web Application 제작
- Python Web Framework를 통한 데이터 조작
- Object Relational Mapping에 대한 이해
- Template Variable을 활용한 Template 제작
- 영화 정보 데이터 관리

'Python2 > CRUD' 카테고리의 다른 글

[공대란아] CRUD프로젝트1_MOVIE_1_모델링  (0) 2019.06.12
[공대란아] CRUD란?  (0) 2019.06.12

'Python2 > CRUD' 카테고리의 다른 글

[공대란아] CRUD프로젝트1_MOVIE_1_모델링  (0) 2019.06.12
[공대란아] CRUD프로젝트1_MOVIE_0_목표  (0) 2019.06.12

+ Recent posts