[ Essay - Technology, Essay - Intuition ] Chat GTP시대의 도래와 생각하는 방식에 대해

이미지
올해도 드디어 끝이 보이는 듯 싶다. 최근에 회사의 망년회를 끝내고 이래저래 회식이 늘어나는 듯 하다. 지금 시점에서는 개인적인 스케쥴도 마무리 되었기 때문에 이제는 여유롭게 연말을 즐기며 올해를 마무리 하려고 한다. 비교적 최근에 이사한 곳 근처의 스타벅스가 대학 병원 안에 있고 근처에 공원이 있어서 그런지 개를 대리고 산책하는 노인이나  아이를 동반한 가족이 눈에 띄게 보인다. 꽤나 좋은 곳으로 이사한듯 하다. 개인적으로는 올해 드디어 미루고 미루었던 이직을 하였고  그 이후에 비약적인 성장을 이루었으니  분명 안좋은 일도 있었지만 만족할 수 있는 해를 보내지 않았나 싶다. 내가 도달하려고 하는 곳으로 가려면 아직 갈길이 멀지만  궤도에 오른 것만으로도 큰 성과라면 큰 성과 일 것 이다. 어쨋든 이직하고 많은 일들을 맡게 되었는데 그 과정에서 나는 의도적으로 Chat GTP를 활용하고자 하였고 몇 가지 직감을 얻게 되었는데  이 중 한 가지를 글로 작성하려고 한다. 따라서 올해의 마무리 글은 Chat GTP에 대한 이야기로 마무리 하려고 한다. 서론 불과 약 10년전 IT업계는 원하던 원치 않던간에  한번의 큰 패러다임의 변화를 맞이해야만 했다 바로 아이폰의 등장에 따른 스마트폰의 시대의 도래와  이에 따른 IT업계의 패러다임 변화가 그것이다. 내 기억으로는 아주 격변의 시대였던 걸로 기억하는데 왜냐하면 게임은 물론이고 웹과 백신을 비롯한 모든 솔루션의 변화가 이루어졌다. 이 뿐만 아니라 가볍고 한손의 들어오는 이 디바이스는  그 당시에는 조금 비싸다는 인식이 있었지만  감추려고 해도 감출 수 없는 뛰어난 유용성으로 회의론을 금세 종식시켰고 이에 대한 결과로 어린아이 부터 노인 까지 작은 컴퓨터를 가지게 되었고 이는 당연하게도 IT업계의 전체적인 호황을 가져다주었다.  그리고 질서는 다시 한번 재정렬되었다. 이러한 패러다임의 변화의 증거로 언어 또한 변하게 되었는데...

[ Django, Python ] mozilla 튜토리얼 예제로 살펴보는 Django 분석 ⑧ : 나만의 추가 도전 과제 - 1

도전 과제는 이전 게시글로서 끝이지만
나는 여기서 한 발짝 더 나가고 싶은 욕망이 생겼다.

그 욕망의 내용은 아래와 같다.


바로 Admin 권한을 가진 User들만 볼 수 있고 사용할 수 있는
Admin Permission 기능이다.

이 기능들은 위의 사진과 같이

빌린 책들의 목록을 보고 수정이 가능한
All borrowed에서 이름을 바꾼 
Borrowed Management와 

모든 책들을 추가, 수정, 삭제할 수 있는 
Book Management

마지막으로
모든 작가들을 추가, 수정, 삭제할 수 있는
Author Management이다.

이런 기능을 구현하기 위해
다음과 같은 프로세스를 거칠 필요가 있다.

Borrwoed Management는 이름만 바꾸면 되고,

Book Management는 
먼저 디폴트 화면은 모든 책의 리스트를 보여주고
이 책의 각각의 요소들을 수정, 삭제가 가능하며
하단에는 추가도 할 수 있는 기능을 제공하게 한다.

Author ManagementBook Management와 동일하게
디폴트 화면은 모든 작가들의 리스트를 보여주고
이 작가들의 각각 요소들을 수정, 삭제 가능하며
하단에는 추가도 할 수 있는 기능을 제공하게 하는 것이 목표이다.

이를 구현하기 위한 Model, View, Template
각각 아래와 같은 솔루션으로 구현한다.

Model : 기존 Model들을 참고

View : 요소 리스트는 Function 기반,
추가,수정,삭제는 제너릭 편집 View 이용

Template : 요소 리스트는 Function 기반이기 때문에
이전 코드 참고

추가, 수정, 삭제는 제너릭 편집 View를 이용 하기 때문에
관련 코드 참고

먼저 All Borrowed를 Borrwoed Management로 바꿔보자.

이는 매우 간단한데,
먼저 catalog/templates/ 경로에 있는 


