🌟12기 세번째 세션,

나연님의 백엔드 세션 시작합니다!!

저번주 다은님의 프론트엔드 세션으로 화면 구현의 재미를 알게되었는데요!!

그렇다면 화면에 보이지 않는 백엔드의 개발은 어떻게 진행되는 걸까요? 🤔 

어디서부터 어떻게 시작해야될지 막막하지 않으신가요..? 🥺

막막한 아기사자분들을 위해 나연님께서 ✨Django 기초✨로 구성된 ✨restful api&ERD 세션✨을 준비했답니다!!

그럼 세션 정리와 기록 시작합니다~!

먼저, 나연님이 정리해오신 Backend 이론을 통해 백엔드와 가까워져 보겠습니다!!

Backend

데이터를 입출력하거나, 계산을 하는 등 서버에서 동작하는 코드를 작성한다고 생각하시면 됩니다.

컴퓨터에서 동작하는 언어는 모두 사용이 가능하지만, 웹 프로그래밍을 하려면 HTTP라는 메소드에 맞게 읽고 응답하는 절차가 필요합니다.

이러한 절차를 편하게 지원해주는 언어인 python, ruby, java, php등을 사용하여 백엔드를 구축합니다.
언어로만 웹 사이트를 만드려고 하면 많은 작업이 필요하며, 보안에 신경 쓰기가 어렵고 반복되는 작업이 발생하게 됩니다. 좀 더 편한 작업을 위해 웹 프레임 워크를 사용하며 그 중 오늘 세션은 Django를 사용하여 알아보겠습니다!

Django란?

파이썬의 대표적인 프레임 워크로, 적은 노력으로 많은 작업을 할 수 있는 강력한 도구입니다.

Django의 특징으로는

  1. 안전한 프레임워크
  2. MTV 아키텍쳐
  3. 강력한 ORM

을 말할 수 있습니다.

이제 자세하게 특징을 알아볼까요?

안전한 웹 프레임워크란,
데이터베이스 관리, URL 라우팅, 템플릿 엔진, 사용자 인증, 세션 관리, 폼 처리 등 다양한 기능을 포함하고 있어 개발자가 웹 어플리케이션을 빠르게 구축할 수 있습니다.


그 다음으로

MTV 아키텍쳐를 알기 위해서 먼저 MVC 개념을 알아봅시다.
[MVC모델 설명 이미지]


MVC란,
Model(데이터베이스), View(화면-프론트), Controller(계산, 처리-백엔드) 를 부르는 명칭으로 대부분 이런식으로 작업이 진행되는데, 여기서 장고는 이름만 다르게 부르고 있는 것이 MTV입니다.


[MTV모델 설명 이미지]

MTV란,
Model(데이터베이스), Template(화면-프론트), View(계산, 처리-백엔드)라고 부르고 있습니다.


마지막으로

강력한 ORM 기능이란,
Object Relational Mapping의 줄임말로 객체(Object)라는 개념을 구현한 클래스와 데이터베이스(Table)를 자동으로 연결 시켜주는 기능입니다.

나연님의 정리에 백엔드 천재인 대표님의 설명을 더해보자면,

Django나 SpringBoot 등 웹 프레임워크에서 쓰이는 클래스(일단은 객체라고 보시면 됩니다.)와 데이터베이스는 애초에 호환가능성을 염두하고 만들어진 것이 아니기에 매핑하는 과정에서 불일치가 발생합니다.

Django models.py에 적었던 것들과 sqlite로 테이블 확인해보신거 기억하시죠?
테이블과 코드는 형태가 ❌아예 다르다❌는 것을 쉽게 알 수 있습니다.

그렇다면 테이블은 어떻게 생성할 수 있을까요?
기본적으로 ✨SQL✨이라는 데이터베이스 관련된 문법을 활용합니다.
하지만 백엔드 로직 짜고 있는 것도 바쁜데 SQL문까지 공부해서 직접 테이블을 만들기에는 시간도 부족하고 힘들겠죠?
그런 우리를 위해 ORM은 저희가 python 혹은 java로 짜놓은 코드를 확인한 후 SQL문을 대신 날려줍니다.

물론 테이블 생성뿐만 아니라 그 후 데이터베이스와 상호작용하는데 있어서도 저희는 SQL문을 단 한 번도 쓰지 않고 데이터베이스와 소통이 가능합니다.

한마디로 ORM은 우리가 데이터베이스와 소통하기 위한 통역사라고 생각해주시면 될 것 같네요.

마지막으로 여러분이 세션 때 하셨던 것으로 간단한 예시를 들어보면,

👨‍💻 명령: TodoItem 테이블에서 id가 4인 객체를 가져와라.

# Django
TodoItem.objects.get(id=4)
# 또는
get_object_or_404(TodoItem, id=4)
# SQL
SELECT * FROM TODOITEM 
WHERE ID=4

로 예시를 들 수 있답니다.

나연님과 승민님의 훌륭한 이론 설명은 이정도로 마무리 하겠습니다!!
(도움을 주신 승민님 감삼다~!👏👏👏)

다음으로는 세션 활동 기록입니다!

오늘 세션은 백년관이 아닌 자연과학관에서 진행되었습니다!
열악한 환경 속에서도 다들 집중 잘해주셔서 감사했어요!!🙇‍♀

세션 시작 전 이슈 발생입니다.
( 이슈 발생 시 어 금지에요~ 입 막고 조용히 기다려보기~ )

대규모 이슈 발생입니다!
이번 세션때 백엔드 운영진분들은 굉장히 바빴어요~

나연님은 연속 이슈에 넋이 나가버렸어요

하지만 다시 힘을 내는 나연님 입니다.
( 진짜 쿼카 닮았어요..미연 닮은 쿼카..🤍)

오늘도 집중하는 아기사자들입니다!!
( 다들 체고체고~~👍🏻👍🏻)

아기사자의 이슈 해결이 척추 건강보다 중요한 대표님이에요~

이슈 해결과 설레는 프로포즈 이벤트도 제공한답니다~

야릇한 백엔드 크로스에요~
(둘이 잘해바~!😉)

이슈 발생이 많았지만 웃고 이겨내는 나연님이에요~

아찔한 오류 메세지죠? 괜찮아요 금방 익숙해질거에요~
(근데 금방이 언젠지는 몰라요...일단 전 아직 안왔어요...)

다들 이번 세션에서도 엄청난 집중력을 보여주셔서 정말 감사했어요~
(다들 최고최고~!👍👍👍)

세션 완료 후에 과제 질문까지!!
(진짜 다들 열정라이언~열라~🔥🦁킄크)

그 열정에 보답하고자 운영진들도 검색을 동원하며 같이 이슈 해결을 진행했답니다!

다들 이번 세션도 잘 따라와주셔서 정말 감사해요!!

대규모 이슈 발생에도 세션을 잘 이끌어주신 나연님께 박수를 보냅니다!! 👏👏👏

다음 세션은 10기 아기사자, 11기 대표, 12기 운영진으로 3대째 활동중인 12기의 유일한 기디,

🃏강민님🃏의 노션으로 서비스 기획하기 + UI/UX 디자인 기디 세션으로 찾아오겠습니다~!

다들 중간고사 잘보고 오세요~!😄

profile
한국외국어대학교 글로벌캠퍼스 멋쟁이 사자처럼

0개의 댓글