전체 글

시작했을 때의 첫 설레임으로
· ✍ Journal
한 해 동안 꽤 많은 일이 있었다. 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..
· 🗄 SQL
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 위와 같은 결과가 나타날 것이..
· 🗄 SQL
SELECT * FROM 프로그래밍 언어를 처음 배울 때 우리는 Hello World!를 출력해보곤 한다. SQL에서의 Hello World!는 SELECT 명령이다. SELECT * FROM 테이블명; 👉SELECT와 * 그리고 FROM 사이에는 스페이스를 넣어 구분한다. 👉FROM과 테이블명 사이에도 스페이스가 필요하다. 👉명령의 입력이 끝나면 명령의 마지막을 나타내는 세미콜론(;)을 넣은 뒤 Enter를 누른다. 세미 콜론을 붙이지 않고 Enter를 누르면 입력 중인 것으로 간주하여 명령문은 실행되지 않는다. Enter 키를 누르면 입력한 SQL 명령이 서버에 전달되며 서버는 이를 실행한 후 결과를 반환한다. 👉위 명령을 실행하면 입력한 테이블명에 해당하는 테이블이 선택되어 반환된다. 이 명령으로 ..
· Etc
오늘은 노트북 메모리를 4GB에서 8GB로 업그레이드 해보겠습니다 CPU-Z 프로그램을 설치해 확인해보면 현재 메모리의 용량와 타입을 확인할 수 있습니다. 타입과 업그레이드 하고 싶은 용량을 확인해 메모리를 구입하면 됩니다. 저는 8GB 메모리를 구입했습니다. 노트북 뒷면의 나사를 다 풀어줍니다. 빨간 색 네모안에 있는 부분이 메모리 입니다. RAM을 감싸고 있는 부분을 손가락 양쪽으로 살짝 눌러주면 RAM이 살짝 빠져나옵니다. 이렇게 기존에 있던 RAM을 제거해줍니다. 교체할 RAM을 홈에 잘 맞춰서 끼워줍니다. 맞춰진 RAM을 손가락으로 살짝 눌러주면 잘 고정됩니다. 노트북 뒷면 나사를 잘 조여주고 컴퓨터를 켜 RAM 용량을 확인해보면 8GB로 잘 교체된 것을 보실 수 있습니다. 노트북 램 교체 참 ..
rimchoi
Way to Programmer