base_generic.html 파일을 
위와 같이 수정해 주기면하면 된다.

물론 이름이 바뀌면 가급적 
URL 이름을 포함해 관련 함수들의 이름도 
바꿔주어야 하는 것이 가독성 향상에 도움이 되겠지만

이는 시간 상 고려하지 않고 넘어가기로 하겠다.

엔터프라이즈 급의 배포용 애플리케이션이라면 하는 것이 좋을 것이다.


          <!-- <li><a href="{% url 'all-borrowed' %}">All borrowed</a></li> -->
          <li><a href="{% url 'all-borrowed' %}">Borrowed Management</a></li>
          <li><a href="{% url 'manage-book' %}">Book Management</a></li>
          <li><a href="{% url 'manage-author' %}">Author Management</a></li>

이 곳을 수정하는 김에 위와 같이
Book ManagementAuthor Management도 추가해보자.

물론 여기서 화면에 표시되는지 확인해볼 수는 없다.


왜냐하면 아직 Model, View, Template를 작성하고
URL에 추가하지 않았기 때문이다.

이제 본격적으로 기능을 작성해보자.

먼저 Book Management부터 해보자.

Book Management 구현

Model은 이미 만들어져 있기 때문에
만들어야 될 것은 View와 Template 뿐 이다.

선행으로 만들어야 할 View와 Template는
모든 Book List를 보여주는 View와 Template이다.

이것부터 작성해보자.

다만 이 부분은 따로 크게 작성할 필요는 없다.

왜냐하면 이전에 이미 이 관련 코드를 작성했기 때문이다.

따라서 View나 Template는 크게 바뀌지 않아도 될 것이다.

다만, Template의 경우에는 일반적인 User
권한이 있는 User와의 보여지는 것이 달라지기 때문에
파일을 추가해 작성할 필요가 있다.


① View



따라서 각 디폴트 화면(Template)의 View는 
위의 화면과 같이 
기존에 작성되어 있는 제너릭 View를 참고해 사용하면 될 것 같다.


class ManagementBookListView(generic.ListView):
    model = Book
    template_name = 'catalog/manage_book_list.html'
    paginate_by = 5

class ManagementAuthorListView(generic.ListView):
    model = Author
    template_name = 'catalog/manage_author_list.html'
    paginate_by = 5
따라서 위와 같은 제너릭 View코드를 작성할 수 있다.

단, 이번에는 template_name 필드를 정의할 필요가 있는데
이 필드를 추가하지 않으면 Model명을 기반으로 하여
Django가 자동으로 매칭시켜주기 때문이다.

template_name 필드를 정의하지 않을 경우
위의 두 클래스의 경우는 각각 book_list.html과
author_list.html이 매칭될 것이다.

② Template


우선적으로 추가해야할 Template는 
각 기능의 디폴트 페이지 Template이다.

즉, 링크를 누를 경우 나타나며,
추가, 삭제, 수정 했을 경우 리다이렉트될 페이지를 
우선적으로 구현해야 한다.

먼저 모든 책의 목록은 아래와 같이
catalog/templates/catalog/ 경로에


{% extends "book_list.html" %}
manage_book_list.html 파일을 생성하고 
위와 같은 코드를 추가 한다.

여기서 book_list.html 파일은 
이전에 작성했던 모든 책 리스트를 보여주는 Template이다.

동일하게 모든 작가의 목록은 아래와 같이
catalog/templates/catalog/ 경로에


{% extends "book_list.html" %}
manage_author_list.html 파일을 생성하고 
위와 같은 코드를 추가 한다.

여기서 author_list.html 파일은 
이전에 작성했던 모든 작가 리스트를 보여주는 Template이다.

③ URL 


작성한 View를 url에 이어보자.

catalog/ 경로에 


    # Addmin Management URLS
    path('manage-book/', views.ManagementBookListView.as_view(), name='manage-book'),
    path('manage-author/', views.ManagementAuthorListView.as_view(), name='manage-author'),
urls.py 파일에 위와 같은 코드를 추가하자.

④ Test


그렇다면 이제 
정상적으로 작동하는지 확인해보자.

홈 페이지를 확인해보자.

위의 화면과 같이 의도 한대로
Borrowed Management, Book Management, Author Management
가 표시되는 것을 확인할 수 있으며,

위와 같이 전체 책 리스트와 전체 작가 리스트가 
정상적으로 출력되는 것을 확인할 수 있다.

다음은 이 페이지에 추가, 수정, 삭제 기능을 만들면 된다.


이 블로그의 인기 게시물

[ Web ] 웹 애플리케이션 아키텍처 (Web Application Architecture)

[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

[ Web ] 웹 애플리케이션 서버 아키텍처의 정의 및 유형 ( Define and Types of Web Application Server Architecture )