2024/12 31

스파르타 AI-8기 TIL(12/31)-TeamProject

BeautifulSoup BeautifulSoup는 HTML 또는 XML 문서를 파싱(구문 분석)하여, 웹 페이지에서 원하는 데이터를 쉽게 추출할 수 있도록 도와주는 Python 라이브러리입니다. from bs4 import BeautifulSoup# recipe_response.text는 해당 레시피 페이지의 HTML 텍스트입니다.recipe_soup = BeautifulSoup(recipe_response.text, 'html.parser')# HTML 요소를 추출recipe_name = recipe_soup.find('h1', class_='recipe-title').textprint(recipe_name)BeautifulSoup의 역할 입력: BeautifulSoup은 HTML 또는 XML 문서를..

카테고리 없음 2024.12.31

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

CI - 코드가 develop, 혹은 main에 병합하기 전, gradle test혹은 다른 자동화된 테스트를 통해, 에러가 있는지 점검하고, 병합할 지 안 할지를 결정하는 단계가 CICD - CI와 GIt에 있는 폴더들을 이용해서, 그것을 지속적으로 배포해준것이 CDDockerFile - docker Image를 만들기 위한 파일. 파일, 위치, OS 정보등이 있다.즉, 이러한것을 build를 해서 docker image로 변환시킨다. build를 하면 dockerfile에 있는 정보를 바탕으로 버전 다운, 위치 등을 알아서 실행한다.Docker Container - 만들어진 docker image을 run하여 docker container를 실행 시킨다. 기본적인 dockerfile의 명령어들그리고 ..

카테고리 없음 2024.12.29

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

도커의 기본 개념들 컨테이너(Container) 컨테이너는 애플리케이션과 그 실행 환경을 하나로 묶어 격리된 환경에서 실행하는 경량화된 가상화 기술입니다.컨테이너는 컨테이너는 읽기 전용 이미지(Read-only Image)와 쓰기 가능한 레이어(Writable Layer)의 결합으로 작동하며, 리눅스의 네임스페이스와 cgroup을 활용해 리소스를 격리합니다. 컨테이너의 핵심 요소파일 시스템(Filesystem): 이미지에서 가져오는 읽기 전용 계층과 컨테이너 생성 시 추가되는 쓰기 가능한 계층.리소스 격리: 리눅스 네임스페이스 및 cgroup으로 프로세스, 메모리, 네트워크 등을 격리.네트워킹(Networking): 독립된 네트워크 스택과 IP 주소를 갖는 가상 네트워크 인터페이스.프로세스(Proce..

카테고리 없음 2024.12.28

스파르타 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