Maximize Your Potential

2024/08 19

[Python BootCamp] Django로 CRUD 구현 및 간단한 블로그 서비스 만들기

Django로 CRUD 구현 CRUD는 데이터베이스에서 기본적으로 수행되는 네 가지 핵심 작업(Create, Read, Update, Delete)의 약어입니다. 각 작업은 데이터의 생명 주기 관리에 필수적입니다. 백엔드 개발자의 가장 기본이라고 할 수 있는 CRUD를 장고로 어떻게 구현하는지 보여 드리도록 하겠습니다. 환경 설정먼저, 필요한 패키지를 설치합니다.pip install django프로젝트 및 앱 생성django-admin startproject myprojectcd myprojectpython manage.py startapp blog Model 정의 (models.py)블로그 글에 필요한 모델을 생성합니다.from django.db import modelsclass Post(models...

BackEnd 2024.08.11

[CS지식 공부하기]알고리즘 - 이진 검색 트리(Binary Search Tree, BST)의 이해와 Up & Down 게임 비교, 트라이(Trie) 문자열 검색의 효율적인 해결책

이진 검색 트리란?이진 검색 트리(Binary Search Tree, 이하 BST)는 데이터의 검색 속도를 최적화하기 위해 고안된 데이터 구조입니다. 이 구조에서 각 노드는 최대 두 개의 자식 노드(왼쪽 및 오른쪽)를 가지며, 각 노드는 다음과 같은 특정 규칙을 준수합니다:노드의 왼쪽 하위 트리에 있는 모든 요소는 해당 노드보다 작습니다.노드의 오른쪽 하위 트리에 있는 모든 요소는 해당 노드보다 큽니다.이 규칙은 BST의 모든 레벨에 걸쳐 일관적으로 적용되며, 데이터를 효과적으로 분류하고 검색하는 데 큰 도움이 됩니다. 그림에서 보면 4가 6보다 작기 때문에 왼쪽으록 가게 됩니다. 반면에 2같은 경우는 3보다 크기 때문에 3의 왼쪽으로 와야합니다.이진 검색 트리의 장점BST의 가장 큰 장점은 탐색 성능입..

CSKnowledge 2024.08.11

[Python BootCamp]Django로 가상환경부터 간단한 웹사이트 구축하기

프로젝트 & 앱 생성먼저, 프로젝트 디렉터리를 만들고 가상환경을 설정한 후 Django를 설치합니다. mkdir mysitecd mysitepython -m venv venv  가상환경을 활성화한 후에 Django를 설치하고 프로젝트를 생성합니다. # 가상환경 활성화 (Windows).\venv\Scripts\activate# Django 설치pip install django# 프로젝트 생성django-admin startproject tutorialdjango .python manage.py migratepython manage.py runserver 이제 tutorialdjango 프로젝트가 생성되었으니 main과 blog라는 두 개의 앱을 생성합니다. python manage.py startapp ..

BackEnd 2024.08.10

[CS지식 공부하기] 알고리즘 - 힙 데이터 구조: Complete Binary Tree와 우선순위 큐를 이진힙(Heap)으로 구현하기

힙(Heap)은 컴퓨터 과학에서 널리 사용되는 중요한 데이터 구조 중 하나입니다. 이번 글에서는 힙이 무엇인지, 어떻게 구성되는지, 그리고 어떻게 활용되는지에 대해 알아보겠습니다. 특히, 힙이 Complete Binary Tree(완전 이진 트리)라는 속성을 가지고 있으며, 우선순위 큐(priority queue)를 구현하는 데 사용된다는 점을 강조할 것입니다.힙 데이터 구조 소개 힙은 완전 이진 트리로 구성됩니다. 여기서 완전 이진 트리란 마지막 레벨을 제외한 모든 레벨이 꽉 차 있고, 마지막 레벨의 노드들이 왼쪽부터 차례대로 채워진 트리를 말합니다. 이러한 특성은 배열을 사용하여 효율적으로 구현할 수 있습니다.Max Heap과 Min Heap힙은 두 가지 주요 유형으로 나뉩니다: Max Heap과 M..

CSKnowledge 2024.08.10

[Python BootCamp] 파이썬 클래스와 인스턴스, 클래스 메서드, 정적 메서드, 추상 클래스, 일급/고차함수 데코레이터, args, kwargs, 이터레이터

파이썬 클래스와 인스턴스 이해하기파이썬은 객체 지향 프로그래밍 언어로, 클래스와 인스턴스를 사용하여 데이터와 기능을 캡슐화할 수 있습니다. 이 글 에서는 파이썬의 클래스와 인스턴스에 대해 알아보도록 하겠습니다.클래스란?클래스는 데이터(멤버 변수)와 기능(메서드)을 가지고 있는 설계도입니다. 예를 들어, 자동차를 생각해보면, 최대 속도, 색상, 브랜드 등의 속성과 출발, 정지 등의 기능을 가질 수 있습니다. 이러한 속성과 기능을 파이썬에서는 클래스를 통해 정의할 수 있습니다.class Car: max_speed = 300 color = 'red' def start(self): print('차가 출발합니다!')인스턴스란?인스턴스는 클래스를 기반으로 생성된 객체입니다. 클래스는 설..

BackEnd 2024.08.09

[CS지식 공부하기] 알고리즘 - 이진트리 유형 : Complete Binary Tree, Balanced Binary Tree, Full Binary Tree, Perfect Binary Tree

이진트리에는 4가지 유형이 주로 있습니다. Complete Binary Tree, Balanced Binary Tree, Full Binary Tree, Perfect Binary Tree 입니다. 이러한 4가지 유형의 트리를 알아야하는 이유는 데이터를 검색속도를 향상시키고 정확하고 빠르게 해당 데이터에 접근하기 위해서입니다. 각 유형별로 특징이 있기 때문에 해당 상황에 맞게 쓰시면 됩니다. 컴플리트 이진트리는 메모리 효율적인 데이터 구조로 사용됩니다. 배열을 기반으로 구현되어 메모리적으로 활용할 수 있으며, 우선순위큐 및 힙자료 구조 구현 등에도 사용됩니다.균형이진트리는 검색 및 삽입 작업을 효율적으로 수행해야하는 경우에 사용됩니다. 균형이진트리는 AVL 트리 레드블랙트리 형태로 사용됩니다. 데이터베이..

CSKnowledge 2024.08.09

[Python BootCamp] 기본 연산자, 데이터 타입 조작, 내장 함수(Built-in Functions)와 집합(Set) 이해하기

논리 자료형 (Bool)Python에서는 True와 False 두 가지 논리 값을 사용하여 논리 연산을 수행합니다. 이 값들은 실제로 정수형으로 변환할 수 있으며, True는 1, False는 0으로 간주됩니다.x = True y = False z = 10 > 3 # 10이 3보다 크므로 True입니다. print(z) # 출력: True # 논리 연산 예제 a = True b = False print(a and b) # 출력: False (두 값이 모두 True여야 True) print(a or b) # 출력: True (둘 중 하나라도 True면 True) print(not a) # 출력: False (True의 부정은 False) 클래스와 메서드클래스에서 __str__ 및 _..

BackEnd 2024.08.08

[CS지식 공부하기] 알고리즘 - 트리 자료구조의 속성과 활용 및 이진 트리 순회 방법: 중위, 전위, 후위 순회에 대한 이해

이해하기 쉬운 트리 자료구조의 속성과 활용트리 자료구조는 계층적인 구조를 표현하는 데 사용되며, 단방향 그래프의 한 종류로 볼 수 있습니다. 그 모양이 나무와 유사하여 트리라고 불립니다. 이 구조는 하나의 뿌리(root)에서부터 여러 가지 가지(branch)가 뻗어나가는 형태를 가집니다. 그리고 데이터를 순차적으로 나열하는 선형 구조가 아니기 때문에 비선형 구조입니다. 또한, 트리 자료구조는 아래와 같은 여러 가지 속성을 가지고 있습니다. 루트(Root): 트리의 가장 위에 있는 노드로, 다른 모든 노드들은 이 루트 노드에서부터 시작합니다.노드(Node): 트리의 각 요소를 나타냅니다. 노드는 데이터를 저장하고 다른 노드와 연결된 엣지(Edge)를 가질 수 있습니다.엣지(Edge): 노드와 노드를 연결하..

CSKnowledge 2024.08.08

[CS지식 공부하기] 네트워크 통신의 기초 & HTTP, HTTPS 프로토콜

네트워크 통신의 기초: 프로토콜과 OSI 7계층 모델1. 프로토콜 (Protocol)프로토콜은 컴퓨터나 원거리 통신 장비가 메시지를 주고받는 양식과 규칙의 체계입니다. 이는 웹 통신에서 데이터를 송수신할 때 필수적인 규약들을 말하며, 통신의 신뢰성과 효율성을 보장하기 위해 정해진 규칙을 따릅니다.2. OSI Layer 7 Model (OSI 7계층 모델)OSI(Open Systems Interconnection) 모델은 네트워크에서 데이터의 흐름을 이해하고 문제를 진단하기 위해 국제 표준화 기구(ISO)에서 개발한 모델입니다. 총 7계층으로 구성되어 있으며, 각 계층은 다음과 같습니다:물리 계층(Physical Layer): 하드웨어 전송 기술을 다룹니다.데이터 링크 계층(Data Link Layer):..

CSKnowledge 2024.08.07