2023/08/31 개발일지 (코딩테스트, 장고 개념 이해, 장고 프로젝트 구조 훑어보기)

장현웅·2023년 8월 31일
0

1. 코딩테스트


  • 두 정수 사이의 합 (링크텍스트)

    회고

    range(a, b)함수는 a가 b보다 클 경우 빈 리스트를 반환하니까 range(a, b)가 True이면 range(a, b+1)의 합을 반환해주고 False면 range(b, a+1)을 반환해보려고 했는데..
    True일 경우는 안되고 False인 경우만 잘 작동했다.. 그래서 처음부터 다시 해보기로 했다.
    이 문제의 핵심은 'a와 b의 대소관계가 정해져있지 않다'는 제한조건이었다. 식에서 등호를 쓰면 안된다. 그러던 중 'a와 b의 최소값과 최댓값을 range()와 이용해보면 되지 않을까'라는 생각이 들어서 간단한 식으로 풀 수 있었다.

2. 장고 기초


회고
장고의 원리를 이해하고 각각 어떤 역할을 하는지 이해하는데 오래걸렸다. 지금도 완벽히 이해하고 있는 것은 아니지만 전체적인 흐름과 작동이 추상적으로 그려질 정도가 되었길 바란다.

3. 장고 프로젝트


회고
연습해보면서 익숙해져야할 것보다 기억해야할 것들이 있었다. 개념을 이해하는데 시간이 많이 들었던 부분이다.

- urls.py와 views.py의 작동 순서

특정 페이지가 Request 되면, 장고가 HttpRequest 객체를 생성
(request)

장고는 urls.py에서 정의된 특정 View 함수(views.base_response)에 첫 번째 인자로 해당 HttpRequest 객체를 전달
(base_response(request))

해당 View는 함수의 결과값을 HttpResponse 클래스의 인스턴스 객체에 담아서 클라이언트에게 전송
(return HttpResponse("안녕하세요! 장고의 시작입니다!"))

- 'views.py'가 django.http 모듈에서 HttpResponse 클래스를 임포트해오는데 'urls.py'는 HttpRequest 클래스를 임포트해오지 않는 이유

'urls.py'에서 View 함수를 호출할 때(클라이언트 요청), 이미 장고의 프레임워크 내부에서 'HttpRequest' 객체가 생성되어 넘겨주기 때문에 'views.py'의 'base_response(request)' 함수가 받은 매개변수 'request'객체는 이미 생성된 'HttpRequest'의 객체인 것이다.

'HttpResponse'클래스는 개발자가 직접 응답을 생성하여 반환할 때 사용하는 클래스로 개발자가 응답의 내용과 형식을 지정하려면 'HttpResponse' 클래스를 import하고 사용해야한다. 즉, 프레임워크 외부에서 직접 조작하는 것이기 때문에 import해줘야한다.

'HttpResponse'클래스와 'HttpRequest'객체는 서로 다른 역할을 한다.
'HttpResponse'클래스는 응답을 생성할 때 import가 필요한 경우
'HttpRequest'객체는 프레임워크가 자동으로 생성하여 View 함수에 제공하는 경우

4. 개발 아이디어 짜보기


전기나 수도 등 자원을 사용하는 곳에 사용량에 따른 요금과 얼마를 썼는지 알려주는 뭔가가 있으면 자원낭비를 좀 줄이지 않을까 생각해봤다.

0개의 댓글