본문 바로가기

위코드23

위스타그램 스터디(백엔드) 정리 인스타그램 클론코딩(이하 위스타그램) 13가지의 미션이 주어졌다. 하지만 서비스를 구현하는 프로젝트는 처음이다보니 이 서비스의 목적이 무엇인지, 프로젝트를 통해 내가 무엇을 배울 수 있는지 과제의 의도와 의미를 파악하기가 힘들었다. 그래서 주어진 미션만 하나씩 해결해나가지 말고 동료들과 함께 이번 프로젝트를 전체적으로 분석해보기로 했다. 주말을 이용해 동료를 모아 1시간 조금 넘게 스터디를 진행했다. 스터디 내용은 아래와 같다. 현재 파이썬을 조금 익히고 장고를 배운지 2주차 밖에 안되었기 때문에 틀린 정보가 많을 수 있으니 감안해서 보기를 바란다. 스터디 목적 위스타그램 미션에 대한 의견을 공유하면서 프로젝트에 대한 이해도를 높이기 위함 장고 API 프로세스를 복기하고 위스타그램 프로젝트의 전체 과정을.. 2021. 11. 20.
'ManyToManyField' 또는 '중간테이블'로 데이터 가져오는 방법 django(장고)에서 만들려는 데이터베이스 테이블의 관계가 n:n 관계, 즉 ManyToMany 관계의 테이블을 생성하는 방법은 크게 3가지가 있다. 1번 >>> 중간 테이블을 만들어 중간테이블이 각각 다른 테이블을 FK로 가져오는 방법 2번 >>> models.py 작성시에 다대다 관계의 테이블 중 하나의 테이블에 ManyToManyField를 사용하는 방법(이 방법은 장고가 자동으로 중간테이블을 생성해준다) 3번 >>> 1번, 2번 모두 사용하는 방법으로 중간 테이블을 만들고, ManyToManyField도 사용하면서 중간 테이블 지정을 미리 만들어둔 중간테이블로 지정하는 방법 *세 가지 방법에 대한 차이점(아래 예제를 보고 오면 이해가 될거에요!) 더보기 차이점1. >>> 1번의 경우 A에서 한 .. 2021. 11. 19.
파이썬 중간시험 5문제 후기 엄청 어려운 게 나오면 어쩌나 했는데, 기초 문법 위주로 나와서 다행히 수월하게 풀 수 있었다. 하필 조용한 시험 도중에 배에서 꼬르륵 소리가 나서 좀 창피했음... 오늘의 교훈 >>> 시험 날에는 반드시 밥을 먹고 올 것! 자 그럼 문제 리뷰 시작~ 1번 문제 짝수인지 판별하는 함수 is_even을 작성 주세요. def is_even(num): # 아래 코드를 입력해주세요. if num % 2 == 0: a = "짝수 입니다." else : a = "짝수가 아닙니다." return a 주어진 인자를 2로 나누었을 때 0이면 '짝수 입니다', 0이 아니면 '짝수가 아닙니다.'로 리턴 2번 문제 팁과 세금을 제외한 식사값이 주어졌을때, 팁과 세금이 포함된 총 식사값을 반환하는 함수를 작성하세요. 세금은 9.. 2021. 11. 14.
HTTP 를 알아보자 일반적으로 우리가 사용하는 인터넷은 HTTP를 사용한다. 1. HTTP란? HyperText Transfer Protocol 사전적 의미로 살펴보자면 다음과 같다. Hypertext : 하이퍼텍스트(문장 중의 어구나 그것에 붙은 표제, 표제를 모은 목차 등이 서로 연결된 문자 데이터 파일) Transfer : 장소를) 옮기다, 이동[이송/이전]하다 Protocol : 프로토콜, 통신 규약 즉, HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 인터넷 데이터 통신 규약이라고 할 수 있다. 예를들어 우리가 그림을 요청하면 서버는 요청한 그림을 응답해주는데 이 과정이 HTTP 틀 안에서 이루어지는 것이다. 진짜진짜 쉽게 말해서 컴퓨터들끼리 HTML파일을 주.. 2021. 11. 13.
파이썬에서 직접 만든 패키지를 불러오자. (feat. 절대 경로와 상대 경로) 파이썬에 내장된 패키지나 모듈은 build-in modules에, pip 등으로 다운로드한 패키지나 모듈은 sys.path에 저장되기 때문에 쉽게 이름만으로 불러올 수 있지만, 직접 만든 로컬 패키지의 경우 '절대 경로', '상대 경로'에 따라 다음과 같은 import 에러 메시지를 만나게 될 수 있다. from .package import module2 >>> ImportError: attempted relative import with no known parent package #ImportError: 알려진 상위 패키지가 없는 상대 가져오기 시도 이 문제를 해결하기 위해 절대 경로와 상대 경로에 대해 알아보고 어떤 식으로 import 해야 하는 살펴보자. 우선 아래 처럼 project1 안에 주로 .. 2021. 11. 6.
sys.module 과 sys.path 의 차이점 sys sys는 파이썬에 포함되어 있는 Import 해야하는 모듈 sys는 built-in 되어 있으므로 bulit-in modules에서 찾을 수 있다. sys.module 파이썬이 모듈이나 패키지를 찾기위해 가장 먼저 확인하는 곳 딕셔너리구조 이미 import 되어있는 모듈과 패키지 저장함 새로 import 하는 모듈은 sys.modules 에서 찾을 수 없음 sys.path 가장 마지막으로 확인하는 장소 string 요소들을 가지고 있는 list. ex. ['/Users/song-eun-u/anaconda3/lib/python3.6', '~~'] sys.path에서도 모듈을 발견하지 못하면 ModuleNotFoundError 에러를 리턴 sys.module 과 sys.path 의 차이점 1. 찾는 .. 2021. 11. 6.