전체 글 802

git 이것만 알면 돼!

git 기본 명령어 정리 1. 원하는 디렉토리로 들어가 git 초기화하기(깃 연동 준비) git을 사용하기 위해서는 우선 원하는 디렉토리(폴더)로 들어가 git을 초기화 해주어야 합니다. 초기화라고 해서 어렵게 생각하지 마시고 github과 연동하는 준비단계라고 봐주시면 됩니다. "이제부터 이 폴더를 github과 연동할거야"라고 선언하는 것이죠. git init 2. git 연동하기 연동할 준비를 마쳤으면 실제로 연동합니다. 깃헙의 레파지토리의 주소를 복사해 아래 명령어와 함께 실행합니다. git remote add origin [깃헙 레파지토리 주소] 3. git 올리기 그리고 log 확인 작업한 내용을 github에 올리기 위해서는 아래 세 단계가 필요합니다. 첫 번째는 git add입니다. 어떤 ..

[TIL]django__데이터 중복_IntegrityError_ValidationError

오늘 배운 것 회원가입 시 이메일 정보가 중복되면 에러로 반환하고 싶다. 장고 view에서 데이터의 중복을 확인하는 방법에는 여러 가지가 있는데 한 번 살펴보자. 처음에 나는 회원정보가 있는 Member테이블에서 email 칼럼의 값을 리스트 형태로 가져와 변수에 저장했다. 그리고 요청받은 email 데이터가 해당 리스트에 있는지 확인 하는 식으로 코드를 작성했다. 코드는 다음과 같다. email_list = Member.objects.values_list("email", flat=True) if data['email'] in email_list: # data['email']은 요청받은 이메일 정보이다. return ~~ 그리고 동료로부터 배운 두 번째 방법은 exists()매서드를 활용에 중복 여부를 ..

위스타그램 스터디(백엔드) 정리

인스타그램 클론코딩(이하 위스타그램) 13가지의 미션이 주어졌다. 하지만 서비스를 구현하는 프로젝트는 처음이다보니 이 서비스의 목적이 무엇인지, 프로젝트를 통해 내가 무엇을 배울 수 있는지 과제의 의도와 의미를 파악하기가 힘들었다. 그래서 주어진 미션만 하나씩 해결해나가지 말고 동료들과 함께 이번 프로젝트를 전체적으로 분석해보기로 했다. 주말을 이용해 동료를 모아 1시간 조금 넘게 스터디를 진행했다. 스터디 내용은 아래와 같다. 현재 파이썬을 조금 익히고 장고를 배운지 2주차 밖에 안되었기 때문에 틀린 정보가 많을 수 있으니 감안해서 보기를 바란다. 스터디 목적 위스타그램 미션에 대한 의견을 공유하면서 프로젝트에 대한 이해도를 높이기 위함 장고 API 프로세스를 복기하고 위스타그램 프로젝트의 전체 과정을..

'ManyToManyField' 또는 '중간테이블'로 데이터 가져오는 방법

django(장고)에서 만들려는 데이터베이스 테이블의 관계가 n:n 관계, 즉 ManyToMany 관계의 테이블을 생성하는 방법은 크게 3가지가 있다. 1번 >>> 중간 테이블을 만들어 중간테이블이 각각 다른 테이블을 FK로 가져오는 방법 2번 >>> models.py 작성시에 다대다 관계의 테이블 중 하나의 테이블에 ManyToManyField를 사용하는 방법(이 방법은 장고가 자동으로 중간테이블을 생성해준다) 3번 >>> 1번, 2번 모두 사용하는 방법으로 중간 테이블을 만들고, ManyToManyField도 사용하면서 중간 테이블 지정을 미리 만들어둔 중간테이블로 지정하는 방법 *세 가지 방법에 대한 차이점(아래 예제를 보고 오면 이해가 될거에요!) 더보기 차이점1. >>> 1번의 경우 A에서 한 ..

파이썬 중간시험 5문제 후기

