반응형

전체 글 1480

치팅 노트

Filter에서 쓸 수 있는 것 조건을 통한 데이터 조회 방법 필드명__조건 = 조건값 을 filter 의 인자로 넘겨주줘 다음과 같은 방식으로 조건을 부여하여 조건에 부합되는 데이터를 조회할 수 있습니다. 위에서 정의한 모델에 맞게 예시를 통해 알아보겠습니다. 각 예시는 언더바를 두 개 씩 사용하고 있으므로 헷갈리지 맙시다. 숫자 / 날짜 /시간 필드 필드명__lt Post.objects.filter(is_published__lt = date(1961,1,1)) 필드명__lt = 조건값 : 필드명 < 조건값 필드명__lte 필드명__lte = 조건값 : 필드명

Framework/Django 2020.06.02

Session-데이터 구조(Data Structure) 중 나무(Tree),트리

1. Tree 트리는 일반적으로 대상정보의 각 항목들을 계층적으로 연관되도록 구조화 시키고자 할때 사용하는 비선형 자료구조입니다. 데이터 요소들의 단순한 나열이 아닌 부모-자식 관계의 계층적 구조로 표현이 됩니다. 트리는 그래프(Graph)의 한 종류이며 사이클이 없습니다. 트리 자료구조는 여러유형이 있지만 그 중 가장 기본은 binary tree(이진 트리)구조가 대표적입니다. 이진 트리는 두개의 자식노드를 가진 트리 형태입니다. 트리 자료구조는 데이터를 거꾸로된 나무 형태로 저장하는 모양입니다. 계층적인 관계의 표현에 쓰이고, 윈도우와 리눅스의 파일시스템 구조도 트리로 표현됩니다. 대용량의 데이터를 저장할때도 많이 쓰입니다. Node : 트리 구조의 교점입니다. Node가 데이터를 가지고 있고 또한 ..

Wecode/Session 2020.06.02

Session- RESTful API ..

진짜 wecode 초반부터 엄청나게 많이 들었는데 한달이 지난 지금에서야 조금씩 이해가 된다. 정의: REST(REpresentational State Transfer)란 웹에 존재하는 모든 자원(resorce, ex. 이미지, 동영상, 데이터)에 고유한 URI를 부여하여 자원에 대한 주소를 지정하는 방법론, 또는 규칙입니다. 현재 가장 널리 사용되고 있습니다. 따라서, RESTful API는 REST 특징을 지키면서 API를 제공한다는 의미입니다. 그냥 단순히 말하면 육하원칙처럼 말할 때의 규칙처럼 웹 개발자에게 주어진 예절같은 규칙(?), 안지켜도 뭐라고 안하지만 지향을 하는 것들. 부엉이 닮은 아저씨가 눈 동그랗게 뜨고 REST API를 열심히 설명하는 영상도 있다. (표정으로 설명함) https:..

카테고리 없음 2020.06.02

Project-laka웹페이지 따라하기-제품 창 구현

장고를 이용하여 프론트의 리액트와 함께 웹페이지를 하나 지정하여 복사하기를 하고 있다. 프로덕트가 보여지는 창을 프론트와 맞춰보기 위해서 product/views.py를 작성했다. 일단 product/models.py는 이런 구조이다. 지난번에 웹크롤링한 것을 넣는 작업을 통해서 이런 구조의 테이블에 모든 데이터가 꽉차있다. 이것들을 활용하여 product/views.py를 작성해봤다. 일단 프론트에서 필요한 정보를 요약해서 들었다. 홈페이지를 보면서 내가 파악할 수도 있지만 정확하게 하기 위해 필요한 요소들을 프론트에게 전달 받고 어떤 형식으로 받고싶은지도 들었다. 이런 캡쳐를 보내주었다. 이것들을 보고 작성한 views.py 사실 get만 있어서 쉬웠던 것 같기도하다. 대부분 리스트 표현식을 썼다. ..

Wecode/Project 2020.06.02

