본문 바로가기

wecode40

Django TIL - 2. Select Related, Prefetch Related 중요한 개념이고, 위코드 2차 프로젝트를 진행하면서 쿼리 시간 단축을 위한 여러 방법들을 사용하다보니 이 개념에 대한 이해가 너무 부족했다는 점을 알게 되었다. Select Related와 Prefetch Related 두 방법 모두 관계를 통해서 여러개의 테이블에 있는 데이터들을 사용할 수 있도록 하는 방법들이다. 나중에 까먹더라도 이 포스트보면 다시 기억할 수 있도록 작성해봐야겠다. Select Related? SQL 문법 중 Join을 실시하는 Django의 ORM이다. 일반적인 Many to One 또는 One to One 관계의 외래키 컬럼을 사용해서 참조관계에 있는 테이블을 지정한다. 정참조 관계에 있는 테이블에 사용한다. 사용하면 Join을 완료한 데이터를 DB로 부터 가져온다. 하나의 쿼리.. 2020. 9. 17.
두번째 웹 프로젝트를 끝냈다. 프로젝트 구성 목표 웹 사이트 - 미국의 리셀링 서비스 웹 페이지 StockX stockx.com 프로젝트 진행 기간 - 2020.08.31 ~ 2020.09.13 (12일간) 팀 구성 - 총 7명(프론트 4명 + 백엔드 3명) 프론트엔드 Repo - https://github.com/wecode-bootcamp-korea/11-WeStock_frontend 백엔드 Repo - https://github.com/wecode-bootcamp-korea/11-WeStock-backend 프로젝트 목표 1차 프로젝트를 진행하면서 느낀 부족했던, 어려웠던 부분을 보완하여 좀 더 효과적이고 원활한 프로젝트 진행을 경험하는 것 1차 프로젝트에서 담당했던 부분이 아닌 새로운 부분을 맡음으로서 새로운 기능에 대한 경험.. 2020. 9. 13.
자료구조 TIL - 4. Tree Tree의 개념 선형적인 관계의 데이터가 아닌 계층적인 관계를 가진 데이터를 저장하고 다루기 위한 자료구조의 하나 ex) 회사의 인사조직 데이터, OS의 파일 시스템 구조 등등 데이터가 부모 - 자식 관계의 계층적 구조로 표현이 된다. 대표적인 형태 이진 트리 - 부모 노드가 가진 자식 노드가 2개를 넘지 않는 형태의 트리 일반 트리 - 이진 트리와 다르게 자식 노드의 갯수에 제한이 없는 형태의 트리 Tree에서 사용하는 용어 노드(Node) - 트리 구조를 이루는 기본적인 요소 루트 노드(Root Node) - 트리의 시작점이 되는 노드 부모 노드(Parent Node) - 자식 노드들과 연결되고, Level이 1 작은 노드를 해당 자식 노드의 부모 노드라고 말함. 자식 노드(Children Node).. 2020. 9. 3.
첫번째 웹 프로젝트를 끝냈다 금요일인 8월 28일부로 첫번째 프로젝트가 마무리되었다... 진짜 발표 직전까지 마무리작업을 진행해서 심장이 쫄깃해졌었다. 프로젝트 전반에 관해서 느낀점을 정리하는 글을 써보려고 한다. 글 솜씨가 정말 없지만, 열심히는 써봐야지ㅋㅋ 프로젝트 구성 목표 웹 사이트 - 호주의 유명 차 브랜드 T2 https://www.t2tea.com/en/au/Home 프로젝트 진행 기간 - 2020.08.18 ~ 2020.08.28 (12일간) 팀 구성 - 총 6명(프론트 4명 + 백엔드 2명) 프론트엔드 Repo - https://github.com/wecode-bootcamp-korea/11-t2gether-frontend 백엔드 Repo - https://github.com/wecode-bootcamp-korea/.. 2020. 8. 30.
위코드 Codekata - 2 좀 늦었지만 3주차 코드카타에 대해서 간단하게 정리해보자. 3주차 2일째 - 문자로 구성된 배열을 뒤집어서 반환 조건 1 - 문자로 구성된 배열이 입력된다. 조건 2 - 입력한 배열을 뒤집어서 반환할 것 제한 조건 - 새로운 배열을 생성할 수 없다. 생각한 처리 로직 입력받은 문자열의 길이를 구해서 그 절반 값으로 첫번째 Range를 구성한다. 문자열의 맨 끝에서부터 절반까지의 구역을 두번째 Range로 구성한다. 임시 변수를 1개 선언하고 반복문에 두 Range를 주고 두개의 인덱스로 각 배열 위치를 참조한다. 앞 문자를 임시변수에 저장 뒷 문자를 앞 문자 위치에 저장 임시 변수에 있는 값을 뒷 문자 위치로 저장 끝까지 반복 후 결과 반환 로직 코딩 #############################.. 2020. 8. 30.
Django TIL - 1. Unit Test Testing Pyramid 피라미드를 나누고 있는 각각의 요소가 특정 테스트 방법 E2E > python manage.py test Creating test database for alias 'default'... System check identified no issues (0 silenced). .. ---------------------------------------------------------------------- Ran 2 tests in 0.664s OK Destroying test database for alias 'default'... tests.py 코드 분석 일단 일련의 테스트 과정에서 사용할 데이터 세트를 미리 선언한 후에 테스트에 사용했다. user App에 구현한 회원가입.. 2020. 8. 22.
자료구조 TIL - 3. Stack, Queue Stack 기본적이고 잘 알려진 자료구조 순서를 가진 데이터를 저장하는데에 사용할 수 있다. Stack의 가장 대표적인 특성인 LIFO(Last In First Out) 가장 마지막에 입력된 값이 가장 먼저 출력된다. 이 특성으로 인해서 특정한 목적에 따라서 사용하는 편. Stack에 데이터를 입력하는 동작을 Push, 데이터를 출력하는 동작을 Pop라고 부른다. 읽은 데이터는 Stack에서 삭제한다. 파이썬에서는 List라는 Stack를 사용하기에 아주 적당한 자료형이 존재한다. 예전에 C를 쓸때에는 Stack의 특성을 구현한 함수들을 꼭 써야 했는데, 파이썬에서는 pop(), append()라는 내장 메소드를 통해서 간단하게 Stack를 구현해서 사용할 수 있다. ####################.. 2020. 8. 22.
위코드 Codekata - 1 적어도 주에 글 하나정도는 주중에 진행한 코드카타에 대해서 정리해보기로 했다. 이미 지나간 첫번째 코드카타는 그냥 넘어가고 저번주에 진행했던 코드카타 중에서 몇개 골라봤다. 2주차 4일째 - 자주 등장한 숫자를 전달받은 인자만큼 반환하기 조건 1 - 첫번째 인자는 숫자로 이루어진 배열이다. 길이는 딱히 정해지지 않음 조건 2 - 두번째 인자는 반환할 숫자의 개수이다. 특별한 조건은 명시되지 않았다. 생각한 처리 로직 빈 딕셔너리를 생성한다. 배열 요소를 하나씩 읽는다. 딕셔너리의 키와 비교해서 배열 요소가 키로 사용되지 않는다면 새로운 키 - 값 쌍을 생성한다. 이미 키가 존재한다면 해당 키의 값을 1 누적한다. 배열의 끝까지 반복 딕셔너리의 값을 기준으로 해당 값의 키를 내림차순으로 리스트에 저장한다... 2020. 8. 17.
자료구조 TIL - 2. Set, Dictionary, Hash Set Array나 List와 같은 순열 자료구조(Collection) 단, 순서의 개념이 존재하지 않음 Set를 사용하면 좋은 상황 중복된 값을 골라내야 할 때 빠른 Look up을 수행해야 할 때 순서가 상관 없을 때 특징 데이터를 비순차적으로 저장할 수 있는 순열 자료구조 삽입(Insertion) 순서대로 저장되지 않음, 특정한 순서를 기대할 수 없는 자료구조 수정이 가능합(Mutable) 같은 값을 여러번 입력할 수 없다. 여러번 입력할 경우 하나의 값만 저장 Fast Lookup이 필요할 때 주로 사용됨 Set의 구조 요소들이 저장될 때의 순서는 Hash를 통해서 정해진다. 저장할 요소의 Hash 값을 구한다. 해쉬값에 해당하는 공간(Bucket)에 값을 저장한다. 순서가 없다는 것은 Index.. 2020. 8. 12.