본문 바로가기

위코드17

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.
위코드 Foundation - 인증과 인가 인증과 인가 인증과 인가는 API에서 가장 자주 구현하는 기능이다. Private한 API는 물론이고, Public한 API에서도 기본적인 인증과 인가 과정을 요구 인증(Authentication) 인증이란 사용자의 Identification을 확인하는 일련의 절차 로그인 절차가 인증과정에 해당된다. 유저의 아이디와 비밀번호를 만든다. 만든 아이디와 비밀번호를 DB에 저장하는데 이때 비밀번호의 경우 암호화를 진행한 후 저장한다. 이후 유저가 로그인을 위해서 아이디와 비밀번호를 입력한다. 입력된 아이디와 비밀번호를 DB에 저장된 데이터와 비교, 이때에도 입력받은 비밀번호는 암호화 후 비교 일치하면 로그인 성공으로 판단 클라이언트로 Access Token을 전달 유저는 로그인에 성공한 이후에는 Access .. 2020. 8. 11.