[SSAC X 코딩온] (2021.09.07) Django 프로젝트 질문 정리_01

RyuSW·2021년 9월 10일
0
post-thumbnail

📡 Django 서버 상시 켜주는 방법


  • ctrl + alt + delete 누르면 작업관리자로 들어갈수 있다.

  • 지금까지 Putty Django 서버를 포어그라운드가 프로세스를 실행하고 있었다.

  • Django를 백그라운드 프로세스에서도 돌릴 수 있다.

  • Ubuntu에서 백그라운드 프로세스 죽이는 법을 배울 것이다.

  • 명령어 뒤에 &를 붙이면 된다.

  • python3 manage.py runserver 0.0.0.0:8100 & ← 백그라운드로 실행하라는 뜻

  • 단, 앞에 있는 명령문의 종류에 따라서 이 명령어가 출력문을 내는 명령어가 있고 출력문를 내지 못하는 명령어도 있다.

  • 얘네가 우리한테 계속 리포트를 해줘야 한다.

  • nohup python3 manage.py runserver 0.0.0.0:8100 & 를 입력하면 nohup.out 에 기록하겠다고 선언한다.



📡 Favicon이란?


  1. 인터넷 탭 Naver 옆에 조그만 아이콘 모형을 말한다.

  2. 사이즈는 24px X 24px로 만들면 된다.

  3. Favicon Generator에서 만들면 된다.

    https://www.favicon-generator.org/



📓 DataBase 정규화


정보처리기사와 SQLD 공부하면서 뇌에 박히도록 외웠던 내용들이 그대로 기억났다. 역시 사람은 잊어먹으려 해도 몸이 알아서 기억을 해준다


  • 데이터베이스 최적화라고 부르기도 한다.

  • 어떻게 하면 최소한의 저장공간으로 최대한 효과를 낼 수 있는가?

  • 기본키 ( Primary Key )

  • 외래키 ( Foreign Key )

  • 고유키 ( Unique Key )


  • '고객' 테이블과 '장부' 테이블을 만들었을 때 출생연도가 다른 동명이인이 생길 수 있다.

  • 데이터베이스를 하나 더 만들면 된다.

  • 테이블을 여러 개 쪼개는 것이 좋다.

  • 테이블을 너무 많이 쪼개면 조잡해질 수 있기 때문에 너무 많이 쪼개지 않아야 한다.

  • index key : 인덱스!! 색인!!

  • 테이블.objects.filter(userid=userid)

  • 날짜 순으로 색인이 걸려있다면 알아보기 좋기 때문에 시간을 sorting해서 정렬한다.

  • 인덱스를 걸어놓으면 저장 공간을 더 사용할 수 있지만.나중에 프로그래밍에서 검색을 더 빨리 할 수 있게 도와준다.

  • 인덱스키는 한 테이블의 복수 개의 키도 가능하다.


  • 자기 DB가 효율적인지 자가진단 하는 법

    • 더 이상 테이블을 쪼갤 수 없는가?

    • 테이블을 구성하고 있는 필드는 고유하게 필요한 정보인가?
      (혹시 다른 정보로 유추가 가능한 중복 정보는 아닌가?)

    • 다른 테이블의 정보를 유추하게 하는 필드의 값은 반드시 PK인가?!

    • 한 테이블의 필드가 다른 테이블의 필드를 참조할 경우 외래키가 설정되어 있는가?!
      (테이블과 테이블 간의 관계가 제대로 설정되어 있는가?!)


  • Primary Key : 1개 (Unique Key, Index Key)

  • Foreign Key : n개 (같이 삭제)

  • Unique Key : n개

  • Index Key : n개


  • 테이블 관계

    • 1 : 1 : 한 엔터티와 대상 엔터티는 단 하나의 관계만을 맺어야 한다.

    • 1 : N : 한 엔터티가 다른 엔터티들과 여러 관계를 맺을 수 있다.

    • N : M : 양쪽 엔터티가 서로 여러 관계를 맺을 수 있다.

출처 : https://gmldbd94.tistory.com/4


  • Django에서 활용하기 위해서는?

    • admin페이지는 테이블 페이지 컬럼만 만들 수 있는 거지 관계를 나타낼 수는 없다.

    • 다만, admin페이지에서 중계필드를 만들 수 있다.



🍍 CKEditor 5 Demo 사이트

https://ckeditor.com/ckeditor-5/demo/


오늘의 질문 모음


  • try except문을 쓰는 이유는 에러발생 가능성이 농후한 곳을 except문에서 catch에서 거기서 잡을 해줄 수 있음

  • 예를 들어서, 키값이 잘못되서 에러 발생 사이트를 띄우는 대신 except문에서 알람이나 따로 띄움

  • 페이지를 로그인에서 보냇는데 웹브라우젱 url잇는곳에 로그인이 잇기를 바람 근데 url이 잇는곳에 signed에서 벌어진 내부의 일이기 때문에 실제 web브라우저에는 signed에 남아잇음.

  • 왜 회원가입 하고나서 로그인 화면 url에는 회원가입완료 주소가 남아있는 것일까??

  • redirect값을 쓰면 주소가 변경된다. 근데 이슈가 redirect로 회원가입이 완료되었습니다라는 알람을 못띄움. 그래서 url뒤에 /를 달아서 signup_success로 보낼 것이다. 그리고 거기에 자바스크립트로 회원가입이 완료되었습니다를 띄울것이다. 그럴려면 url 설정이 번거로울 수 있지만 그렇게 해야 한다.

  • 페이지에서 alert를 띄우고 바로 보내던지 그렇게 해야될 것 같다



😫 수업 후기


개인 프로젝트에서 막히는 게 너무 많아서 질문조차 버거울 때가 많다. 다행히 도와주는 수강생 몇 분들덕에 겨우 프로젝트를 이어나갈 때가 있지만 다음 주면 내가 어떤 모습일지 벌써 참담하다 ㅠㅠ 오늘 수업에서 들은 데이터베이스 관련 내용들은 정보처리기사와 SQLD 준비하면서 머리가 아프도록 많이 외웠던 개념들이라 이해하기는 매우 수월했다. 근데 ORM 시스템을 채택하고 있는 Django에서 내가 잘 써먹을 수 있을까😂

profile
배운 것은 항상 그 때 문서화하자!

0개의 댓글