Computer Programming/AI 75

TIL_Django Project 중 Cookie와 Session 정리

Django 기초강의 내용 중 Cookie와 Session이 무엇인지 알아야 하는 부분이 있었다. 평소에 들어봤던 단어지만 정확히 어떤 것인지 잘 몰라 두 용어에 대한 정리를 했다. 쿠키(Cookie) client 측에서 상태 정보를 저장하는 작은 데이터 조각. 주로 브라우저에 저장되고, server에서 생성, 관리 된다. 주로 사용자를 식별하고 상태 정보를 유지하기 위해 사용. 보안을 강화하기 위해 암호화된 쿠키를 사용할 수 있다. session cookie는 브라우저가 닫힐 때 삭제, 지속적인 cookie는 설정된 만료 날짜까지 유지 된다. ex)사용자 login 유지 세션(Session) server 측에서 사용자의 상태 정보를 저장하는 메커니즘. session은 client에 저장되는 것이 아니어..

WIL_네 번째 주

이번주는 Algorithm과 Django에 대한 공부를 했다. Facts 매일 아침마다 1시간 씩 algorithm 문제를 3문제 정도씩 풀었다. 또한 Django 기초 강의를 두 가지나 받았는데, 두 강의 모두 Django의 기본 동작 프로세스와 CRUD를 어떻게 할 수 있는 지 배웠다. 그리고 협업을 위한 Git 사용 방법을 연습했다. Feelings Algorithm 문제를 꾸준히 풀다 보니깐 for과 data type 부분에 대해 조금은 익숙해진 느낌이다. 또한 이번에 Django를 처음 사용하게 되었는데, 많은 기본 기능들이 이미 구현이 되어있어서 그런지 편리한 framework라는 생각이 들었다. MVT model을 사용하기 때문에 기능과 역할에 따라 파일들이 구분되어 있는데, 이 부분에 익숙..

TIL_Django 기본 project

Project 생성 새로운 Django 기초 강의를 하나 더 듣기 시작했다. 전에는 pycharm IDE를 사용했지만 이번에는 VSCode를 쓴다. 폴더 생성 후, git bash에서 가상환경(별도의 python 공간)을 만들어 준다. python -m venv venv 가상환경을 켜준다. source venv/Scripts/activate * pip list: 가상환경에 설치된 파일들 list 볼 때 deactivate: 가상환경 끌 때 project 마다 venv를 각각 관리 Github 연결 git 사용을 하기 위해 git bash에 command를 입력한다. git init *ls: 현재 위치에서의 파일들 보기 ls -a: 현재 위치에서의 모든 파일들 보기 rm -rf .git: .git file..

TIL_Django로 Project 만들기

간단한 SNS를 만드는 것이 목표이다. 회원가입, 로그인, 로그아웃과 같은 사용자 관리, 글쓰기 기능, 친구 팔로워 기능 등 간단한 SNS이다. 강의를 보았지만 조금 헷갈리는 부분이 있어서 전반적인 과정을 정리 해 보았다. 프로젝트의 기능을 크게 'user'과 'tweet'으로 나눌 수 있어서 두 개의 app을 만들었다. terminal에서 다음과 같이 입력한다. django-admin startapp user django-admin startapp tweet 생성한 앱을 관리 할 수 있게 Django에게 알려줘야 한다. project folder의 'settings.py'를 아래와 같이 수정한다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib...

TIL_Python의 framework, Django

Framework는 개발을 도와주는 하나의 틀과 같다. 따라서 결과물을 일정한 형태로 만들 수 있다. 앞으로 쓰게 될 Django의 작동 방식을 이해하는 것이 필요할 것 같아서 정리를 해보았다. Python의 framework에는 Django, flask, pyramid 등이 있다. Django는 거대한 framework이다. 따라서 많은 utility들이 이미 만들어져 있고, DB, login, Admin, password 암호화 등 많은 부분들이 이미 제공이 된다. 또한 community와 document가 잘 되어있어 편리하다. MVT pattern은 Django가 일하는 방식이다. M(Model) database의 model(ORM) 저장되고 사용되는 data의 형태 V(View) 실질적으로 프로..

TIL_Django 시작

오늘부터 Django를 시작했다. 우선 pycharm IDE(professional)로 새 프로젝트를 생성하고 Django framework를 사용했다. 그리고 Django server를 켜기 위해 Run! 그런데 다음과 같은 에러가 났다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 뭔가 기본적인 setting이 잘못 된 것 ..

WIL_세 번째 주

세 번째 주 주말이다. Facts 이번주에는 3가지 개인 과제를 진행하고 algorithm을 배우기 시작했다. 개인 과제는 '1. up and down game, 2. 가위바위보 게임, 3. class를 이용한 멤버관리 시스템'을 만드는 것이었다. 첫 번째와 두 번째 프로그램은 비교적 금방 작성을 했는데, 세 번째 멤버관리 시스템은 시간이 좀 걸렸다. 한 class로 instance를 생성하고, 생성된 instance에 세 개의 instance를 만드는 것이 복잡하게 느껴졌다. 그래도 username attribute으로 두 개의 class를 서로 이어주고 각각의 instance에 여러 개의 instance를 생성할 수 있도록 해서 프로그램을 무사히 작성했다. 목요일 부터는 아침마다 알고리즘 실시간 강의..

TIL_자료구조 stack

자료구조 중 stack을 배웠다. stack은 프링글스 과자를 생각하면 된다. 쌓여져 있는 과자의 형태. 이것이 stack이다. stack을 구현하는 코드를 작성했다. class Node: def __init__(self, item, next): self.item = item self.next = next class Stack: def __init__(self): self.top = None def is_empty(self): return self.top is None def push(self, val): self.top = Node(val, self.top) def pop(self): if not self.top: return None node = self.top self.top = self.top.n..

TIL_Array와 LinkedList(Algorithm)

Array와 Linked List에 대해 정리해 보았다. Array 접근 쉬움, 삽입 어려움, Python의 list. 특정 원소 조회: O(1) 중간에 삽입, 삭제: O(N) 공간이 다 차면 새로운 메모리 공간을 할당받아야 함 LinkedList 접근 어려움, 삽입 쉬움, 직접 구현. 특정 원소 조회: O(N) 중간에 삽입, 삭제: O(1) 공간이 다 찼어도 맨 뒤의 node만 동적을 추가하면 됨 결론 데이터에 접근하는 경우가 빈번할 때는 Array, 삽입과 삭제가 빈번하다면 LinkedList 사용. LinkedList의 구현 code class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class L..

TIL_Algorithm

오전에 첫 번째 Algorithm 특강을 들었다. 알고리즘이란, 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법이다(구글 검색 결과). Computational thinking이 프로그래밍이나 알고리즘 문제를 풀 때 뿐만이 아니라 다른 분야 혹은 일상 생활 속에서 컴퓨팅 사고를 하는 것은 많은 도움이 된다. 좋은 알고리즘의 기준으로 공간 복잡도와 시간 복잡도가 있다. 공간 복잡도 프로그램을 실행 및 완료하는데 필요한 저장 공간의 양, 컴퓨터 저장공간의 기술 발달로 그렇게 중요하지는 않음. 시간 복잡도 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간. - 빅오메가(Big-Ω): 최선의 경우 - 빅세타(Big-Θ): 평균(중간) - 빅오(Big-O): 최약의 경우 배열의 길이만큼 순회를 해야 함..

LIST