분류 전체보기 161

스파르타 AI-8기 TIL(12/27)-Docker

자, 이제 다시 도커의 시간(주말동안 Docker, CSS 디자인 공부 시작) 그럼 뭐다?(참고로 다 까먹은 후) CI/CD부터 알자(참고로 CD에는 Continuous Delivery (CD)라고 지속적 제공이라는 개념이 하나 더 있습니다)CI/CD는 Continuous Integration(지속적 통합)과 Continuous Delivery/Deployment(지속적 제공/배포)의 약자로, 소프트웨어 개발과 배포 과정에서 자동화를 통해 효율성과 품질을 높이는 방법론 및 프로세스를 의미합니다.1. Continuous Integration (CI) 지속적 통합은 팀의 여러 개발자가 작성한 코드를 주기적으로 통합하고 테스트하는 프로세스를 말합니다. 개발자가 새로운 코드를 리포지토리에 푸시하면, CI 파이프..

카테고리 없음 2024.12.27

스파르타 AI-8기 TIL(12/26)-Django

드디어 끝났다! 드디어!(응 어림도 없어 다음주 팀과제~) 오늘은 ERD에 대해 조금 배워봅시다.참고로 ERD는 Entity Relationship Diagram의 줄임말로, 데이터베이스에서 서로 관련이 있는 여러 데이터를 어떻게 연결할지 보여주는 그림입니다.먼저 기본 키(PK)와 외래 키(FK)를 명확히 알아야 합니다.PK와 FK의 의미 PK (Primary Key, 기본 키): 각 테이블에서 하나의 열(컬럼)이 고유하게 모든 데이터를 식별할 수 있도록 만든 값입니다. 예를 들어, 학생 정보를 저장하는 테이블에서 학생의 학번을 PK로 설정할 수 있습니다. 이렇게 하면 같은 학번을 가진 두 명의 학생이 있을 수 없게 됩니다. PK는 중복되지 않으며, null값을 가질 수 없습니다. FK (Foreign ..

카테고리 없음 2024.12.26

스파르타 AI-8기 TIL(12/25)-Django

오늘은~즐거운 크리스마스~코딩하는 날~오늘은 솔직히 개인과제만 해서 딱히 배운것이 없다. 그냥 아 이렇고 이렇지 해서....  폼 검증에 실패했을 때의 상황? 아무튼 적절한 에러 메시지를 사용자에게 보여주려면, Django의 form.errors를 활용하여 템플릿에 에러 메시지를 출력하면 됩니다.아래는 폼의 유효성 검증 실패 시 화면에 에러 메시지를 표시하는 방법입니다.@require_http_methods(['GET', 'POST'])def signup(request): if request.method == 'POST': form = CustomUserCreationForm(request.POST) if form.is_valid(): form.save(..

카테고리 없음 2024.12.25

스파르타 AI-8기 TIL(12/24)-Django

과제 코드 User 모델 재정의 email 재정의 : unique 설정 username 재정의 unique 해제 (중복가능하게 변경) profile_image 정의from django.db import modelsfrom django.contrib.auth.models import AbstractUserclass User(AbstractUser): email = models.EmailField('이메일', unique=True) username = models.CharField('닉네임', max_length=150) # unique=True 제거 profile_image = models.ImageField('프로필 이미지', upload_to='profile_images/', blan..

카테고리 없음 2024.12.24

스파르타 AI-8기 TIL(12/23)-Django

Serializer 활용하기1. 역참조 데이터 추가하기그런데 아티클따로, 댓글따로, 너무 이상하지 않나요? 아티클로 들어가면 댓글까지 보이게 할 수 있습니다. 이건 Serializer를 사용해 가능케 할 수 있습니다.여기에 보면, 사실 Article에는 아직 comments 정보는 없지만, Meta위에 추가해줄 수 있습니다.Nested Relationships Serializer는 기존 필드를 override 하거나 추가적인 필드를 구성할 수 있으며 이때 모델 사이에 참조 관계가 있다면 해당 필드를 포함하거나 중첩할 수 있습니다. 결국 조작해줘야할 것은 Serializer입니다.이렇게 말입니다(참고로 Comment가 위로 가 있는 이유는 먼저 처리가 되어야 하기 때문)즉, 포함되는 클래스가 안으로 들어가..

카테고리 없음 2024.12.23

스파르타 AI-8기 TIL(12/22)-Django

DRF Class Based View지금까지 views.py에서 함수를 사용해왔다면, 오늘은 Class로 작성하는 방법을 보겠습니다.CBVClass Based View 특징 클래스형 뷰에서는 특정 Http Method에 대한 처리를 함수로 분리할 수 있습니다. → GET요청에 대한 처리는 get()에서, POST 요청에 대한 처리는 post()에서 정의가 가능해요! 클래스를 사용하기 때문에 코드의 재사용성과 유지보수성이 향상됩니다. 기본 APIView외에도 여러 편의를 제공하는 다양한 내장 CBV가 존재합니다.Class Based View 종류 APIView - DRF CBV의 베이스 클래스 GenericAPIView 일반적인 API 작성을 위한 기능이 포함된 클래스 보통 CRUD 기능이 대부분인 상황을..

카테고리 없음 2024.12.22

스파르타 AI-8기 TIL(12/21)-Django

DRF Single Model(CRUD)단일 모델에서 데이터를 조회해서 직렬화(Serialization)하여 JSON으로 응답하기를 반복합니다.결국 핵심은1. 데이터 조회2. 직렬화3. JSON으로 응답입니다ModelSerializer 결국 Model의 여러가지 필드들을 어떻게 직렬화해서 데이터의 포맷을 잡을지가 핵심입니다. Django의 Model → ModelForm 사용과 굉장히 유사한 형태입니다.자 다시 시작하는 마음으로 urls., views 전부 제거참고로 templates는 이제 안 쓰기에 제거그리고 urls과 views를 새롭게 만들어 줍니다.(이 DRF의 함수로 만드는 views는 API 데코레이터 아시죠? DRF의 함수의 경우 이거 안 쓰면 무조건 에러)아, 참고로 ()안에 아무것도 안..

카테고리 없음 2024.12.21

스파르타 AI-8기 TIL(12/20)-Django

RESTful API웹에 대한 소프트웨어 설계 방법론 REST -REpresentational State Transfer REST(Representational State Transfer)는 네트워크 상에서 클라이언트와 서버 간의 상호작용을 정의하는 아키텍처 스타일입니다. 그래서 이 개념을 가져다가 API로 만든것이 RESTful API라고 한다.그래서 RESTful API란? 먼저, RESTful API에POST는 생성, GET은 조회, DELETE는 삭제, PUT은 전체적인 수정이 들어갈 때, PATCH는 일부를 수정할 때 쓰인다. JSONJSON(JavaScript Object Notation) JS 표기법을 따른 일종의 데이터를 담는 형식 - XML, CSV, YAML 등..

카테고리 없음 2024.12.20

스파르타 AI-8기 TIL(12/19)-Django

자, 알아야 할 것이 있습니다먼저forms와 models의 관계어제 설명이 잘못되었음을 튜터님을 통해 느꼈다.먼저, 저 fields는 get_user_model()에 있는 fields들을 말하는 것이였다.즉, 저것만 가져온다는 것이다. 그리고 저 UserChangForm을 상속 받는것은, 사실 중요한 의미가 있다.우리가 model을 바꾸고 fields를 바꾸면, 딱 그 부분만 바뀐다는 소리입니다.즉, 안에 함수, 뭐 여러가지 기능은 그대로 가져옴과 동시에, 딱 저 부분만 바꿔서 새로 만들어진 것을 쓴다는 소리입니다.예를 들어, 기어 1,2,3이 있다고 했을 때, 딱 기어 1,2는 들고오지만, 3에서 뭐 기어의 숫자를 바꾼다던가 해서 3만 바꾼채로 기어 1,2,3을 쓰겠다는 소리입니다.역참조?먼저 fore..

카테고리 없음 2024.12.19

스파르타 AI-8기 TIL(12/18)-Django

자자자자,오늘은? 솔직히 할 시간이 없다...Why? 개인과제가 그렇게 썩 좋지는 않아서...지금 계속 하는 중.....당분간은 TIL에 그렇게 많은 글이 적히지는 않을 듯 합니다. font-family: Arial, sans-serif; /*(전체 페이지의 기본 글꼴 설정) */ margin: 0; /* body에 적용 (기본 여백 제거) */ padding: 0; /* body에 적용 (기본 패딩 제거) */ background-color: rgb(187, 209, 244); /* (배경색 설정) */ display: flex; /* body에 적용 (flexbox를 사용하여 세로 배치) */ flex-direction: co..

카테고리 없음 2024.12.18