목차 다소 뜬금없지만 플라스크를 공부해야 할 일이 생겼다. 그 목적은 데이터 파이프라인 구축 시 크롤링 모듈을 파이썬으로 분리시켜 API 통신을 하도록 만드는 것이다. 데이터 파이프라인.. 이름은 멋있지만 지금은 감도 안 오고 해서 일단 할 수 있는 공부부터 한다. 이번 글에선 정말 단순하게 플라스크를 설치하고, 환경을 설정한 뒤에, 서버를 띄우는 것까지 해보려 한다. 장고에 비해 매우 단순하고 가볍다던 플라스크, 한 번 경험해 보자! Installation 플라스크를 사용하려면 당연히 설치부터 해야 한다. 나는 맥북을 사용하며, 파이썬은 이미 깔려있다 가정한다. 터미널에 아래와 같이 입력하면, pip install Flask 관련 패키지가 매우 빠르게 설치된다. 그 대략적인 목록은 다음과 같다. Fla..
파이썬으로 알고리즘을 풀다가 enumerate()라는 내장함수를 만나게 되었다. 이 함수의 역할은 순회 가능한(iterable) 객체(리스트, 튜플, 문자열 등)를 입력받아 인덱스와 해당 요소를 동시에 포함하는 iterator를 반환한다. 이를 이용해 반복문에서 인덱스와 요소를 동시에 다룰 수 있으며, 필요하다면 딕셔너리와 같은 자료형으로 매핑할 수도 있다. 바로 코드로 예를 들어보자. fruits = ['apple', 'banana', 'orange'] # 리스트의 인덱스와 값을 출력 for index, fruit in enumerate(fruits): print(index, fruit) 0 apple 1 banana 2 orange 시작 인덱스를 0이 아닌 1로 지정하는 것도 가능하다. fruits ..
목차 그간 웹에서 장고 예제를 찾은 뒤 열심히 따라 해서 기초적인 게시판을 만들었는데, 그 마지막 글에 '짜잔! 여기까지 함수 기반 뷰였습니다! 클래스 기반 뷰를 보려면 아래 링크를 참조하세요!'라고 되어있어 무척 당황을 했다. 해서 한 다리 건너 아는 개발자에게 물어보니 '무조건 클래스 기반 뷰로 개발하셔야 한다.' 는 답이 돌아와서 처음부터 클래스 기반 뷰로 개발하는 예제를 찾았으나 실패. 원래 함수 기반 뷰로 먼저 개발한 뒤에 클래스 기반 뷰로 바꾸는 걸까? 그럴 리가 없다고 생각해서 지금까지도 적당히 따라 할만한 블로그를 찾는 중이다. 없으면 뭐.. 공식문서 봐야지... 아무튼 MVT 패턴에도 채 익숙해지지 못했지만 지금까지와는 살짝 다른 방법의 구현을 해야 한다고 하니, 나를 위해 짧게라도 정리..
목차 컴프리헨션은 여러 가지 뜻이 있지만, 파이썬의 맥락에서는 '함축'이라는 단어가 가장 어울리는 것 같다. 그 뜻대로 파이썬 컴프리헨션이란 리스트, 딕셔너리, 집합 등을 축약해서 만들어주는 기능이다. 처음 접할 땐 '뭐 이렇게까지 해야 하나..' 싶지만 일단 익숙해지면 기존의 방식이 되려 거추장스럽다. 시작하기 전에, 자바로 입문한 내게 있어 배열 선언과 요소 입력은 아래와 같은 방식이었다. arr = [0] * 5 for i in range(5): arr[i] = input() print(arr) ['1', '2', '3', '4', '5'] 물론 작동은 잘한다. 다만 파이썬에는 배열이 따로 없고 리스트가 존재하며, 자바의 배열과 달리 크기가 고정되는 타입이 아니다. 그래서 아래와 같이 고쳐서 사용했..
프레임워크에 대한 지식 없이 파이썬으로 알고리즘 풀이만 하다가 이제 준비가 된 것 같아(?) 간단한 게시판 만들기를 따라 해 보았다. 내가 생각해야 하는 것이 아니라 보고 따라 적기만 하면 되는 거라서 구현 자체는 잘 됐는데, 적당히 따라 하다 보니 여러 가지 새로운 개념에 대해 정리해야 할 것 같다는 판단이 들었다. 예를 들면 함수 기반 뷰와 클래스 기반 뷰의 차이 같은 것. 근데 이에 대해 알려면 일단 스프링의 MVC과는 다른 장고의 MVT패턴을 제대로 알아야 할 것 같아 글쓰기 페이지를 열었다. 시작! MVT Pattern MVT패턴은 Model-View-Template의 앞글자를 딴 패턴으로서, 기존의 MVC 패턴에서 파생된 개념이다. 따라서 태생적으로 MVC 패턴과 비슷한 구조를 가지고 있긴 하..
목차 안 그래도 VSCode의 불편함(?)과 스크립트 언어에 적응하느라 정신이 없는데 새로 배워야 할 단어가 산더미다. 그 와중에 오늘 클론코딩을 하다가 Form과 ModelForm은 다르다는 충격적인 사실을 알게 되었는데, 알아보니 조금 다른 것이 아니라 많이 다른 것 같아서, 꼭 정리해야 할 것 같아서 글쓰기 창을 열었다. 여기서는 일단 구분만 하고 한동안 적응한 후 다음 글을 써도 쓰기로 하고, 최대한 짧고 간결하게 정리해 보자. 들어가기 전에, Form과 ModelForm은 둘 다 장고에서 제공하는 클래스이다. Form Form 클래스는 일반적으로 API를 통해 들어온 입력의 유효성을 검증하는 데 사용된다. 따라서 HTML 렌더링과는 상관없는 것이 보통이며 따라서 모델과도 직접적인 연관관계를 갖지..
지난 글에 파이썬과 장고를 이용한 개발환경을 세팅하는 방법을 올렸었다. 2023.04.10 - [Development/Django] - [Django]python, pip, vscode 개발환경 구성 [Django]python, pip, vscode 개발환경 구성 Config 일반적으로 맥북은 기본적으로 파이썬이 설치되어서 나온다. 내가 사용하는 m1 맥북 에어는 그중에서도 아예 파이썬 3가 달려서 나오는데, 이걸 업데이트 해서 사용하려고 하니 말리는 글 gnidinger.tistory.com 그런데 사용하다 보니 해당 설정은 터미널이 켜져 있을 때만 유효하고, 껐다 켜면 리셋되는 바람에 자주 당황스러웠던 경험이 쌓였다. 그냥 넘어가려다가 나중을 위해 기록하고 가기. Terminal 문제는 터미널이 실..
목차 Django를 사용해 모델을 만들고 이를 테이블과 매핑할 땐 타입이 중요하다. 스프링부트에서도 여러 가지 타입을 지원했듯이, 장고도 마찬가지로 많은 타입을 지원한다. 그중에서 많이 사용하(ㄴ다고 하)는 타입들에 대해 짧게 정리하자. CharField 짧은 문자열은 저장하는 필드 타입. max_length 매개변수로 길이를 지정할 수 있다. 최대 255까지 지원하며, 255를 넘어서는 순간 아래의 TextField로 변환된다. TextField 긴 문자열을 저장할 때 사용한다. 길이의 제한이 없다. IntegerField 정수 값을 저장할 때 사용한다. max_value, min_value로 값의 범위를 지정할 수 있으며 32비트 부호 정수인 Integer값을 저장할 수 있다. 이보다 큰 값의 경우..
팩토리얼은 간단하게 n!로 나타내며, 1부터 n까지의 모든 자연수를 1씩 더해가며 곱하는 연산을 가리킨다. 개념을 더 정확하게 파악하려면 1부터 n까지의 자연수가 아닌 n부터 1까지의 자연수를 곱하는 게 맞지만, 지금은 그게 중요한게 아니니까. 파이썬으로는 크게 세 가지 방법으로 팩토리얼을 구현할 수 있다. 물론 바텀업 방식의 동적계획법 등은 여기에선 빠져있다. 가장 먼저, 파이썬의 math 라이브러리에서 제공하는 기본 함수를 사용하자. 그냥 가져다 쓰면 된다. import sys import math n = int(sys.stdin.readline().rstrip()) print(math.factorial(n)) sys 라이브러리를 사용하지 않으면 세 줄로 팩토리얼 계산이 끝나버린다. 다음 방법은 재귀..
Config 일반적으로 맥북은 기본적으로 파이썬이 설치되어서 나온다. 내가 사용하는 m1 맥북 에어는 그중에서도 아예 파이썬 3가 달려서 나오는데, 이걸 업데이트 해서 사용하려고 하니 말리는 글들이 종종 있었다. 기본 설치된 파이썬은 그냥 두는 게 좋다고. 그럼 어떻게 하란 말이냐 봤더니, Homebrew를 통해 파이썬을 설치하고 업데이트 해서 개발 환경에선 해당 파이썬을 불러서 사용하는 걸 추천한다. 한 번에 정리된 글이 잘 보이지 않아서 그냥 내가 쓰기로. 일단 brew를 이용한 파이썬 설치. brew update brew를 먼저 최신버전으로 업데이트하고, brew install python 파이썬을 최신버전으로 설치한다. python --version pip --version 설치가 끝나면 각각 버..
- Total
- Today
- Yesterday
- 기술면접
- a6000
- 유럽
- 맛집
- 세계일주
- 자바
- Algorithm
- Python
- 야경
- 스트림
- 파이썬
- java
- 백준
- 스프링
- 여행
- 중남미
- 알고리즘
- 남미
- 칼이사
- 면접 준비
- RX100M5
- Backjoon
- spring
- 리스트
- BOJ
- 유럽여행
- 세모
- 세계여행
- 동적계획법
- 지지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |