전체 글81 자료구조 TIL - 2. Set, Dictionary, Hash Set Array나 List와 같은 순열 자료구조(Collection) 단, 순서의 개념이 존재하지 않음 Set를 사용하면 좋은 상황 중복된 값을 골라내야 할 때 빠른 Look up을 수행해야 할 때 순서가 상관 없을 때 특징 데이터를 비순차적으로 저장할 수 있는 순열 자료구조 삽입(Insertion) 순서대로 저장되지 않음, 특정한 순서를 기대할 수 없는 자료구조 수정이 가능합(Mutable) 같은 값을 여러번 입력할 수 없다. 여러번 입력할 경우 하나의 값만 저장 Fast Lookup이 필요할 때 주로 사용됨 Set의 구조 요소들이 저장될 때의 순서는 Hash를 통해서 정해진다. 저장할 요소의 Hash 값을 구한다. 해쉬값에 해당하는 공간(Bucket)에 값을 저장한다. 순서가 없다는 것은 Index.. 2020. 8. 12. 위코드 Foundation - Bcrypt, JWT 테스트 Bcrypt 현재 진행 중인 파이썬 장고 기반의 백엔드 서버 개발에서 사용하기로 결정한 함수 pip를 사용해서 설치를 진행했다. -> Conda 환경에서 뭔가 에러가 나는데 뭐가 문제인지는 추후 알아볼 것 ex) pip3 install bcrypt # bcrypt_test.py import bcrypt#모듈 임포트 password = 'password1234' hash_pw = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())# 해시 진행 input_pw = 'password1234' wrong_pw = 'password123' if bcrypt.checkpw(input_pw.encode('utf-8'), hash_pw):# checkpw는 bcryp.. 2020. 8. 12. 위코드 Foundation - 인증과 인가 인증과 인가 인증과 인가는 API에서 가장 자주 구현하는 기능이다. Private한 API는 물론이고, Public한 API에서도 기본적인 인증과 인가 과정을 요구 인증(Authentication) 인증이란 사용자의 Identification을 확인하는 일련의 절차 로그인 절차가 인증과정에 해당된다. 유저의 아이디와 비밀번호를 만든다. 만든 아이디와 비밀번호를 DB에 저장하는데 이때 비밀번호의 경우 암호화를 진행한 후 저장한다. 이후 유저가 로그인을 위해서 아이디와 비밀번호를 입력한다. 입력된 아이디와 비밀번호를 DB에 저장된 데이터와 비교, 이때에도 입력받은 비밀번호는 암호화 후 비교 일치하면 로그인 성공으로 판단 클라이언트로 Access Token을 전달 유저는 로그인에 성공한 이후에는 Access .. 2020. 8. 11. 위코드 Pre Course - Django 개념과 흐름 Django란? MVC/MVT 패턴의 웹 서비스의 백 레이어를 구성하는 웹 프레임워크 MVC/MVT 패턴? Model - 데이터와 관련된 모든 것 또는 데이터 자체를 다루는 요소 View - 어떻게 사용자에게 데이터를 보여줄지를 다루는 요소 Control/Template - Model과 View를 제어하는 요소 Django의 구조 Model - MVC 패턴의 Model 역할 Django 프로젝트의 models.py 소스의 로직이 역할을 함 View - MVC 패컨의 View 역할 Django 프로젝트의 views.py 소스의 로직이 역할을 함 Template - MVC 패턴의 Controller 역할 이 부분은 프론트엔드의 영역이라고 볼 수 있을 것 같다. Django의 특징? App라는 기능으로 구분할.. 2020. 8. 8. 위코드 Foundation - HTTP RESTful API의 기본 REpresentational State Tranfer - REST 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식 보통 GET과 POST만 사용하는 편이다. "리소스를 어떻게 한다."의 구조를 깔끔하게 표현해내는 것을 말한다. RESTful API의 장점 Self-Descriptiveness 가 가장 명확한 장점 해당 API에 대한 설명을 API를 사용하는 방법으로 사용하는 것 API 자체만 봐도 해당 API의 목적을 쉽게 이해할 수 있다. RESTful API를 개발할 때 유의점 /(slash)는 계층 관계를 나타낼 때 사용한다. URI에 _(underscore)는 주로 포함하지 않고 영어 대문자보다는 소문자를 쓰는 편이고, 긴.. 2020. 8. 8. 위코드 Foundation - HTTP에 대해서 HTTP의 구조와 핵심 요소 HyperText Tranfer Protocol의 약자 HTML 문서를 교환하기 위해서 만들어진 Protocol 어떠한 방식 또는 형태로 통신을 하자고 사전에 규정을 한 "통신 구조" 또는 "통신 형식이라고 보면 됨. 프론트앤드 서버 - 백엔드 서버 뿐 아니라 프론트앤드 서버와 클라이언트간의 통신에도 사용됨 TCP/IP를 기반으로 규정되었다. HTTP의 핵심 요소 HTTP의 통신방식은 기본적으로 요청과 그에대한 응답으로 구성된다. 클라이언트가 서버에 HTTP Request(요청)을 보내면 서버는 HTTP Response(응답) 보내는 구조 클라이언트는 Request만 서버는 Response만 수행하는 것이 아니고 양 쪽에서 둘 다 수행할 수 있다. HTTP는 stateless.. 2020. 8. 8. 자료구조 TIL - 1. Array, Tuple 파이썬에서의 Array 파이썬에서는 Array가 따로 존재하지만 일반적인 경우에는 List 자료형을 사용한다. 둘의 차이점 - https://stackoverflow.com/questions/176011/python-list-vs-array-when-to-use/176589#176589 Python List vs. Array - when to use? If you are creating a 1d array, you can implement it as a List, or else use the 'array' module in the standard library. I have always used Lists for 1d arrays. What is the reason or circumstance ... s.. 2020. 8. 3. Conda 기본 Conda(콘다) 파이썬 가상환경(env) 설정을 돕는 도구 가상환경이란 프로젝트별로 독립된 공간을 설정해서 사용하는 패키지나 도구들이 다른 프로젝트의 요소와 충돌하지 않게끔 하는 것 Anaconda라는 파이썬 배포판에 포함되어 있지만 따로 설치도 가능하다. Conda 설치 https://docs.conda.io/en/latest/miniconda.html Miniconda — Conda documentation Miniconda Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on.. 2020. 7. 29. 위코드 Pre Course - 파이썬의 Co-routine 파이썬에서의 코루틴에 대해서 정리한다. Coroutine이란? 제네레이터의 확장 방식 한번 코루틴을 실행하면 계속 상주하면서 호출에 대응하는 방식 Assignment 1. 호출 시 마다 good 문자열이 추가되도록 코드를 만들기 # Assignment 1 - good 문장열이 추가되어서 출력되도록 만들기 import time def coroutine_test(): greeting = "good " while True: text = (yield greeting) print(greeting + text) if __name__ == "__main__": cr = coroutine_test() print("cr=",end=""), print(cr) next(cr) time.sleep(2) print("send .. 2020. 7. 28. 이전 1 2 3 4 5 6 7 ··· 9 다음