TIL

👀Today I Learn

Framework

웹페이지를 만드려면?

  • 필요한 것 : 회원가입, 유저기능, 회원탈퇴, 비밀번호 변경, 데이터베이스, 보안, 좋아요 기능 등등
  • 위의 내용을 어떻게 만들지? 🤔
    • 방법 1 : 프로그래밍 언어를 이용하여 하나하나 모두 만들기
      • 장점
        • 내가 모든 것을 이해하고
        • 모든 것을 내뜻대로 동작하게 만들 수 있음
      • 단점
        • 내가 모든 것을 잘 알아야함! > 특성, 보안, DB 등등
        • 시간이 너무 오래걸림!!
    • 방법 2 : 이미 만들어진 것을 가져와서 사용하는 것
      • 로그인/ 로그아웃 같은 많은 기능들이 웹사이트마다 비슷함! (거의 똑같은편)
      • 장점
        • 내가 모든 것을 만들지 않고 가져다 사용하는 방식으로 개발 가능
        • 빠르게 만들 수 있음
      • 단점
        • 처음에 러닝 커브가 존재 > 사용하는 방법을 알아야함
        • 든 것을 내 마음대로 커스텀이 어려움

프레임워크(Framework)란?

  • 소프트웨어 개발을 위한 구조적인 틀
    • 개발자들이 프로그램을 만들때 자주 사용하는 여러 도구를 모아놓은 것
    • 특정한 작업이나 목적을 수행하기 위한 코드 뭉치
    • ex. Django, Flask, FastAPI, …
  • 왜 사용할까?
    • 생산성이 아주 높아짐
    • 부가적인 부분은 프레임워크에 맡기고, ‘핵심 로직’에만 집중 가능
    • 구조적으로 안정적인 형태로 개발 가능 ⇒ 프로그래밍을 잘하는 사람들이 모여서 만드는 것이기 때문에 안정적
    • 빠르고 안정적이며, 높은 품질의 소프트웨어 개발 가능
  • 거인의 어깨 위에서 프로그래밍 하기
    • 모든 걸 직접 개발할 필요가 없다!
    • 잘 만들어져 있는 것을 가져와서 잘 사용하는 것이 능력!


Why Django?

  • 왜 장고를 써야할까?🤔
    • Python 기반의 웹 프레임 워크
      • 장고를 다루기 위해 다른 언어를 배울 필요 없음
      • 파이썬을 사용하여 웹 개발 가능
    • 웹 프레임워크
      • 빠른 웹개발을 위한 모든 것이 준비되어 있음

Why Django?

  • DRY(Don’t Repeat Yourself) 원칙
    • 코드 중복을 최소로하는 개발 원칙을 따름
  • 모든것이 갖춰진 프레임워크
    • 보안, 관리자기능, Auth 등
    • 모든것이 준비되어있음
  • 풍부한 레퍼런스
    • Google과 함께라면 두렵지 않음
    • 여러분의 모든 에러는 이미 해결책이 있음
  • 검증된 프레임워크
    • 어떠한 도구(프레임워크)를 고를때는 그것을 어디에 사용했는지 봐야함 image
    • 이외에도 토스, 화해, 번개장터, 에이블리 등…

Django 설치하기

  1. 설치하기

     pip install django==4.2
    
  2. 설치 패키지 확인하기

     pip list
    
    • 결과

      image

    • Django 만 설치했는데, 다른 것도 설치되는 이유?

      • 의존성 때문
      • 이 버전들은 항상 동일해야함!
      • 그래서 작성해서 전달해야함
  3. requirements.txt에 freeze하기

    • 현재 설치된 목록을 requirements.txt에 명시
    • 앞으로 설치를 하고 나서 항상 이 과정을 진행해야함
       pip freeze > requirements.txt 
      
         - 만들어진 `requirements.txt`를 읽어오는 법
      
    • requirements.txt를 한줄씩 읽으면서 모두 설치를 해줌
       pip install -r requirements.txt
      

LTS(Long Term Support)

  • 가장 최신버전이 제일 좋을까?
    • 어떤 패키지를 선택 & 설치할 때는 반드시 호환성을 고려해야 함
    • 가장 최신버전은 모든 것을 호환하지 않을수도 있음
    • 프로젝트 호환성이 높고 오래 사용할 수 있는 버전을 선택하는 것이 좋음
  • LTS 버전은 오랜기간동안 지원됨!
  • 그렇다면 파이썬도 있을까?



💡Today I Thought

오늘의 체크리스트

  • 알고리즘 코드카타 61-70
  • SQL 코드카타 55-56
  • 백준 코딩테스트 1문제
  • 장고 강의 듣기
  • TIL 작성
  • WIL 작성

회고

  오늘 팀도 바뀌고, 스탠다드반 수업도 하고, 장고 강의도 듣고 하다보니까 하루가 다 지나갔다. 정신없는 하루.. 장고 이번주에 다 듣고 싶었는데, 실습하다보니까 그렇게 하지도 못하구.. 좀 마음에 안드는 하루였다.

댓글남기기