- TIL [TIL] #17. self에 대하여 self 의 의미 Python에서 함수의 인자로 self 를 지정해놓는 경우를 볼 수 있다. 도대체 이 self 는 어떤 것을 의미하는 것일까? 결론을 먼저 말하면 self 는 객체의 인스턴스 그 자체를 의미한다. 이것을 이해하기 위해서는 먼저 Class에 대해 이해를 해야한다. 클래스는 변수와 함수를 묶어서 새로운 객체(타입)으로 만드는 것이다. 이렇게 만든 클래스를 사용하기 위해서는 인스턴스를 생성해야한다. 인스턴스는 클래스에 정의된 속성을 가지는 객체, 흔히 비유하는 붕어빵틀(클래스)로 찍어낸 붕어빵(인스턴스)이다. 인스턴스를 생성하는 방법은 클래스명() 으로 생성할 수 있다. 클래스 내부에 정의된 함수는 메서드(method)라고 하는데 이 때 메서드의 첫번째 인자는 반드시 self 여야 한다. 사..
- TIL [TIL] #16. ORM ORM이란? ORM은 Object-Relation Mapping의 약자로 객체(Object)와 관계형 데이터베이스(Relational Database)를 매핑(Mapping)해주는 것을 말한다. 직접 SQL문을 작성하여 데이터베이스를 핸들링 하지 않고 Class로 정의된 객체간의 관계를 기반으로 SQL문을 자동으로 생성하여 데이터베이스를 핸들링할 수 있게 해준다. django의 경우, 프로젝트 폴더 내에 models.py 파일이 ORM과 관련된 파일이다. 이 파일에 클래스를 작성함으로써 관계형 데이터베이스를 설계할 수 있다. ORM의 장단점 Pros 객체지향적인 코드로 인해 직관적인 코드 작성이 가능하다 SQL이 아닌 클래스의 메소드로 DB를 핸들링하므로 개발자가 객체 모델만 이용하여 로직을 구현하는 일..
- TIL [Project] Westagram #1 프로젝트 목표 회원가입/로그인 기능 구현. 웹 사이트에서 가장 기본이 되는 기능이므로 확실하게 알아두자. 프로젝트 구현 과정 모델링 회원가입에 필요한 정보는 이메일(또는 휴대전화번호) 이름(실제 사람 이름) 사용자 이름(인스타그램 내에서 사용하는 이름) 비밀번호 4가지 정보를 생각하고 모델링을 했다. 위 정보를 기반으로 models.py를 작성했다. from django.db import models class User(models.Model): email = models.CharField(max_length=300) name = models.CharField(max_length=45) nickname = models.CharField(max_length=45) password = models.CharF..