전체 글 63

DRF Views 정리

Function-Based Views vs Class-Based ViewsFunction-Based Views (FBV) :뷰를 단순한 함수로 정의간단한 작업을 처리하기에 적합하며, 코드가 짧고 직관적from rest_framework.decorators import api_viewfrom rest_framework.response import Response@api_view(['GET'])def hello_world(request): return Response({'message': 'Hello, World!'})Class-Based Views (CBV) :뷰를 클래스로 정의하며, DRF 의 APIView 나 Generic Views 등을 상속받아 사용복잡한 작업을 처리하거나 재사용성을 높이고자 ..

Dev/Web Programming 2024.11.25

Django REST Framework 입문 가이드

Django REST FrameworkDjango REST Framework (DRF) 는 Django 애플리케이션에서 쉽게 REST API 를 만들 수 있도록 도와주는 도구입니다. 어떤 애플리케이션에서 특정 데이터를 요청하면, DRF 가 이를 처리하고 필요한 데이터를 반환해주는 방식으로 동작합니다.기본 설정rest_framework 를 core/settings.py 의 INSTALLED_APPS 에 등록합니다.INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', ..

Dev/Web Programming 2024.11.18

Django vs Django REST Framework

Django:Server-side Rendering (SSR) 방식을 사용클라이언트에서 서버로 주로 폼 데이터나 URL 쿼리 형식으로 데이터 요청서버가 직접 HTML 을 렌더링하여 클라이언트로 반환웹 페이지 렌더링에 중점Django REST Framework (DRF) :Client-side Rendering (CSR) 방식에 적합클라이언트에서 서버로 주로 JSON 형식으로 데이터 요청서버는 필요한 데이터를 주로 JSON 형태로 응답하며, 클라이언트는 해당 데이터를 사용해 HTML 을 렌더링API 설계에 중점

Dev/Web Programming 2024.11.12

Django 입문 가이드

Django 기본 명령어 및 설명Django 프로젝트 생성Django 프로젝트를 생성하려면 다음 명령어를 사용합니다.django-admin startproject core .Django 앱 생성프로젝트 내에서 새로운 앱 (App) 을 추가하려면 다음 명령어를 사용합니다.python manage.py startapp name_of_app 프로젝트의 폴더 구조는 다음과 같은 형태로 구성됩니다./your_project/├── backend/│      ├── core/│      ├── home/│      ├── app1/│      ├── app2/core: 프로젝트 전체의 공통 설정을 담당하는 앱의 이름으로, 프로젝트 생성 시 지정합니다.home: 여러 앱들을 관리하는 메인 앱으로, 필요한 경우 생성합니..

Dev/Web Programming 2024.11.05

React 와 Django 간의 데이터 통신: HTTP 와 REST API 로 구현하기

React 와 Django 간의 데이터 통신React (프론트엔드) 와 Django (백엔드) 는 서로 데이터를 주고받기 위해 API 호출을 사용해야 합니다.API 호출을 하기 위해서는 네트워크 통신이 필요하며, 우리는 일반적으로 HTTP 프로토콜을 사용합니다.React 에서 Django 로 데이터를 요청할 때, HTTP 프로토콜의 메서드 (GET, POST 등) 를 사용하여 통신합니다.HTTP 요청 구현 방법개발자가 HTTP 요청을 직접 구현하기보다는 fetch 함수나 JavaScript 의 axios 같은 서드파티 라이브러리를 사용하여 HTTP 요청을 쉽고 효율적으로 구현합니다.이 라이브러리들을 통해 React 에서 Django 의 API 를 호출하고 데이터를 주고받을 수 있습니다.fetch 는 We..

Dev/Web Programming 2024.10.14

프로세스 (Process) vs 쓰레드 (Thread)

프로세스 vs 쓰레드프로세스 (Process) :실행 중인 프로그램의 인스턴스각 프로세스는 서로 독립된 메모리 공간을 사용프로세스 간 통신은 일반적으로 IPC 를 통해 이루어짐프로세스 생성과 종료가 상대적으로 비쌈문맥 전환 시 오버헤드가 큼한 프로세스가 비정상적으로 종료되더라도 다른 프로세스에 영향을 주지 않음쓰레드 (Thread) :프로세스 내에서 실행되는 더 작은 단위Code, Data, BSS, Heap 영역을 공유하며 Stack 영역은 독립적쓰레드 간 통신은 같은 프로세스 내에서 메모리 공유로 통신쓰레드 생성과 종료가 상대적으로 저렴문맥 전환 시 오버헤드가 작음동기화 문제와 경합 상태를 관리해야 함컨텍스트 스위칭 (Context Switching)컨텍스트 스위칭은 CPU 가 한 작업 (프로세스 또..

CS/OS 2024.10.10

컴파일 타임 (Compile Time) vs 런타임 (Runtime)

컴파일 타임 vs 런타임컴파일 타임 (Compile Time) :프로그램이 실제로 실행되기 전에 코드가 컴파일되는 시점문법 검사, 타입 체크, 오류 탐지, 고정된 메모리 할당이 이루어짐예: 전역 변수의 메모리 공간이 예약됨, 구문 오류 발견런타임 (Runtime) :프로그램이 실제로 실행되고 있는 시점동적 메모리 할당, 함수 호출, 사용자 입력 처리 등이 이루어짐예: 함수 실행 중 변수에 값이 할당됨, 동적 메모리 사용컴파일 타임 오류 vs 런타임 오류컴파일 타임 오류 (Compile Time Error) :프로그램을 컴파일하는 과정에서 발생하는 오류. 주로 문법 오류나 타입 불일치예: int a = "hello"; 와 같이 타입이 맞지 않는 경우런타임 오류 (Runtime Error) :프로그램이 실행..

CS/Compilers 2024.10.06

컴파일러 (Compiler) vs 인터프리터 (Interpreter)

컴파일러 언어:소스 코드를 한 번에 읽어 들여 기계어로 변환 후 해당 실행 파일을 독립적으로 실행파일 실행 시 기계어로 변환된 실행 파일을 사용하므로 실행 속도가 빠름소스 코드가 컴파일되어 있으므로 배포 시 소스 코드 포함 불필요소스 코드 변경 시 다시 컴파일 과정이 필요하며, 이 과정에서 시간 소요대표 언어: C, C++, Go, Rust인터프리터 언어:기계어로 변환하는 과정 없이 인터프리터를 통해 소스 코드를 한 줄씩 읽어가며 즉시 실행파일 실행 시 매번 코드 해석이 이루어지므로 실행 속도가 느림소스 코드가 그대로 노출되어 배포 시 소스 코드 보호가 어려움소스 코드 변경이 발생해도 컴파일 과정이 없어 빠르게 결과를 확인할 수 있으며 디버깅 시간 단축대표 언어: Python, JavaScript, Ruby

CS/Compilers 2024.10.06