분류 전체보기 139

[Django] 장고 ORM

1. ORM 1-1. Object-Relational-Mapping 객체 관계형 매핑파이썬으로 데이터베이스를 조작할 수 있게 해줌객체 지향 언어에서는 클래스를 이용한 객체로 데이터와 기능을 캡슐화해서 다루고, 데이터베이스는 테이블과 행으로 데이터를 저장하고 관리하는데, 이 두가지 사이의 개념적인 간극을 줄인것SQL 안쓰고 Python으로 데이터베이스 조작하는 방법 SQL Statement ↔ ORM ↔ Python Object 1-2. ORM 종류Python - Django ORM, SQLAlchemy, Tortoise ORM …JAVA - JPA, Hybernate …Node.js - Sequalize …1-3. ORM 장점SQL을 잘 알지못해도 DB 조작 가능SQL을 알아도 기존의 복잡한 쿼리문 작성..

카테고리 없음 2024.11.17

프론트/백엔드 이중 유효성 검증하는 이유

중복 작업이 아니라, 각자의 역할이 다름. 0. 프론트엔드와 백엔드 유효성 검증의 차이 0-1. 프론트엔드 유효성 검증역할: 사용자 경험을 향상시키기 위함실시간 피드백 제공 (입력 오류 시 빨간 경고 표시 등)데이터가 서버로 전송되기 전에 간단히 필터링but: 프론트엔드 유효성 검증의 한계프론트엔드 검증은 쉽게 우회될 수 있음악의적인 사용자가 브라우저의 개발자 도구를 사용해 검증을 비활성화하거나, 직접 조작한 데이터를 서버로 보낼 수 있음 0-2. 백엔드 유효성 검증역할: 데이터의 신뢰성과 보안을 보장보안: 악의적인 데이터 입력(예: SQL Injection, 스크립트 공격)을 방지데이터 무결성: 잘못된 데이터(예: 형식에 맞지 않는 이메일, 비어 있는 필드 등)가 데이터베이스에 저장되지 않도록 보장ex..

카테고리 없음 2024.11.16

CSS 메모

1. DISPLAY 속성태그들마다 display 속성이 존재함! 1-1. Block 속성부모태그의 100% 너비를 모두 가져가면서 블록 모양의 형태를 갖고 있는 것!높이는 따로 설정하지 않는 이상, 기본 설정 값 혹은 내용물에 맞춰 설정됨.child 가 여러개면 아래로 쌓임 1-2. Inline 속성글씨가 있다 -> 글씨의 높이 만큼만. 한 줄 내의 일정 부분만 갖고가게 됨.child 가 여러개면 오른쪽으로 쌓임 1-3. Inline-block블록인데도 불구하고 인라인처럼 오른쪽으로 쌓이는 형식으로 구성된 블록. 1-4. None존재하지 않음.html 태그 상에서는 존재하지만, 브라우저에 시각화되는 과정에서는 아무것도 없우  2. Visibility 속성 (시각화 속성)2-1. Hidden 속성displ..

카테고리 없음 2024.11.15

퓨어장고 vs DRF 차이점

퓨어 장고 (Django Template 기반)설명:Django의 기본 템플릿 시스템과 클래스 기반 뷰(CBV) 또는 **함수 기반 뷰(FBV)**를 사용.HTML, CSS, Django 템플릿 문법을 사용하여 백엔드와 프론트엔드가 강하게 결합.데이터를 서버에서 처리하고, 렌더링된 HTML을 클라이언트로 보냄.특징:서버에서 직접 HTML 생성: 데이터를 뷰에서 처리하고 템플릿에 전달.Django 템플릿 문법 사용: {% for %}, {% if %}, {% url %}, {% static %} 등.JS 사용은 선택 사항: 간단한 프로젝트에서는 JS가 크게 필요하지 않을 수도 있음.장점:빠른 프로토타입 개발: 백엔드와 프론트엔드를 동시에 개발.간단한 프로젝트에 적합.서버사이드 렌더링이므로 SEO 친화적.단..

카테고리 없음 2024.11.14

자바스크립트 공부 #3

