Framework(프레임워크), Library(라이브러리)의 차이

미음제

·

2020. 11. 5. 01:32

Framework와 Library의 차이

인강을 듣거나, 수업시간에 듣거나 어디서 한 번쯤은 들어봤던 단어이다. 그럼에도 차이를 잘 모르고 있었다.

 

 

이 달 말까지 프로젝트를 완성해야해서 급하게 장고를 공부하기 시작했다.

장고에 대해서 공부를 하게 되면서 Framework(프레임워크)Library(라이브러리)의 차이점에 대해 처음 알게되었다.

 

 

 

 

 

내가 무엇을 개발하고자 할 때, Framework(프레임워크)Library(라이브러리)를 사용하는 경우가 있다.

쉽게 예를 들기 위해 장고와 리액트라고 가정하자.

 

Django(장고)는 Framework

React(리액트)는 Library

 

 

 

간단하게 설명하자면, 만약 Library(라이브러리)를 사용한다면

라이브러리는 내가 무언가를 Build 하고자 할 때 사용하는 것이다.

 

 

반면,

 

만약 Framework(프레임워크)를 사용한다면

프레임워크는 무언가를 Build하고자 할 때, 프레임워크의 룰을 따라야 한다는 것이다.

 

즉, 제공되는 프레임워크를 변경해선 안된다는 것이다.

 

 

리액트를 사용하여 내가 무언가를 만들고자 할 때,

리액트 라이브러리는 내 마음대로 원하는 코드 내의 변수명을 마음껏 사용할 수 있다는 것이다.

 

 

그러나 장고의 경우 장고의 룰에 따라 장고를 사용해야 한다.

 

 

 

예시

*admin 패널에서 user가 어떻게 보이는지, 보여질지 변경하고 싶다면?

작성자는 반드시 admin.py에 코드를 작성해야 한다.

 

**사용자에게 몇 가지 보여주고 싶은 페이지(html)들이 있는데 이것을 보여주려면? 

작성자는 반드시 views.py에 코드를 작성해야 한다.

 

즉,

장고가 admin 패널과 상호작용 하도록 admin.py로 그대로 사용해야 한다는 것이다.

임의의_이름.py 처럼 바꾸면 안 된다는 것이다.

 

 

장고에서 앱을 만들기

django-admin startapp app's name

장고에서 앱을 만들려면 콘솔 창에 위 같은 명령어를 입력해주면 된다. app's name = [users, lists, ... ]

 

django-admin startapp lists

lists라는 앱을 만들어주면, 다음과 같은 프레임워크가 자동으로 생성된다.

lists application

이 처럼 자동으로 생성되는 것이 프레임워크다.

admin을 바꾸고 싶다고 firstadmin.py, 모델을 바꾸고 싶어서 mymodels.py로 변경해서는 안 되는 것이다.

 

장고는 프레임워크에 따라 계속해서 admin에 대한 변경사항을 

admin.py를 계속 주시하여 확인하며 상호작용하고 있기 때문이다.

 

 

제공된 프레임워크를 수정, 삭제가 불가능하다는 것이다.

 

 

 

 

 

그렇다면 삽입은?

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

장고 앱을 생성하면 config 폴더에 urls.py가 생성된다.

당연히 urls.py는 장고가 urls를 관리하는 곳이 된다.

어떤 주소를 추가하고 싶다면 urlpatterns에 추가해주면 된다.

 

 

큰 프로젝트를 진행하게 된다면 작성하는 url이 많아지게 된다.

예를 들어, 사용자 프로필에 대한 url을 적어보자면

/users

/users/{User_Id}

/users/edit

/users/upload_img

...

 

추가하는 것마다 url이 많아질 것이다.

 

모든 코드가 그렇지만 코드는 짧은 것이 가장 좋다.

config 폴더의 urls.py에 모든 url을 넣어도 괜찮지만,

각 애플리케이션에서 urls.py를 생성해 관리하는 것이 효율적이다.

 

 

users 폴더에 urls.py를 생성

users 폴더에 urls.py를 생성해 users와 관련된 url은 이곳에 작성을 하면 된다.

프레임워크를 수정하거나 삭제하면 안 되지만, 유일하게 할 수 있는 것은 추가이다.

반응형