Treu Grit Texture Supply 위코드 2차 클론 프로젝트 후기
출처 알고리즘이란? 알고리즘은 문제를 해결하기 위한 일련의 과정을 의미한다. 알고리즘은 각기 다른 모양과 형태를 지니고 있기 때문에 시간 복잡도를 설명하는데 자주 사용된다. 시간복잡도를 분석하는 것은 입력값 n에 대하여 알고리즘이 문제를 해결하는 데에 얼마나 오랜 시간이 걸리는 지를 분석하는 것과 같다. 그리고 이는 Big-O 표기를 이용하여 정의할 수 ...
[출처: 프로그래머스 코딩테스트 연습 전화번호 목록 ](https://programmers.co.kr/learn/courses/30/lessons/42577) 전화번호 목록 나의 풀이 정규표현식과 itertools의 combinations를 사용한 방식이다. 사실 시간 복잡도 때문에 효율성 측면에서 아슬아슬하게 통과된 답변이다. 간단해보이지만 좋아보이지...
[출처: 프로그래머스 코딩테스트 연습 두 개 뽑아서 더하기 ](https://programmers.co.kr/learn/courses/30/lessons/68644) 두 개 뽑아서 더하기 나의 답안 두 개의 수를 뽑아야 하고 서로 다른 수를 뽑아야 하기 때문에 반복문을 두 번 돌린다. 내부 반복분에서는 인덱스가 한 칸 앞선 배열로부터 가져오게 함으로써...
MySQL 명령어 기존에 올렸던 MySQL 포스팅이 존재하지만 새롭게 알게된 것들을 정리하고자 한다. JOIN Join은 관계형 데이터베이스의 핵심으로 여러번 봐도 과하지 않다고 판단. WHERE OR, AND 조건을 여러 개를 걸 수 있다. LIKE 검색 기능을 구현할 때 주로 사용할 것으로 예상되는 명령어이다. 예를 들어 위의 명령어는 orders...
Flask Flask는 파이썬으로 작성된 마이크로 웹 프레임워크의 하나로 Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. (사실 툴킷과 템플릿 엔진에 기반을 둔다는 게 무슨 소린지는 잘 모르겠다. 추후에 공부해보자.) Flask는 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라고 부른다. > 마이크로 프레임워크(Micro...
Layered Architecture 각 계층은 하위 계층에만 종속되고 상위 계층으로는 독립적으로 구성되어야 한다. 하위 계층에 종속되어야 하는 이유는 하위 계층의 Return 값을 받아서 상위 계층으로 전달하는 작업이 진행되는 구조이기 때문이다. 실행해야 할 역할들에 따라 계층이 나뉘는 아키텍쳐 방식이다. 이미지 출처 Presentation layer...
Docker Command 실행중인 docker container에 shell 접속하기 -i: doccker 컨테이너의 STDIN을 open한다. -t: doccker 컨테이너에 psuedo tty를 지정해준다. 위의 두 옵션을 사용하여 실행중인 doccker 컨테이너에 shell 접속을 할 수 있다. Docker ps 현재 실행중인 docker cont...
Docker Image Docker image는 파일 시스템들의 layer로 만들어져 있다. 가장 base layer는 boot filesystem bootfs로 일반적인 Linux boot 파일 시스템으로 되어있다. Docker 유저가 직접적으로 boot filesystem을 사용할 일은 없으며, 실제로 container가 부팅되면 메모리로 옮겨지고 b...
Docker란? Docker는 가상화 기술이다. 가상화 컨테이너에 application 배포를 자동화 시켜주는 오픈 소스 엔진이다. (container virtualization 기술의 또다른 이름으로 오해하는 경우가 있는데 그렇지 않도록 주의하자.) Docker는 가상화 컨테이너 실행 환경 위에서 application 배포 엔진을 더함으로써 사용자의 코드...
Tree란? Tree 자료구조는 데이터를 마치 거꾸로된 나무 형태로 저장하는 자료구조이다. Tree 자료구조는 여러 유형이 존재하지만 그 중 가장 기본은 binary tree(이진 트리) 자료구조이다. 이진 트리는 두 개의 자식 노드를 가진 트리 형태이다. 구성 요소 Node: 트리 구조의 교점이다. Node가 데이터를 가지고 있고 또한 자식 노드를 가...
2차 프로젝트를 하면서 카카오 소셜 로그인을 적용하기로 하였다. 자세한 내용은 카카오 공식 문서를 참고하길 바란다. 우선 기본적인 Flow를 설명하도록 하겠다. 우선 공식 사이트를 통해 사이트 혹은 앱을 등록한 후 고유 키를 받은 후에 프론트 측에서 인증 코드를 통해 카카오 api를 호출하고 로그인 한 후 토큰을 받아오고 해당 토큰을 백엔드 측에 전달하...
테스트는 버그가 있음을 보여줄 뿐, 버그가 없음을 보여줄 수는 없다. - 에츠허르 비버 데이크스트라 - Mocking: 함수의 결과를 내가 의도한 값으로 덮기 Patching: 불러와야하는 모듈 자체를 통째로 mocking 2차 프로젝트 중 카카오 소셜 로그인 unittest 작성하기 위해 mocking과 patching이 필요하다. 왜냐하면 실제로 u...
쿼리스트링 프론트에서 요청을 보내올 때 RESTful API는 endpoint를 통해 어떤 자료를 받아올 지 짐작할 수 있다. 그러나 조금 다른 자료들을 받아오기 위해 사용하는 것이 쿼리스트링이다. 즉 각자 다른 url을 부여할 필요가 없다는 것이다. 해당 정보에 대한 것을 parameter로 받으면 같은 url과 view로 필요한 자료를 제공할 수 있게...
Pagination이란? 페이징(Paging)이라고도 하며, 목록형 UI에서 데이터를 한 번에 가져오는 것이 아니라 필요한 만큼, 또는 화면에 보이는 만큼만 백엔드에 요청하고 응답받아 사용하는 방식을 말한다. 즉 데이터의 양이 너무 많아서 하나의 페이지에 보여줄 수 없을 때 끊어서 데이터를 보내고 받아서 사용하는 방식이다. 페이지네이션을 구현하기 위해서...