목록🍚전공이 밥 먹여준다믄 (31)
코드 위의 하루 (A Day on the Code)
🧱 프레임워크란 무엇이고, Django는 왜 그렇게 생겼을까?🔧 프레임워크란? 왜 필요한가?웹사이트나 앱을 하나 만들 때 필요한 기능들을 떠올려보자.URL에 따라 화면을 나누고사용자가 입력한 데이터를 저장하고로그인 기능을 만들고HTML로 결과를 보여주고보안도 챙기고, 성능도 고려해야 한다이걸 모두 직접 코딩해서 만들자고 하면?💀 개발자 입장에서는 너무 비효율적이고 위험한 작업이 된다.그래서 등장한 것이 바로 **프레임워크(Framework)**다.📦 프레임워크란?프레임워크는 자주 반복되는 기능들을 미리 구현해둔 **개발용 뼈대(틀)**이다.즉, 개발자가 해야 할 일을 줄이고 핵심 로직에 집중할 수 있도록 도와주는 도구다.📌 예시: 회원가입 기능 만들기기능프레임워크 없이프레임워크(Django 등)..
📌 교수님께서도 강조하신 핵심 개념!단순히 개념만 이해하는 걸 넘어, 직접 구현하고 동작을 확인하는 실습이 중요합니다.✅ 원형 덱의 동작 개념addFront(e) ➡ front 인덱스를 반시계로 한 칸 이동하고 데이터 삽입addRear(e) ➡ rear 인덱스를 시계방향으로 한 칸 이동하고 데이터 삽입deleteFront() ➡ front를 시계방향으로 한 칸 이동하며 요소 삭제deleteRear() ➡ rear를 반시계로 한 칸 이동하며 요소 삭제🧪 파이썬으로 직접 구현해보기class CircularDeque: def __init__(self, capacity): self.capacity = capacity self.array = [None] * capacity ..
1. 큐(Queue)란? 🚌선입선출(FIFO: First-In First-Out) 방식의 대표 자료구조!입구와 출구가 다름!먼저 들어온 데이터가 먼저 나감실생활 예시병원 대기열 🏥프린터 인쇄 순서 🖨️공항 체크인 줄 ✈️네트워크 버퍼링 🌐큐의 주요 연산연산설명enqueue(e)후단에 요소 추가 ➕dequeue()전단에서 요소 제거 ➖peek()전단 요소 확인 👀isEmpty()비어있는지 확인 ❔isFull()가득 찼는지 확인 ❗size()전체 요소 개수 반환 📏 2. 큐의 구현 🧱① 선형 큐(Linear Queue)배열 기반, 삭제 후 생긴 공간 재사용 불가비효율적: 삽입 O(n), 삭제 O(1)② 원형 큐(Circular Queue) 🔄배열을 회전식으로 사용해 공간 낭비 해결!인덱스가 시..
파이썬 수업을 듣다 보면 꼭 나오는 문법이 있다.“이건 리스트 컴프리헨션이라고 해서요,for문을 한 줄로 줄인 문법입니다~”🧠 처음엔 그냥…squares = [x**2 for x in range(5)] 이걸 보고“우와 신기하네” 하고 넘겼는데,사실 그 구조가 왜 필요한 건지 몰랐다.🔹 이걸 언제 써야 하지? 🤔처음엔 그냥 일반 for문이 더 익숙했다.squares = [] for x in range(5): squares.append(x**2) 그런데 프로젝트를 하다 보니리스트를 만들고, 반복 돌리고, 조건 걸고 하는 게 너무 반복적이었다.그때 알게 됐다.❗ “내가 자주 쓰는 구조를 한 줄로 줄이는 게결국은 생산성과 가독성을 높이는 방법이구나.”🔹 기본 구조는 이렇게 생겼다[표현식 for 변..
파이썬을 처음 배울 때가장 먼저 접한 함수는 아마 print()와 input()이었다. print("Hello, world!") 처음엔 이게 그냥…“화면에 글자를 찍는 기능”이라고만 생각했다.그리고 input()도“사용자에게 값을 입력받는 함수”라고 배우긴 했는데,그게 전부인 줄 알았다.🔹 그런데 프로젝트를 하다 보니, 얘들이 ‘시작과 끝’이더라 🔁생각해보면 우리가 만든 프로그램은 결국사용자에게 어떤 걸 보여주고 (print)**사용자로부터 뭔가를 받는 것 (input)**으로 시작하더라.예를 들어, 이런 코드: name = input("당신의 이름은?") print(f"{name}님, 안녕하세요!") 이거 그냥 초보용 예제처럼 보이지만,실제로 서비스 만들면서 이런 흐름을 엄청 ..
처음 def를 배웠을 때,딱 이렇게 외웠던 기억이 난다.def 함수이름(매개변수): 실행할 코드 return 결과값 “그냥 저렇게 쓰면 돼~”“return 안 써도 되긴 하는데, 쓰면 뭔가 출력됨~”🧠 그땐 솔직히… 함수는 ‘형식’처럼 느껴졌다.🔹 진짜 궁금했던 건 이거였다 🤷♀️❓ “굳이 저렇게 묶어서 써야 해?”❓ “그냥 코드를 쓰면 안 되는 이유는 뭘까?”❓ “return이 없으면 안 되는 건가?”그 의문이 풀린 건,내가 프로젝트에서 같은 코드를 복붙하다가 지치던 어느 날이었다.🔹 반복되는 코드를 ‘한 번만’ 쓰고 싶었던 순간 ♻️예를 들어, 사용자의 이름과 인사말을 출력하는 코드가여기에도, 저기에도 자꾸 필요했던 상황:print(f"{name}님, 환영합니다!") 매번 이걸..
프로그래밍을 막 시작했을 때,if문, for문은 항상 제일 먼저 배우는 문법이었고너무 당연하고 기본적인 거라고들 했다.그래서 나도 그냥…if a > 0: print("양수입니다.")for i in range(3): print(i)이렇게 쓰면서“아~ 조건문, 반복문이구나~” 하고 넘겼다.그런데 ❗“이게 왜 필요한 건데?” 라는 생각을 한 건진짜 프로그램을 만들면서였다.🔹 if문은 ‘상황을 나누는 힘’이었다 🧠프로젝트에서 사용자 입력을 처리할 때,조건이 달라지면 결과도 완전히 달라지는 걸 경험했다.if user.is_authenticated: show_profile() else: redirect_to_login()여기서 처음으로 if의 진짜 의미를 느꼈다.단순히 조건에 따라 ..
처음 파이썬을 배웠을 때,“변수”랑 “자료형”은 너무 기본이라사람들이 다들 “그건 그냥 외우면 돼~”라고 말했었다.그래서 나도 그냥a = 3, b = 'hello', c = [1,2,3] 이런 거 써보면서“음... 이게 변수고, 이게 자료형이구나~” 하고 넘겼는데…🫠 실제로 쓰기 시작하니까 하나도 모르겠더라.🔹 파이썬의 변수는 '이름표'다 🎯내가 가장 먼저 혼란스러웠던 건 이거였다: a = [1, 2, 3] b = a b.append(4) print(a) # ?? 🧠 나의 예상: a = [1, 2, 3]👀 실제 출력: a = [1, 2, 3, 4] ❗ 왜 a도 같이 바뀌는 건데?? 이때 처음 알게 됐다.파이썬에서 변수는 **'값을 복사하는 것'이 아니라 '참조(주소)를 가..