웹크롤링-selenium , beautifulSoup사용하여 laka홈페이지 프로덕트 크롤링하기(2),크롤링한 데이터 데이터베이스에 넣기

지난 번에 올린 어마무시하게 무식한 크롤링 방법으로 인해 다음 크롤링들은 비교적 쉬웠다. HTML의 기본 구조에 따라서 많이 좌우가 되었다. 기본 구조가 균일하냐 안하냐가 컸다. 약 550개의 스토어 정보는 백엔드 동료가 했고 나머지 긁어올 데이터들은 내가 했다. 지난 번에 한 것이 제품의 기본적인 정보들이고, 그 이후 긁어 온 것들은 제품의 이미지 사진 URL, 제품마다 가지고 있는 색깔과 색깔을 나타내는 이미지들을 긁어 왔다. 컬러 들고 올 때에 클릭한번을 넣어서 포문을 돌렸다. 그거 빼고는 문제가 없었다. 제품 별로 컬러를 묶을 필요가 없었고 그냥 컬러 테이블을 위한 정보가 필요해서 이렇게만 뽑았다. 여기 테이블을 위한 것을 뽑았다. 사실 중요한 것은 크롤링하기전에 무엇 무엇을 할 건지 정하는게 중..

Wecode/Project 2020.06.01

웹크롤링-selenium , beautifulSoup사용하여 laka홈페이지 프로덕트 크롤링하기(1)

아주아주 힘든 크롤링이였다.. 그냥 노가다였다. 그냥 수작업하는 게 더 빨랐을 것이다. 하지만 누구나 그렇듯 오기를 부린다. 그래서 일단 읽어오는데는 성공했고 시간이 없어 내일 csv파일로 배출해낼 것이다. 약 4~5시간정도 투자하여 만든 크롤링에 대해서 살펴 보자. 사실 여기저기 자료에서 긁어온 게 많아서 짬뽕이 되긴 했고 다른 것을 크롤링했던 거에 그대로 수정하여 사용했기 때문에 주석처리도 좀 있다. 일단 여기서 beautifulsoup으로 urllist들을 따왔다. url구성을 분석해본 결과 뒤에 프로덕트 url이 붙었다. 그래서 포문을 돌려서 urllist를 만들었다. 제품이 19개 밖에 안되지만 각 제품상세 페이지의 구성이 다 달라서 노가다가 시작이 되었다. driver.find_element_..

etc. 2020.05.29

Django-크롤링한 자료, 장고에 인풋작업,API 문서화 세션

