전체 글 75

django cycle, 프로젝트 구조 및 language, timezone 변경하기 #3

Django는 웹 애플리케이션을 개발하기 위한 강력한 프레임워크로,특정한 사이클(Cycle)을 따라 작동합니다. 이번 글에서는 Django의 동작 사이클과 프로젝트 구조를 살펴보고,Language(언어) 및 Timezone(시간대) 설정을 변경하는 방법을 알아본다. 1. Django의 기본 동작 사이클 Django는 다음과 같은 흐름으로 작동하며,프로젝트의 소스 코드도 이 사이클을 기반으로 개발된다.📌 Django Cycle 1. WSGI (Web Server Gateway Interface)웹 서버와 Django 애플리케이션 간의 통신을 담당하는 인터페이스. 2. urls.py (라우터)클라이언트의 요청을 분석하여 해당 요청을 처리할 views.py를 호출한다. 3. views.py (애플리케이션 로..

django app 생성하고 소스에 git 설치하기 #2

Django에서는 프로젝트를 여러 개의 **앱(App)**으로 구성하여 개발할 수 있다.또한, Git을 이용해 프로젝트의 소스 코드를 효율적으로 관리할 수 있다. 이번 글에서는 Django 앱을 생성하는 방법과 Git을 설정하는 과정을 다뤄본다. 1. Django 앱(App) 생성 Django 프로젝트는 여러 개의 **앱(App)**으로 구성된다.**앱(App)**은 특정한 기능을 수행하는 웹 애플리케이션 단위라고 볼 수 있다. 📌 이전 단계이전에 Django 프로젝트(pubdapi)를 생성했으므로,해당 폴더로 이동하여 앱을 생성한다.cd pubdapi # 프로젝트 폴더로 이동ls # 현재 폴더 구조 확인 예제 실행 결과:(pubd_api) pubdapi % lsdb.sqlite3 m..

API Server django python Framework 설치 #1

Django는 Python 기반의 웹 프레임워크로, 강력한 기능과 간결한 코드로 웹 애플리케이션을 빠르게 개발할 수 있다.이번 글에서는 Django를 활용한 API 서버 구축 과정을 단계별로 정리해본다. 📌 사용할 API • 공공데이터 포털에서 제공하는 국회도서관 자료검색 서비스 API 📌 작업 환경작업 폴더명: public_data가상환경명: pubd_api프로젝트명: pubdapiOS: macOS Sonoma v14.51. Python & Django 설치하기 Django를 설치하기 위해서는 먼저 Python이 필요하다.Django 공식 문서를 참고하면 보다 자세한 내용을 확인할 수 있다. 🔗 Django 공식 문서: Django Documentation (한글) 📌 Python 설치 Pyth..

[Dart] 람다 함수 사용 lambda (with 백준 1181)

Dart에서는 람다 함수(Lambda Function)를 사용하여 더 간결한 코드를 작성할 수 있다.이번 글에서는 람다 함수의 개념과 사용법을 살펴보고,백준 1181번 문제(단어 정렬) 를 해결하면서 실전에서 활용하는 방법을 알아본다. 1. Dart에서 람다 함수(Lambda)란? 람다 함수는 익명 함수(Anonymous Function)의 간단한 표현 방식이다. 📌 람다 함수의 문법(매개변수) ⇒ 단 하나의 실행 코드; 중괄호 {} 없이 ⇒(화살표) 기호를 사용하여 표현할 수 있다.매개변수는 있을 수도 있고 없을 수도 있다.한 줄 코드만 사용할 수 있다.📌 익명 함수와 람다 함수 비교void main() { final numbers = [10, 2, 5, 0.5]; // 람다 함수 사용 f..

[Dart] for, while 반복문 (with 백준 2446, 2522)

Dart에서 for문과 while문은 코드를 반복 실행할 때 사용된다.이번 글에서는 기본적인 for문, while문, do-while문을 배우고,이를 활용해 백준 문제(2446번, 2522번)를 Dart로 해결해본다. 🚀 1. Dart의 for문 사용법 📌 기본 for문 for 문은 반복 횟수가 정해져 있을 때 사용한다.void main() { String message = 'Dart is fun'; String chgUpper = ""; // 문자열 길이만큼 반복하며 대문자로 변환 for (var i = 0; i  📌 for-in 반복문 for-in 문은 리스트(List) 또는 집합(Set) 같은 Iterable 객체를 반복할 때 사용한다.void main() { List candidat..

[파이썬] 백준 24052 알고리즘 수업 삽입 정렬 2

이번 글에서는 삽입 정렬(Insertion Sort) 알고리즘을 학습하고,이를 활용하여 백준 24052번 문제를 Python으로 해결해본다. 🚀 1. 삽입 정렬 (Insertion Sort) 란? 삽입 정렬은 배열을 앞에서부터 차례대로 정렬된 부분과 비교하며 자신의 위치를 찾아 삽입하는 정렬 알고리즘이다. 🔹 정렬 과정:배열의 두 번째 요소부터 시작하여 왼쪽의 정렬된 부분과 비교적절한 위치를 찾아 삽입모든 요소가 정렬될 때까지 반복 🔹 시간 복잡도:최선 (O(n)): 이미 정렬된 배열일 경우최악 (O(n²)): 역순 정렬된 배열일 경우2. 백준 24052번 문제 설명 🔗 문제 링크: 백준 24052번 - 알고리즘 수업: 삽입 정렬 2📌 문제 요구사항N: 배열 A의 크기 (5 ≤ N ≤ 10,00..

[파이썬] 백준 24051 알고리즘 수업 삽입 정렬 1

이번 글에서는 삽입 정렬(Insertion Sort) 알고리즘을 배우고,이를 활용하여 백준 24051번 문제를 Python으로 해결해본다. 🚀 1. 삽입 정렬(Insertion Sort) 이란? 삽입 정렬은 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 부분과 비교하여 자신의 위치를 찾아 삽입하는 정렬 알고리즘이다. 🔹 삽입 정렬의 특징 • 선택 정렬(Selection Sort), **버블 정렬(Bubble Sort)**보다 빠르고 안정적인 정렬 알고리즘 • 최선의 경우 O(n), 최악의 경우 O(n²) • 데이터가 거의 정렬되어 있을 경우 매우 효율적 🔹 삽입 정렬 과정예제 배열: [4, 5, 1, 3, 2] 1️⃣ 1을 정렬된 부분과 비교하여 삽입[4, 5, 1, 3, 2] → 1을 0..

[파이썬] 백준 23969 알고리즘 수업 버블 정렬 2

이번 글에서는 버블 정렬(Bubble Sort) 알고리즘을 학습하고,이를 활용하여 백준 23969번 문제를 Python으로 해결하는 방법을 살펴본다. 🚀 1. 버블 정렬(Bubble Sort) 이란? 버블 정렬은 서로 인접한 두 개의 값을 비교하여 정렬하는 알고리즘이다.큰 값이 오른쪽으로 이동하며 거품(Bubble)처럼 밀려나는 과정에서 이름이 유래되었다. 🔹 버블 정렬의 특징시간 복잡도: 최선 O(n), 평균·최악 O(n²)장점: 구현이 단순단점: 효율이 낮아 큰 데이터 정렬에는 적합하지 않음🔹 버블 정렬 과정예제 배열: [7, 2, 0, 1, 5, 6, 4] 1️⃣ 첫 번째 패스 (가장 큰 값이 끝으로 이동)[7, 2, 0, 1, 5, 6, 4] → 7과 2 비교 → swap[2, 7, 0,..

[파이썬] 백준 23968 알고리즘 수업 버블 정렬 1

이번 글에서는 버블 정렬(Bubble Sort) 알고리즘을 학습하고,이를 활용하여 백준 23968번 문제를 Python으로 해결하는 방법을 살펴본다. 🚀 1. 버블 정렬(Bubble Sort)이란? 📌 개념 버블 정렬은 서로 인접한 두 개의 값을 비교하여 정렬하는 방식이다.정렬이 완료될 때까지 이 과정을 반복하여 배열을 정렬한다. 🔹 버블 정렬의 특징시간 복잡도: 최선 O(n), 평균·최악 O(n²)장점: 코드가 단순하여 구현이 쉬움단점: 성능이 낮아 큰 데이터 정렬에는 부적합🔹 정렬 방식오름차순 정렬: a > b → swap(교환)내림차순 정렬: a 2. 버블 정렬 예제 (오름차순 정렬) 다음과 같은 리스트가 있다고 가정해본다.A = [4, 6, 5, 1, 3, 2] 이 리스트를 버블 정렬하면 ..

[파이썬] 백준 23899 알고리즘 수업 선택 정렬 5

✅ 백준 문제 링크: 백준 23899번 - 선택 정렬 51. 선택 정렬(Selection Sort) 알고리즘 선택 정렬은 리스트에서 최대값을 찾아 맨 뒤로 보내는 방식으로 정렬하는 알고리즘이다. ✔ 선택 정렬 과정주어진 리스트에서 최대값을 찾는다.해당 값을 맨 뒤에 위치한 값과 교환(swap)한다.위 과정을 반복하여 리스트를 정렬한다.다음은 예제 배열 [3, 1, 2, 5, 4]을 선택 정렬로 정렬하는 과정이다.[3, 1, 2, 5, 4] → 최대값 5, 4번 인덱스와 swap [3, 1, 2, 4, 5] → 최대값 4, 3번 인덱스에 있으므로 pass [3, 1, 2, 4, 5] → 최대값 3, 2번 인덱스와 swap [2, 1, 3, 4, 5] → 최대값 2, 1번 인덱스와 swap [1, 2..