0103 TIL

looggi·2023년 1월 3일
0

스파르타 내배캠 AI-3

목록 보기
112/130
post-thumbnail

Django 50문 50답 1-26

  1. Django가 무엇인지 설명하시오
  • Django는 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발할 수 있음
  • 무료 오픈소스
  • ORM, user auth 기능등 다양한 기능들을 내장해 빠르게 웹 어플리케이션을 만들 수 있음
  • python의 대표적인 웹 프레임워크
  • Instagram, Pinterest, Mozilla, National Geographic..
  1. Django를 백엔드 스택으로 선정한 이유는 무엇입니까?
  • 웹 페이지를 만드는 전 과정을 빠르게 익히고 싶었고 구현을 우선적으로 생각해 먼저 페이지를 만들고 나서 이후에 스택을 다양하게 넓혀보자는 생각으로 장고를 선택하게 되었습니다.
  • ORM을 활용하여 SQL을 적지 않고도 Python 언어로 DML(데이터 조작어)을 수행할 수 있습니다. (nonSQL)
    객체지향적인 코드를 통해 데이터를 다루기 때문에 코드 가독성이 높고, 이는 생산성을 높여줍니다.
    또 lazy-loading(페이지를 불러오는 시점에 당장 필요하지 않은 리소스들을 추후에 로딩하게 하는 기술)이나 caching 같은 기능을 통해 불필요한 쿼리를 줄여주기도 합니다.

2-1. 자바/c언어를 추후에 공부하고 싶다

  1. Postgresql의 장점
    https://smoh.tistory.com/370

Time Complexity (시간 복잡도)

  • 효율적인 알고리즘 구현 방법을 고민하기 위한 척도
  • 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가
  • Big-O 표기법을 이용해 나타낼 수 있음

lazy loading은 페이지를 읽어들이는 시점에 중요하지 않은 리소스 로딩을 추 후에 하는 기술. 대신에 이 중요하지 않은 리소스들은 필요할 때 로드가 되어야 합니다.

hash: 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수

  1. 양식(form)은 보통 사용자가 입력한 값을 활용하기 위해 사용한다. 하지만, 사용자가 입력하지 않아도 필요한 값이 있을 수 있다. 사용자가 접속한 IP, 로그인한 상태에서의 계정 정보, 게시물의 답글인 경우 게시물의 ID 등을 예로 들 수 있다. CSRF도 마찬가지.

이러한 값들은 type이 hidden인 input 태그로 만들어서 넘긴다. 다른 type의 input과 마찬가지로 이름은 name, 값은 value로 정한다.

<input type="hidden" name="" value="">
  1. 삭제하기보단 유저의 기능을 정지시킨다. 유저가 활동했던 레코드들이 그 이유가 된다. 웹서비스느느 특성상 유저테이블은 다른 테이블과의 연관성이 많다. 따라서 유저의 정보를 삭제한다면 연관된 모든 테이블이 삭제되거나 연관된 부분에서 유저만 빠져서 에러를 일으킬 수 있기 때문에 회원 탈퇴나 게시글 삭제등의 기능을 구현할 때도 delete()로 해당 레코드를 삭제하기보단 정지시키는 편

  2. 역참조 다시 정리

  3. runserver는 정적 및 동적 페이지 구동이 모두 가능하지만 디버깅 및 테스트용이기때문에 보안과 성능테스트를 거치지 않아서 웹서버로 권장하지 않습니다.

profile
looooggi

2개의 댓글

comment-user-thumbnail
2023년 3월 1일

장고의 lazyloading : javascript의 비동기와 다르게 데이터베이스에서 lazyloading 이 되니까 장점이 될 수 있나?

답글 달기
comment-user-thumbnail
2023년 3월 1일

규모가 커질수록 -> 구분 -> api로 간다

답글 달기