(DRF) - 실습
프로젝트 소개RESTful API를 가지고 3개의 게시판을 만들어보자
글을 쓸 수 있는 Essay
이미지를 올릴 수 있는 Album
파일을 올릴 수 있는 Files
코드라이브러리12$ pip install djangorestframework #DRF $ pip install Pillow #이미지
settings.py12345678910INSTALLED_APPS = [ #rest_framework 등록 'rest_framework', # app 등록 'mystorage']# 이미지를 등록하기위해 Media 경로지정MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR,'media')
models.py1234567891011121314151617from django.db import modelsfrom django.conf import sett ...
(DRF) - ViewSet & Router
# Restful API Django
ViewSet?
View 클래스와 거의 비슷하지만, get과 put 메서드는 지원하지 않고 read와 update 메서드를 지원합니다.
Router 클래스를 사용하여 복잡한 URL 설정을 처리합니다.
ViewSet의 주요 기능
Pagination
Filtering & Search
Authentication & Permission
1. Pagination
PageNumberPagination
LimitOffsetPagination
CusorPagination
CustomizedPagination
전역으로 설정 (Default)
12345# settings.pyREST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10 ...
(DRF) - RESTFUL API?
# Restful API Django
REST란? REpresentational State Transfer
HTTP를 이용해 통신하는 네트워크상에서 정한 약속
분산 하이퍼미디어 시스템을 위한 소프트웨어 설계 형식
자원을 대표하는 단어 / 식별자로 자원의 상태를 전송하는 방법
자원을 이름으로 구분하여 상태를 전송하는 방법
하위 호환을 깨뜨리지 않고 독립적 발전할 수 있게 도와주는 방법
REST 필요충분조건?
Server - Client
STATELESS
Cache
Uniform Interface
Layered System
Code-On-Demand
API란? Application Program Interface특정방식으로 response나 request를 보내는 형식
RESTAPI란? REST 아키텍쳐 스타일을 따르는 APIHTTP로 CRUD를 구현할 수 있는 API?-> JSON : 모든 태그가 만들어져 있는 것도 아님 만든 이가 정의하기 나름 -> RESTFU ...
(DRF) - Basic
# Restful API Django
JSON (JavaScript Object Notation)데이터의 송수신을 자바스크립트의 객체로서 수행할 수 있게끔하는 가벼운 문자열 데이터 표현식<> XML(Extensible Markup Language)만국 공통 자료형 -> 문자열문자열로 변환해서 전송하는 과정 -> 직렬화(Serializer)
123456789101112131415import jsondiary = { 'id' : 3, 'title' : 'I\'m starving', 'body': ' what>??'}print(type(diary)) #dicjson_diary = json.dump(diary) #dictionary -> jsonprint(type(json_diary)) #strback_diary = json. ...
전화번호 목록
전화번호 목록HASH
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우,구조대 전화번호는 영석이의 전화번호의 접두사입니다.
구조대 : 119
박준영 : 97 674 223
지영석 : 11 9552 4421
전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.
제한사항
phone_book의 길이는 1 이상 1,000,000 이하입니다.
각 전화번호의 길이는 1 이상 20 이하입니다.
입출력 예
1차 답안 -> Hash 알고리즘 X123456789101112131415161718192021import java.util.*;class Solution { public boolean soluti ...
7DAYSQL Challenge
7DAYSQL ChallengeANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME,
INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종,
보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
ANIMAL_INS TABLE
NAME
TYPE
NULLABLE
ANIMAL_ID
VARCHAR(N)
FALSE
ANIMAL_TYPE
VARCHAR(N)
FALSE
DATETIME
DATETIME
FALSE
INTAKE_CONDITION
VARCHAR(N)
FALSE
NAME
VARCHAR(N)
TRUE
SEX_UPON_INTAKE
VARCHAR(N)
FALSE
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은
테이블입니 ...
완주하지 못한 선수
완주하지 못한 선수.HASH수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
completion의 길이는 participant의 길이보다 1 작습니다.
참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
참가자 중에는 동명이인이 있을 수 있습니다.
입출력 예
1차 답안 -> Hash 알고리즘 X12345678910111213141516171819class Solution { public String solution(String[] participant, String[ ...
핏파인더
핏파인더YTN사이언스 관련영상
핏파인더는 2019.10 ~ 2020.10월까지 (주)예스나우 직장에 다니면서 구축한 서비스입니다.
핏파인더 소개
핏파인더는 사이즈 문제로 망설이는 고객을 구매까지 연결합니다사이즈 문제 해결은 소비자가 본인의 치수를 제대로 아는 것에서 시작합니다“옷은 예쁜데, 나에게 맞을까?”, “난 허벅지가 두꺼운 편인데…”직접 입어볼 수 없어서 망설이게 되는 온라인 쇼핑몰의 한계. 핏파인더가 깨겠습니다.핏파인더는 자체 개발한 AI 모델을 바탕으로 언제 어디서나 자신의 신체 사이즈를 확인할 수 있게 도와줍니다
피키피커 (2019.10 ~ 2019.01)참고 URL
프로젝트 개발 환경WEBIDE: VsCode, putty, FileZillaServer: AWS(Route53/EC2)기술 스택 : Django(python), Nginx, uWSGI
APPIDE: Xcode기술스택: Facebook Pixel, swift
DBDB: Maria DBTool: Hedis ...
Technical Interview [면접후기]
첫번째 면접1. 프로세스와 스레드의 차이점프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다.
스레드는 프로세스의 실행 단위라고 할 수 있다. 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소 공간이나 자원을 공유할 수 있다.
2. 데드락이 무엇이고 어떻게 해결하나교착상태(Dead Lock)은 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다.
예방
회피
회복
발견
이유
설명
상호배제(Mutual Exclusion)
한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 합니다.
점유와 대기(Hold and Wait)
최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 이해 대기하는 프로세스가 있어야 합니다.
비선점 ...
Technical Interview [자료구조]
참고링크
자료구조Array vs LinkedListArray가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다.따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다.
하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다.만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다.따라서 삭제한 원소보다 큰 인덱스를 갖는 원소들을 shift해줘야 하는 비용(cost)이 발생하고 이 경우의 시간 복잡도는 O(n)가 된다.그렇기 때문에 Array 자료구조에서 삭제 기능에 대한 time comp ...