자바스크립트 어려워근데 너무 멋지다 플젝 끝나고 더 공부해봐야지파이썬도 더 해야되는데.. 내용더보기1. 클로저어휘적환경 Lexical Environment클로저 Closure 와 은닉화2. 스케줄링 함수setTimeout()  /  clearTimeout()setInterval()  /  clearInterval()delay = 03. thiscall  /  apply  /  bind4. 상속hasOwnProperty()  /  prototype__proto__ 를 이용한 객체 상속prototype chain프로퍼티 반환 범위  for .. in  /  Object.keys  /  Object.values생성자 함수 new 와 함께쓰는 방법instanceof  /  constructor은닉화5. 클래스C..

JavaScript 2024.10.05

자바스크립트 공부 #2

자바스크립트 뭔가 애가 유연하면서도 이상해서 맘에든다그래도 파이썬이 더 좋아 ㅎㅎ 내용더보기1. 변수  -  var, let, const  /  호이스팅 2. 생성자 함수  -  new3. Computed property  -  [ ]4. 메서드assign()  /  keys()  /  values()  /  entries()  /  fromEntries()5. 유일한 식별자Symbol()  /  Symbol.for()  /  Symbol.keyFor  /  descriptionObject.getOwnPropertySymbols()  /  Reflect.ownKeys()6. 수학 toString()  /  Math  /  Math.ceil()  /  Math.floor()  /  Math.round()t..

JavaScript 2024.10.04

자바스크립트 공부 #1

자바스크립트를 조금은 알고 있어야 프론트 연결을 할 수 있을 것 같으니(는 핑계고 사실 js도 공부해보고 싶었어)기초 공부 시작 내용더보기1. ;2. console.log()3. 변수선언  -   let  /  const4. 문자형  -  큰따옴표  /  작은따옴표  /  백틱5. 숫자형  -  사칙연산  /  Infinity  /  NaN  /  Boolean  /  undefined  /  typeof6. 대화상자  -  alert()  /  prompt()  /  confirm()7. 형변환  -  String()  /  Number()  /  Boolean()8. 연산자  -  사칙연산  /  우선순위  /  증감 연산자(++, --)9. 비교연산자  -  동등연산자(==)  /  일치연산자(==..

JavaScript 2024.10.04

도커, 크롬드라이버

실시간채팅 - 팀원들 알려줄거 도커 설치  (난 저번에 도커 설치와 동시에 블루스크린으로 다운되고 포멧엔딩함) - 제어판 -> 프로그램 및 기능 -> windows 기능 켜기/끄기 -> Hyper-V 체크 - 작업관리자 -> 속성 -> 가상화 사용 확인 - Bios 진입해서 Vetual Technology -> Enable 확인 - 작업관리자 -> 속성 -> 가상화 사용 확인 크롬드라이버설치 - 크롬 도움말 -> 버전 확인 - 크롬드라이버 다운로드 -> 버전 일치하는걸로 - 크롬드라이버 적당한 곳에 저장 - 정보 -> 고급시스템설정 -> 환경변수 - Path, 위치는 찾아서 넣기 - 확인: chromedriver --version   Redis 연결docker run --rm -p 6379:6379 re..

카테고리 없음 2024.10.04

ASGI

실시간채팅 기능  - 팀원들한테 설명해줄거 daphne: Django Channels에서 사용되는 ASGI(Asynchronous Server Gateway Interface) 서버 Django 기본적으로는 WSGI라는 동기 서버를 사용하지만WebSocket과 같은 비동기 통신을 처리하기 위해서는 ASGI 서버가 필요함. Daphne는 바로 이 ASGI 서버 역할을 하여, Django가 비동기 요청(ex: 실시간 채팅, 알림, WebSocket 통신)을 처리할 수 있도록 해줌  WSGI는 동기식(순차적) 요청 처리만 가능하지만,ASGI는 비동기식(동시에 여러 요청 처리)이 가능-> 실시간 통신, 푸시 알림, 채팅 등과 같은 기능을 처리 가능.  WSGI (Web Server Gateway Interfac..

카테고리 없음 2024.10.02

commands - 샘플 커스텀 명령어 만들기

django-seed 좋다고 생각했는데 하다보니까의미없는 데이터만 만들어줘서테스트가 제대로 되질 않는다. 그래서 샘플 데이터 생성 명령어를 만들어봤다 articles / management / commands / seed_articles.pyfrom django.core.management.base import BaseCommandfrom django_seed import Seedfrom articles.models import Article, Category, Comment, ArticleLike, CommentLikefrom django.contrib.auth import get_user_modelimport randomfrom datetime import timedeltafrom django.uti..

Django 2024.09.25