들어가는 모듈들 import os import django import scv import sys os.environ.setdefault("DJANGO_SETTINGS_MODULE", "??" django.setup() from product.models imp[ort Menu, Category, Drink CSV_PATH_PRODUCTS = './PRODUCTS.CSV' with open(CSV_PATH_PRODUCTS) as in_file: data_reader = csv.reader(in_file) next(data_reader, None) #첫번째줄 무시함 for row in data_reader: if row[0]: print(row[0]) Menu.objects.create(name=row[0..

Framework/Django 2020.05.29

LAKA-Project-DAY4-Stand-up meeting , ERD 데이터베이스 모델링(Database Modeling)(3)

늘 그렇듯 아침은 정신이 맑다. 커피도 마실 수 있고, 잠으로 스트레스가 일절 해소가 되어 있는 상태. 맑은 정신으로 팀원들과 인사하고 스탠드업 미팅을 한다. 스탠드 업 미팅 백엔드 - 나 어제한 일 어제 모델링 컨펌받고 끝냄. 모델링을 기준으로 장고 앱을 만들고 models.py를 작성 중. 오늘할 일 필요한 앱들(order앱과 product앱)을 만들고 Aquerytool을 통해 설계한 데이터베이스모델링을 그대로 넣을 예정(노가다) 프론트엔드 - 미란님 어제부터 지금까지 하고 있고 오늘까지 할 것 회원가입 부분 디테일 하는중 회원정보 입력하는 부분 디테일 연락처 부분 Input이 3개로 나뉘어져있음. 그게 힘듬. 회원정보 필수부분 입력이 안되면 경고문구뜨는 것도 신경을 써야하는데 힘듬. 큰 틀은 다 ..

Wecode/Project 2020.05.28

LAKA-Project-ERD 데이터베이스 모델링(Database Modeling)(2)

월~수 오후까지 투자를 하여 모델링을 끝냈다. 완벽한 모델링은 아니지만 멘토의 OK를 받은 모델링. 어제 제품관련된 모델링을 블로그에 올렸고 오늘은 회원관리에 대해서 모델링 한 것을 올릴 것이다. - members 테이블에서 회원정보들을 받아서 저장시킨다. - 1:1문의와 coupon은 구현 하지 않을 예정이므로 만들었었지만 신경을 쓰지 않았다. - shipping_address 는 라카에서 배송지를 10개까지 저장할 수 있게 하였고 거기에서 POST로 받아 저장시키는 것들을 나열해서 따로 저장시켰다. members의 아이디를 외래값으로 받는다. 1명의 회원이 10개의 배송지까지 받을 수 있다. - 성별은 단순하게 몇개 없어서 genders로 빼고 members가 gender_id를 받게 했다. 오늘 모..

Wecode/Project 2020.05.27

LAKA-Project-ERD 데이터베이스 모델링(Database Modeling)(1)

화장품 회사 laka.co.kr를 클로닝하는 프로젝트를 하고 있는 중이다. 모델링에 많은 시간을 쏟아부어야 한다는 이야기가 있다. 기초를 탄탄히 해야 건물이 쭉쭉 잘 올라가듯이 기초작업이기 때문이다. 그래서 많이 힘들다. 일단 모델링을 하기 전에 필요한 것이 있다. 그 클로닝을 할 사이트를 정밀 탐사를 하는 것이 중요하다. 만약 새로운 웹사이트를 만들때라면 제안서를 꼼꼼히 파악하는게 우선이다. 꼼꼼히 살펴 본 결과 몇가지 중요한 포인트를 찾았다.(데이터 모델링에 필요한) 첫번째, 라카의 제품의 카테고리를 두개 가지는 경우가 있다. 두번째, 라카 제품의 칼라는 하나도 안 겹치는 것 같지만 수십개중 두개가 겹친다.(부들부들) 세번째, 각 칼라별로 다른 전성분을 가진다. 네번째, 제품이 다양한 제조사를 가질 ..

Wecode/Project 2020.05.26

Session-자료구조 Stack & Queue

스택은 위에서부터 쌓인 것 1. Stack 마지막으로 저장한 데이터가 처음으로 읽힙니다. 영어로 하면 LIFO(Last In First Out) Stack에서 데이터 저장은 push 라고 합니다. 데이터를 읽어들이는 건 pop 이라고 합니다. 다만 pop은 읽어들임과 동시에 stack에서 삭제합니다. Stack의 활용 웹브라우저 방문기록(뒤로가기) 및 실행취소 미로찾기 알고리즘 → 방문한 곳을 좌표로 표기하고, 다음 방문할 곳을 탐색한 후 Stack에 가능한 곳 전부를 push하고, 다시 pop 하면서 현재 경로로 변경하는 것을 반복 프로그램에서의 함수 호출 기록을 stack으로 저장. 2. Queue 데이터가 들어온 순서대로 처리됩니다.(먼저 push된 게 먼저 pop 됩니다) 새치기는 안돼요! 새로운..

Language/Python 2020.05.26

LAKA-Project-프로젝트의 출발, Toy Project with new team

Wecode에서 첫 프로젝트. 주말에 모델링을 하였다. 모델링을 하기전 데코레이터처럼 선실행되어야 되는 것이 있는데 그것은 홈페이지 정밀 탐사. 정밀 탐사 및 모델링 하는 데에 약 4시간정도 투자했다. https://laka.co.kr/index.html 남녀 구분없이 파는 화장품 회사. 일단 첫번째로 네비부분을 하나하나 다 뒤져봄. 그리고 내가 필요할 것 같은 테이블들 기록. 그리고 그 테이블에 들어갈 필드이름 기록. 생각보다 회원쪽에 필요한 것은 크게 없었고 제품쪽에 필요한 것들이 많았다. 프론트엔드의 기획, 기능 분석 차차 고쳐지겠지만 오늘 머리써서 만들어본 모델링. 간략히 설명을 하자면 메인카테고리를 참조하는 프로덕트. 그리고 컬러가 너무 많았는데 그 컬러들이 중복되는 것이 없었다. 그래서 fac..

Wecode/Project 2020.05.24

Project- 토이 프로젝트(Toy Project), 기억하고 싶은 코드, 미니 프로젝트를 하며 느낀점

토이 프로젝트: 실제 프로젝트라고 하기엔 뭐하지만 그래도 프로젝트의 개념을 받아들여서 일정과 개발을 관리하고 팀원과의 소통을 중요하게 여기며 하나의 과업을 이뤄간다. 하. 위코드 들어온 이후 처음으로 하는 플젝. 실제 필드에 나갔을 때 필요한 스킬들이 가장 많이 쌓이는 시간, 그리고 개발자에게 가장 유익한 시간이지 않을까 싶어 설레기도하고 잘 할 수 있을까란 부담감도 온다. 랜덤(?)으로 아니면 장고 끝에 정해진 팀원들 , 프론트엔드(2명), 백엔드(2명). 클로닝할 웹사이트는 라카. 화장품 사이트. 일단 준비사항: - 웹사이트 정밀 탐사 - 모델링하기 - api협의(?) 도큐먼트 만들기, 프론트와 협의할 것들 - 전체 프로젝트 관리 엑셀시트 만들기 - 트렐로 만들기 - 개인의 목표 정하기 2주간에 SC..

Wecode/Project 2020.05.23

프로젝트 시작하기전에 유의할 것들.

프로젝트할 홈페이지 찬찬히 분석 필요 트렐로 활용 100프로 지향 프로젝트 초기 세팅들 프론트와 백엔드 약속, 규약, 데이터타입 정의 깃에서 클론해서 잘 셋업하기. 팀프로젝트이지만 개인의 목표가 확실히 있어야한다. 단 누가 되면 안됨. 주말 블로깅 - 기억하고 싶은 코드, 미니 프로젝트 하면서 느낀점 맡게 된 프로젝트 사이트 살펴보기 자신감 갖고 화이팅하기, 1차 프로젝트 개인 목표 생각해보기 시작전 전체 프로젝트 흐름도 , 작업 같은 것들 정리 한 후 이야기 무엇을 할 것인지 . 산으로 가지 않도록

Wecode/Project 2020.05.22

Session-데코레이터, 쿼리셋(Decorater, Queryset)

다른 언어에서는 데코레이터 패턴을 자주 쓰지 않음. json response 에 error_code : user_not_found error_code : need login 등 일단 구조 데코레이터 if와 트라이 위치 바꾸기 if 가 먼저오게 만약 토큰이 헤더에 없으면 로그인먼저하라고 하고 있을 경우 디코드하고 검증함. 쿼리셋 from account.models import Account 포린키 할때 account = moels.ForeignKEy(Acocunt, on_delete=models.SET_NULL, null=True) -- protect, cascade name = models.CharField(max_length=100) models.SET_NULL은 참조하는 키가 삭제되어도 빈칸으로 만들..

Wecode/Session 2020.05.22

특강 - 프론트개발자 Jeffrey Noh

노경모 Career - Frontend Engineer at ODK media - GDG kroea WebTech Organizer - 전) Frontend Engineer at Streami, GOPAX - 전) Infra Engineer at SK Holdings C&C 목차 - 규모 및 서비스 특성에 따른 IT 기업들의 차이 - 선호되는 Frontend Engineer의 기술적 역량과 이외의 역량 -- Indeed, glassdoor 활용하기 - 토이/실무 프로젝트 경험 및 포트폴리오 준비에 앞서 꼭 알아야 할 것 -- '내가 창업을 한다면' 시뮬레이션 1. 규모 및 서비스 특성에 따른 IT기업들의 차이 1-1 규모에 따른 차이 1-1-1 큰회사(1000~)엔지니어 숫자 - 사업부의 분리 - 팀의 ..

