한 해 동안 꽤 많은 일이 있었다. 2021년을 요약하면, 열심히 쉬고 열심히 코딩했던 한 해였던 것 같다. 1. 퇴사 일을 하며 부트캠프에 등록하고 이번 년도 2월에 퇴사를 했다. 퇴사한게 정말 어제 일 같은데 시간이 정말 빠르게 지나간 것 같다. 퇴사를 하고 열심히 놀고, 읽고 싶었던 책들도 열심히 보고, 공부도 짬짬히 했다. 백수로서의 행복한 시간을 즐겼다 😅 그리고 부트캠프 들어가기 전 부트캠프 동기들과 사전 스터디도 하며 코딩의 세계에 본격적으로 입문할 수 있었다. 2. 부트 캠프 수료 7월에 부트 캠프 개강을 했다. 최선을 다해 열심히 한 기간이었다. 초반에는 따라가기 벅차서 힘든 시간도 있었지만 지금 돌아보면 다 의미있었던 시간이었던 것 같다. 누군가가 부트캠프에서 학습을 한 것을 후회하지 ..
전체 글
시작했을 때의 첫 설레임으로Django Management Command는 python manage.py shell, python manage.py migrate 와 같이 우리가 장고를 사용할 때 자주 사용하는 명령어를 말한다. 우리는 이 Django Command를 Custom하여 원하는 동작을 원하는 명령어로 커스텀하여 만들어 줄 수 있다. custom command 만들기 원하는 app 폴더 밑에 management 폴더를 만들고 그 밑에 commands 폴더를 만든다. 앱이름/management/commands이런 구조가 되어야 한다. 폴더를 만들었으면 commands 폴더 밑에 원하는 명령어 이름으로 파일을 생성한다. 만약 python manage.py insert_data_to_db 라는 커스텀 command를 만들고 ..
JWT로 로그아웃 구현하기 jwt 토큰으로 로그아웃을 할 수 있을까? 가계부 서비스에서 jwt를 사용하여 로그인 토큰을 발급하였다. 그런데 jwt 토큰으로 로그아웃을 하려니 어떻게 해야 할 지 모르겠어서 해결 방법을 찾아보려 한다. JWT 로그인 JWT 토큰의 작동방식은 이렇다. 유저가 로그인을 한다. db에서 유저정보를 조회한 뒤 유저정보가 일치하면 로그인과 동시에 JWT 토큰을 발급한다. 토큰을 클라이언트에게 전달한다. 클라이언트에서 api 요청을 할 때 토큰을 Authorization header에 담아서 보낸다. 서버는 토큰을 decode하여 유저 정보를 획득한다. db에 토큰에서 얻은 유저 정보와 일치하는 유저가 없을 시 에러를 반환하고 유저가 존재할 시 api 요청의 응답을 받을 수 있다. 그..
💤 ORM은 게으르다 (Lazy Loading) # models.py from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __str__(self): return self.name class Author(models.Model): name = models.CharField(max_length=200) email = models.EmailField() def __str__(self): return self.name class Entry(models.Model): blog = models.ForeignKey(Blog, on_delete..
Django ORM이란? Django ORM이란 Object Relational Mapping의 줄임말이며 객체(Object)와 관계형 데이터베이스(Relational)을 연결(Mapping) 해준다는 뜻이다. 위의 말만 들어서는 Django ORM이라는 것이 잘 와닿지 않는다. 조금 풀어서 설명한다면, 데이터베이스에 접근하여 원하는 데이터를 뽑아오기 위해서는 원래 SQL 쿼리문을 사용해야 하였다. 그런데 Django ORM을 사용한다면 쿼리문 없이 파이썬 코드만으로 데이터베이스에 접근할 수 있다! 예를 들어보자. from django.db import models class User(models.Model): name = models.CharField(max_length=45) email = model..
DESC DESC 명령은 테이블 구조를 참조하는 명령어이다. (DESC는 SQL 명령이 아니다.) id name birth 1 최혜림 1234.01.01 2 김영희 2000.10.10 3 김철수 1997.01.01 위와 같은 users 테이블이 존재한다고 가정해보자. id column은 정수형(int) 자료형이고 name column은 문자형(varchar) 자료형이며 birth는 날짜형(date) 자료형이다. DESC users; 만약 DESC 명령으로 users 테이블을 읽어온다면 어떻게 될까? Field Type Null Key Default Extra id int(11) YES NULL name varchar(20) YES NULL birth date YES NULL 위와 같은 결과가 나타날 것이..
SELECT * FROM 프로그래밍 언어를 처음 배울 때 우리는 Hello World!를 출력해보곤 한다. SQL에서의 Hello World!는 SELECT 명령이다. SELECT * FROM 테이블명; 👉SELECT와 * 그리고 FROM 사이에는 스페이스를 넣어 구분한다. 👉FROM과 테이블명 사이에도 스페이스가 필요하다. 👉명령의 입력이 끝나면 명령의 마지막을 나타내는 세미콜론(;)을 넣은 뒤 Enter를 누른다. 세미 콜론을 붙이지 않고 Enter를 누르면 입력 중인 것으로 간주하여 명령문은 실행되지 않는다. Enter 키를 누르면 입력한 SQL 명령이 서버에 전달되며 서버는 이를 실행한 후 결과를 반환한다. 👉위 명령을 실행하면 입력한 테이블명에 해당하는 테이블이 선택되어 반환된다. 이 명령으로 ..
오늘은 노트북 메모리를 4GB에서 8GB로 업그레이드 해보겠습니다 CPU-Z 프로그램을 설치해 확인해보면 현재 메모리의 용량와 타입을 확인할 수 있습니다. 타입과 업그레이드 하고 싶은 용량을 확인해 메모리를 구입하면 됩니다. 저는 8GB 메모리를 구입했습니다. 노트북 뒷면의 나사를 다 풀어줍니다. 빨간 색 네모안에 있는 부분이 메모리 입니다. RAM을 감싸고 있는 부분을 손가락 양쪽으로 살짝 눌러주면 RAM이 살짝 빠져나옵니다. 이렇게 기존에 있던 RAM을 제거해줍니다. 교체할 RAM을 홈에 잘 맞춰서 끼워줍니다. 맞춰진 RAM을 손가락으로 살짝 눌러주면 잘 고정됩니다. 노트북 뒷면 나사를 잘 조여주고 컴퓨터를 켜 RAM 용량을 확인해보면 8GB로 잘 교체된 것을 보실 수 있습니다. 노트북 램 교체 참 ..