API를 만들때 머리를 쥐어짜게 만드는 고민... 늘어나는 API의 URL관리는 어떻게 하지? 비슷한 데이터를 요청하는데 API를 새로 만들어야 하나? 그런데 GarphQL에 대해 알게되면서 머리가 시원해지는 해방감(?)이 느껴진다. endpoint는 하나이고 쿼리를 통해 다양한 API를 만든다. 클라이언트가 필요한 데이터의 스키마를 요청해서 받을 수 있다. 난 이거 쓰고 싶다. 여러모로 매력적이다. 공식 https://graphql.org/learn/ 강좌 강추 how to graphql Moving Existing API From REST To GraphQL 요약 Facebook 에서 만든 오픈소스 API 규격 사용자에게 Endpoint는 하나만 노출시키고 쿼리에 따라 응답한다. 효율적인 데이터 로딩..
https://cloud.spring.io 19. Router and Filter: Zuul 사용목적 라우팅은 마이크로서비스 아키넥쳐의 필수요소이다. Zuul은 JVM기반의 라우터로 Nextflix에서 사용하는 서버사이드 로드 밸러서이다. Authentication Insights Stress Testing Canary Testing Dynamic Routing Service Migration Load Shedding Security Static Response handling Active/Active traffic management zuul 동작의 이해 Zuul Request Lifecycle 필터유형 Filter Types There are several standard Filter types th..
spring boot에 zuul 설정하기 pom.xml zuul module 설정 application 에 zuul proxy 설정 zuul routes 설정 pom.xml zuul module 설정 org.springframework.cloud spring-cloud-starter-zuul 1.4.6.RELEASE zuul routes 설정 @EnableZuulProxy @SpringBootApplication public class MyApplication zuul routes 설정 zuul: routes: tistory: sensitiveHeaders: path: /tisotry/** url: http://come2misun.tistory.com/
def sanitize(time_string): if '-' in time_string : splitter = '-' elif ':' in time_string : splitter = ':' else : return(time_string) (mins, secs) = time_string.split(splitter) return(mins + '.' + secs) def get_coach_data(filename): try : with open(filename) as f: data = f.readline() return(data.strip().split(',')) except IOError as ioerr: print('File error: ' + str(ioerr)) return (None) sarah =..
두 가지 정렬 방법 원본 정렬(In-place sorting) 변환하고 대체합니다. 리스트의 sort() 사용 사본 정렬(Copied sorting) 변환하고 반환합니다. 내장함수 sorted() 사용 문자열 정렬 우선순위 하이픈 - 점 - 콜론 >>> data = [6, 3, 1, 2, 4, 5] >>> data [6, 3, 1, 2, 4, 5] >>> data [6, 3, 1, 2, 4, 5] >>> data.sort() >>> data [1, 2, 3, 4, 5, 6] >>> data = [6, 3, 1, 2, 4, 5] >>> data [6, 3, 1, 2, 4, 5] >>> data2 = sorted(data) >>> data [6, 3, 1, 2, 4, 5] >>> data2 [1, 2, 3,..
파일 쓰기 import os man = [] other = [] """ 파일 읽기 """ try : data = open('sketch.txt') for each_line in data : try : (role, line_spoken) = each_line.split(':', 1) line_spoken = line_spoken.strip() if role == 'Man' : man.append(line_spoken) elif role == 'Other Man' : other.append(line_spoken) except ValueError: pass data.close() except IOError: print('The data file is missing!') """ 파일 쓰기 """ try : ou..
예외 처리 예외(exception) 런타임 에러 에러처리 방법 추가코딩 예외 상황에 대비하여 미리 처리한다 예상치 못했던 문제가 발생했을 때 처리할 수 없다. 먼저 실행하고, 나중에 복구하기 에러가 생기도록 나둔 다음에 에러가 생기면 처리한다. 코드가 해야 할 일에 집중한다. import os try : data = open('sketch.txt') for each_line in data : try : (role, line_spoken) = each_line.split(':', 1) print(role, end='') print(' said ', end='') print(line_spoken, end='') except ValueError: pass data.close() except IOError: p..
setup.py 파일 만들기 from distutils.core import setup setup( name = 'nester', version = '1.0.0', py_modules = ['nester'], author = 'misun', author_email = 'xxx@gamil.com', url = 'http://come2misun.tistory.com', description = 'test', ) sdist배포 패키지 만들기 D:\headfirstpython\nester>python setup.py sdist running sdist running check warning: sdist: manifest template 'MANIFEST.in' does not exist (using defaul..
Alt-P 이전코드 Alt-N 다음코드 내장함수 확인 및 도움말 보기 dir(__builtins__) help(isinstance) >>> dir(__builtins__) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis'..
Lists are mutable sequences, typically used to store collections of homogeneous items (where the precise degree of similarity will vary by application). 파이썬 리스트 (= 상위수준의 집합체) 특징 파이썬 변수는 식별자를 지정하지 않는다. 파이썬 리스트는 여러 데이터 형을 함께 사용할 수 있다. 중첩 리스트 : 무한 단계까지 리스트 안에 리스트가 들어갈 수 있다. 리스트 내장함수 append extend insert pop remove 참고 44.6.4. Lists Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900..
창시자 : 귀도 반 로썸(Guido van Rossum) Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java. https://www.python.org/ Downloads Documentation PyPI - the Python Package Index 써드파티 파이썬 모듈을 제공하는 중앙 레파지토리 특징 free software: an open source license Runs on many different computers and operating systems: Windows, MacOS, many brands of Unix, OS/2, ... sup..
상황아나콘다 2.7이 설치되어 있는 상황에서 3.4를 설치하고 싶음 해결콘다(아나콘다 패키지 매니저)는 별개의 환경을 지원3.4를 위한 환경을 생성한다. conda create -n python2 python=3.4 anaconda위 같이 실행하면 python2 라는 환경이 생성된다. activate python2 Python 3.4용 스파이더 실행 Laucher를 실행 > Environment를 python2로 변경 > spyder-app 실행참고How to install 2 Anacondas (Python 2.7 and 3.4) on Mac OS 10.9http://docs.continuum.io/anaconda/
jCaptcha http://jcaptcha.sourceforge.net/ jCapcha + audio FreeTTS 다운로드 http://sourceforge.net/projects/freetts/files/ 참고사이트 Work with sound jCaptcha in servlet, Part 1 - Setup FreeTTS Work with sound jCaptcha in servlet, Part 2 - Customize Voice class in FreeTTS JCaptcha - a image and audio captcha CAPTCHA - Jcaptcha a bad option ? 자동가입방지에 대한 준수사항 ReCaptcha 참고사이트 reCAPTCHA developers.google.com