본문 바로가기

내일 배움 캠프/WIL

WIL) 7주차

 


이번주 회고

  • 쿠키 vs 로컬 저장소
    • 쿠기는 매번 모든 요청에서 실려서 보내지고, 최대 4096바이트까지만 저장이 가능함. 그리고 만료가 존재한다
    • 로컬 저장소는 최대 5메가 바이트까지 저장이 가능하고, 만료가 없다

 

  • 자바스크립트 변수 선언 3가지 방법
    • 자바스크립트에는 따로 데이터 타입을 지정하지 않아도 선언된 변수에 모든 값을 넣을 수 있다.
    • var 
      • 값을 지정하지 않으면 변수에 "undefined" 값이 들어간다
      • 블록 범위에서 사용이 가능한 선언자이다. 함수에서 선언되었다면 함수 전체에서 사용이 가능한 범위를 말한다
      • 선언하지 않은 변수에 값을 지정하면 자동으로  var선언으로 간주하여 전역 변수로 생성된다
      • 함수 안쪽이 아닌 코드 최상단 공간에 있는 변수중 var로 선언된 변수는 모두 전역 변수로 생성이 된다
    • let 
      • 선언된 구역, 즉 블록, 구문 또는 표현식 내에서만 사용할 수 있는 변수 선언이다
      • 선언된 블록 범위에서 같은 변수 이름으로 선언하면 에러가 발생한다
    • const 
      • 한번 값이 저장되면 값을 변경할 수 없는 변수 선언이다
      • 선언할 때 초기값을 지정해야 한다.
  • js 문법

window.onload = () => {} 

  • 페이지가 로드되면 자동으로 실행되는 전역 콜백함수
  • 페이지의 모슨 요소들이 로드되어야 호출된다
  • 한 페이지에서 하나의 window.onload() 함수만 적용된다

async function & await

  • async와 await는 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법. 기존의 비동기 처리 방식인 콜백 함수와 프로미스의 단점을 보완하고 개발자가 읽기 좋은 코드를 작성할 수 있게 도와준다
  • 함수의 앞에 async 를 붙인다. 그후 함수의 내부 로직 중 HTTP 통신을 하는 비동기 처리 메서드 앞에 await를 붙인다.

document.getElementById("id")

  • 태그안의 ID값을 이용해서 오브젝트에 접근할 수 있게 하는 방법
  • 주어진 문자열과 일치하는 id 속성을 가진 요소를 찾고, 이를 나타내는 Element 객체를 반환한다. 특정 요소를 빠르게 찾을 때 유용하다
  • document.getElementById("id").value 는 input 태크의 id에 구분되는 element를 가져와 그것의 값을 가져오라는 뜻  

localSrorage.setItem("저장할 key이름", 저장할 value)

  • html의 local storage에 key와 value를 저장하는 방법, 

 

  • 스택틱 파일 
    • 웹사이트에는 주로 이미지, 자바스크립트나 css 같은 추가적인 파일이 필요한데, 장고에서는 이런것들을 스택틱 파일이라고 부른다. 즉, 스택틱 파일에 해당하는 것들은 사용자의 요청에 따라 내용이 바뀌는 것이 아닌 요청한것을 그대로 내어주는 것들이다.
  • 미디어 파일
    • 사용자가 웹에 올리는 파일
<settings.py 설정>
STATIC_ROOT = BASE_DIR / "static"
STATIC_URL = '/static/'

MEDIA_ROOT = BASE_DIR / "media"
MEDIA_URL = "/media/"

 

  • serializer
    • Response()를 사용하기 위해서는 serializers.py를 만들어 주어야한다.
# settings.py
from rest_framework import serializers
from articles.models import Article
	
# ModelSerializer 클래스는 Serializer 클래스를 사용하며, create(), update() 등의 기능을 제공합니다.
class ArticleSerializer(serializers.ModelSerializer):
	# Meta 클래스는 어떤 모델을 사용할지 정의하며, 해당 모델에서 어떤 필드를 사용할지 정의합니다.
	# fields의 값을 __all__로 사용하는 경우, 모델의 모든 필드를 사용합니다.
	# 만약, 특정 필드만 사용한다면 fields = ("email", "name", "age", ) 등의 형태로 사용하려는 필드만 적용할 수 있습니다.
	class Meta:
		model = Article
		fields = "__all__"
  • serializers.py에서 class Meta 안의 필드를 지정해줄때 __all__이 아니라 하나만 지정해주고 싶을때에도 반드시 ,(콤마)를 붙여주어야 한다 
class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ("content",)

 

<참고> serializers.SerializerMethodField()를 통해 필드에 들어오는 값들을 변경해줄 수 있다! 여러 방법이 있으니 참고하자. https://www.django-rest-framework.org/api-guide/fields/#serializermethodfield

 

Serializer fields - Django REST framework

 

www.django-rest-framework.org

 


이번주를 진행하며 느낀점

 

drf가 배울 때는 엄청 편리 했었지만, 막상 직접 써보려니까 너무 암기식으로만 해서 이해가 잘 안되는 부분이 생겨났다. 특히 강의에서 custom model을 사용했는데, 원하는 것을 추가 해주고 싶어도 어떤 식으로 추가해주어야 하는지 몰라서 난항을 겪었다. 공식문서 활용을 잘 해주어야 하는데 보는게 생각보다 어렵다..

 


이번주 목표 달성 여부

  • 장고 심화 개인 프로젝트 기한 내 제출 하기
  • 팀원과 알고리즘 하루에 최소 1개 씩 꼭 풀기 ( 혼자서 몇문제씩 더 풀어야함! )
  • 아는게 있으면 하나라도 더 팀원들에게 알려주기

 


다음주 목표

  • drf 개인 프로젝트 및 개인 해설 복습
  • 팀원과 알고리즘 하루에 최소 1개 씩 꼭 풀기 ( 혼자서 몇문제씩 더 풀어야함! )
  • 알고리즘 풀고 다른 사람 풀이 보면서 함수들 활용하는법 공부하기

'내일 배움 캠프 > WIL' 카테고리의 다른 글

WIL) 8주차  (0) 2023.05.07
WIL) 6주차  (0) 2023.04.24
WIL) 5주차  (0) 2023.04.18
WIL) 4주차  (1) 2023.04.10
WIL) 3주차  (0) 2023.04.03