엄청 어려운 게 나오면 어쩌나 했는데, 기초 문법 위주로 나와서 다행히 수월하게 풀 수 있었다. 하필 조용한 시험 도중에 배에서 꼬르륵 소리가 나서 좀 창피했음... 오늘의 교훈 >>> 시험 날에는 반드시 밥을 먹고 올 것! 자 그럼 문제 리뷰 시작~ 1번 문제 짝수인지 판별하는 함수 is_even을 작성 주세요. def is_even(num): # 아래 코드를 입력해주세요. if num % 2 == 0: a = "짝수 입니다." else : a = "짝수가 아닙니다." return a 주어진 인자를 2로 나누었을 때 0이면 '짝수 입니다', 0이 아니면 '짝수가 아닙니다.'로 리턴 2번 문제 팁과 세금을 제외한 식사값이 주어졌을때, 팁과 세금이 포함된 총 식사값을 반환하는 함수를 작성하세요. 세금은 9..

HTTP 를 알아보자

일반적으로 우리가 사용하는 인터넷은 HTTP를 사용한다. 1. HTTP란? HyperText Transfer Protocol 사전적 의미로 살펴보자면 다음과 같다. Hypertext : 하이퍼텍스트(문장 중의 어구나 그것에 붙은 표제, 표제를 모은 목차 등이 서로 연결된 문자 데이터 파일) Transfer : 장소를) 옮기다, 이동[이송/이전]하다 Protocol : 프로토콜, 통신 규약 즉, HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 인터넷 데이터 통신 규약이라고 할 수 있다. 예를들어 우리가 그림을 요청하면 서버는 요청한 그림을 응답해주는데 이 과정이 HTTP 틀 안에서 이루어지는 것이다. 진짜진짜 쉽게 말해서 컴퓨터들끼리 HTML파일을 주..

장고 용어 정리

장고를 튜토리얼부터 배우고 있는데 아직 모르는 것 투성이다. 따라는 하는데 이해가 안된다. 그렇다면 이해를 하기 위해 무엇부터 공부해야할까? 문득 '모든 언어는 단어에서부터 시작한다'라는 생각이 들었다. 단어의 뜻을 알아야 문장의 의미를 유추할 수 있다. 의미를 유추하면 그제서야 맥락이 보이기 시작한다. 그렇다면 지금 내가 해야할 것은 장고와 관련된, 특히 자주 쓰이는 용어들의 의미를 파악하는 것이다. 이 글은 생소한 용어들을 하나씩 정리하면서 앞으로 내가 장고를 이해하는데 도움이 되어줄 글이다. 앞으로 주기적으로 업데이트 하면서 새로운 용어는 추가하고 잘못알고 있었던 것을 수정할 예정이다. URLconf (파일명 : urls.py) - 클라이언트로부터 요청을 받으면 가장 먼저 요청에 들어있는 URL을 ..

명대사를 활용한 자기소개 웹페이지 제작

명대사를 활용한 자기소개 웹페이지 제작 데모 링크 : https://daco2020.github.io/introduce/ 깃헙 링크 : https://github.com/Daco2020/introduce 개발 목표 1. 일반적인 자기소개가 아닌 명대사를 활용한 컨셉있는 자기소개 페이지를 만들고 싶었음 2. 네비바를 클릭하면 해당 페이지로 스무스하게 이동시키고 싶었음 3. 내 이야기만 하는 것이 아닌, 다른 사람들과 소통할 수 있는 댓글 기능을 넣고 싶었음 사용 기술 HTML CSS - media query, keyframes JS Disqus Advanced Feature 1. 재미있게 본 콘텐츠의 명대사를 활용하여 내가 되고 싶은 개발자를 표현함 2. 네비바를 클릭하면 해당 페이지로 자연스럽게 이동하며..

파이썬에서 직접 만든 패키지를 불러오자. (feat. 절대 경로와 상대 경로)

파이썬에 내장된 패키지나 모듈은 build-in modules에, pip 등으로 다운로드한 패키지나 모듈은 sys.path에 저장되기 때문에 쉽게 이름만으로 불러올 수 있지만, 직접 만든 로컬 패키지의 경우 '절대 경로', '상대 경로'에 따라 다음과 같은 import 에러 메시지를 만나게 될 수 있다. from .package import module2 >>> ImportError: attempted relative import with no known parent package #ImportError: 알려진 상위 패키지가 없는 상대 가져오기 시도 이 문제를 해결하기 위해 절대 경로와 상대 경로에 대해 알아보고 어떤 식으로 import 해야 하는 살펴보자. 우선 아래 처럼 project1 안에 주로 ..

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. 찾는 ..