BackEnd

Django에서는 데이터베이스 모델 간의 관계를 정의하기 위해서 다양한 필드 타입을 제공하는데 공부를 하던 중 OneToOneField와 ForeignKey의 차이점이 잘 이해가 안갔다. 그래서 공부하면서 알아낸 내용을 정리하려고 한다. 관계의 유일성 OneToOneField는 관계를 유일하게 만든다. 각 객처는 하나의 관계만 가질 수 있다. ( 1 : 1 ) ForeignKey는 관계를 여러개의 객체사이에서 공유될 수 있다. 하나의 객체는 여러개의 다른 객체와 관계를 맺을 수 있다. ( 1 : N ) NULL값의 허용 OneToOneField는 기본적으로 OneToOneField는 관련된 객체가 반드시 존재해야한다. ForeignKey는 기본적으로 Null값을 허용한다. 관련된 객체가 없을 수 있으며 ..
양방향 참조와 단방향 참조는 Django의 모델 간의 관계 설정에서 중요한 개념이다. 이들은 모델 간의 사용 작용과 정보 접근에 영향을 미치며 적절한 관계 설정을 통해 데이터 베이스의 구조와 동작을 효과적으로 설계할 수 있다. 양방향 참조 양방향 참조는 두 개의 모델이 서로 참조하는 관계로 모델 A를 통해서 모델 B에 접근 할 수 있고 모델 B를 통해서 모델 A에 접근 할 수 있다. 이러한 양뱡항 참조를 통해서 두 모델은 상호 작용하고 정보에 접근할 수 있다. 예를 들어, 사용자(User)와 사용자 프로필(UserProfile)이라는 두개의 모델을 가지고 있다고 가정하면 사용자 모델은 사용자 프로필을 참조한다. 반대로 사용자 프로필 모델 역시 사용자 모델을 참조한다. 이렇게 설정된 양방향 참조는 사용자와..
Django에서 models 데이터의 생성 시간, 업데이트 시간을 기록하기 위해 created_at, updated_at 필드를 생성하여 관리하여 주는데 이 필드들은 모델을 생성할 때마다 넣어줘야 한다. 예를 들어 게시물, 유저, 댓글 등등 많은 부분에서 중복사용되고 우리는 이러한 중복사용을 최소하 하기 위한 방법이 바로 추상화 클래스이다.  추상화 클래스는 모델 클래스의 추상화 버전으로, 실제 데이터베이스에 저장되지 않는 클래스이다. 이 클래스는 상속을 통해 다른 클래스에 적용시켜줄수있다. 가장 흔히 접했던 추상화 클래스는 'AbstractBaseUser', 'AbstractUser', 'AbstractBaseClass', 'AbstractMethod' 등이 있는데 이 추상화 클래스를 이용하여 나는 앞..
Django에서는 앱을 생성하면 test파일을 자동으로 앱 파일 안에 만들어준다. 하지만 앱의 test파일을 루트 파일 밑에 test 디렉토리를 만들어서 나누는 것은 여러 이점들이 있어서 이렇게 한다고 한다. Test 파일을 만들어 관리하면 좋은 이유 테스트 코드의 모듈화 테스트 코드를 다양한 파일로 분리함으로써, 테스트 코드의 모듈화가 가능해진다. 이렇게할 경우 특정 부분만 수정해도 전체 테스트 코드를 수정할 필요가 없어져, 유지 보수가 편리해진다. 테스트 코드의 가독성 테스트 코드를 비지니스 로직과 분리하여 작성하면 가독성이 좋아지며, 특정 테크트 케이스를 찾는 것도 용이해진다. 테스트 실행의 효율성 테스트 코드를 파일별로 분리하여 실행하면, 필요한 부분만 테스트를 할 수 있다. 이렇게 할경우 전체 ..
이 글은 어디까지나 본인이 보고 알아볼 수 있을 정도로만 작성되었으므로 소셜로그인을 한번 구현해 본 사람이 보거나 처음 구현하는데 자세히 알고 싶으면 더 좋은 블로그가 많으니 찾아보는 게 좋을 거 같다. 카카오톡 디벨로퍼 설정 카카오톡 디벨로퍼는 검색을 하면 전부 다 뜨지만 알아야 되는 정보는 따로 정리해 두는 게 좋을 것 같아서 정리해 두려고 한다. 카카오톡 로그인 후 애플리케이션 생성 Redirect URL REST API 키 변경해줘야 하는 코드 settings.py # AUTHENTICATION_BACKENDS은 새로 만들어주어야함 AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'allauth.account.aut..
Jong_seoung
'BackEnd' 카테고리의 글 목록 (13 Page)