Wecode/Event 2020.05.21

Session-MySQL 설치 및 연결 / 기본 사용법(MySQL install/connect/ basic command)

MySQL 설치 관계형 DB $ brew install mysql brew 명령어를 위한 HomeBrew 패키지 관리자 미설치시 아래 명령어를 통해 설치 필요 $ /usr/bin/ruby -e "$(curl -fsSL )" MySQL 설정 아래 명령어로 mysql을 시작합니다. $ mysql.server start 아래 명령어로 기본 설정을 시작합니다. $ mysql_secure_installation 이제 여러 질문들이 출력됩니다.출력에 대한 답은 본인이 한 방법으로만 간단하게 기술하겠습니다. 1. 비밀번호 복잡도 검사 과정 (n) ``` Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE P..

Wecode/Session 2020.05.19

Session-쉘과 sql, 파이썬 코드로 접근하기(shell , sql, python, django)

일단 sqlite3.db.sqlite3 으로 가서 데이터베이스를 뒤져본다. 여기서 ;이거를 안치면 계속 진행됨. >>>.table >>>select * from drink -> 드링크에 있는 것들을 떙겨오는것 >>>delete from categories; -> 삭제 쉘로 가서 >>>python manage.py shell 치면 쉘로 이동함. >>>from product.models import Category, Drink >>>Category.objects.create(name='데이터 이름', 외부키_ID=1) 하면 데이터가 카테고리에 추가가 된다. 추가할 때 마다 자동으로 id가 생성됨. >>>Category.objects.all() -->치면 오브젝트 다 볼 수 있음. 그리고 더 자세히 보려면 >..

Language/Python 2020.05.19

Session-프로젝트에 유용한 툴

Trello : 팀 프로젝트 진행 시 유용하게 사용되는 프로젝트 관리 프로그램 업무들을 세분화 시켜 하나의 티켓으로 만들고, 전체 프로세스를 크게 앞으로 해야할 것들(Backlog), 이번주에 해야 할 것들(This Week), 현재 진행 중인 것들(In Progress), 완료한 것들(Done) 이렇게 네 가지 카테고리로 나눠서 각각의 티켓을 과정에 따라 하나씩 이동시키며 프로젝트의 모든 일정과 업무를 관리할 수 있는 툴이다. When to Use - 프로젝트 첫 미팅 - 프로젝트 기획, 업무 분담 - 매일 진행되는 스탠드업 미팅 - 각자 개발을 진행할 때 - 중간 중간 팀원들과 기술적 소통 및 기획, 일정을 조율할 때 - 기간에 맞춰서 기획을 조정할 때 - 그 외에도 개발 프로세스의 모든 과정에 있어..

Wecode/Session 2020.05.19

Session-토큰생성, 암호화 Bcrypt, PyJWT

백엔드 세션 일단 가상환경설정 해주고 pip freeze해주고 pip install bcrypt PyJWT 해주고 설치해줌. 그리고 파이썬 쉘로 가서 실습함 bcrypt.hashpw() # 해쉬화 하겟다. 라는 명령어고 인자를 ('1234', bcrypt.gensalt())을 넣어줌 이렇게 치면 인코드가 안되었다고 오류남 해쉬하기전에 바이트화 한다음에 넣어주면 됨 바이트화 어떻게 하는지! { b = '1234' bytes('1234','utf-8') 라고 하면 '1234'를 바이트화 해줌. or b.encode('utf-8') 인코딩하면 바이트되고 디코딩하면 다시 스트링이 됨. } 다시 a= bcrypt.hashpw('1234'.encode('utf-8'), bcrypt.gensalt()) 로 하면 12..

Wecode/Session 2020.05.18
반응형