본문 바로가기

전체글143

[문법] 데코레이터 - Decorator 보통 함수가 정상적으로 실행되는지 확인하기위해 시작 로그와 종료 로그를 출력한다. 그러나, 로그를 출력하기위해 매번 함수의 시작과 끝에 로거를 작성하는 것은 매우 비효율적인 일이다. 이때 필요한 것이 바로 '데코레이터(Decorator)'이다. 데코레이터는 함수를 한번 감싸주어 함수가 실행되기 전과 후를 컨트롤 할 수 있게 도와준다. 함수가 실행되기 전과 후에 로그를 출력, 함수가 실행되기 전 사용자 인증, 함수가 실행된 결과를 변조하는 등 다양한 방식으로 사용된다. Flask에서 Route를 설정하기 위해서는 아래 사진과 같이 @app.route를 함수를 생성할 때 위에 선언해주는데 이것이 바로 데코레이터이다. 데코레이터는 앞에 '@' 키워드를 붙여서 사용한다. 함수를 실행할때 시작과 끝에 로그를 남겨.. 2019. 12. 24.
[문법] 가변인자 - *args, **kwargs Python에서 함수를 사용하다보면 매개변수를 가변적으로 전달하여 처리할 때가 있다. 가장 대표적인 예가 옵션을 설정할 때이다. Positional Argument로 floor를 받고, Keyword Argument로 tv, bed, computer를 받는 예제 함수를 통해 알아보자. 1 2 3 4 5 6 7 8 9 10 11 12 def dochiHouse(floor, tv=None, bed=None, computer=None): house = f'아파트 {floor}층' if floor is not None else '단독주택' things = 0 if tv is not None: things += tv if bed is not None: things += bed if computer is not N.. 2019. 12. 20.
[Tech.] Token을 이용한 인증방식 - JWT 웹 개발을 공부하면서 로그인/회원가입 페이지는 한번쯤 만들어 보았을 것이다. 필자는 뭐가 어렵겠나 싶어서 크게 비중을 두고 만들어보진 않았었다. 그러다, 이번에 Python Flask와 Javascript React로 웹 페이지를 만들면서 로그인/회원가입 페이지를 한땀한땀 만들어보았는데 생각보다 많은 것들을 고려하면서 만들어야해서 힘들었다. 사용자가 로그인을 하고나서 상태를 유지하려면 세션에 사용자 정보를 저장하고 Request가 들어올 때마다 DB에서 사용자를 조회하여 세션에 저장된 데이터와 비교를 해야하므로 리소스의 낭비가 심했다. 그래서 다른 방법을 찾아보던 중 토큰을 이용한 인증방식인 JWT(Json Web Token)를 알게되었다. 그래서 포스트에서는 JWT에 대해서 알아보도록 하겠다. 1. J.. 2019. 12. 19.
[macOS] Catalina에서 Android USB테더링 하기 - HoRNDIS MacOS는 보안 정책상 안드로이드 폰의 USE연결이 차단되어있다. 이 때문에 갤럭시로 USB테더링을 하면 아무런 반응이 없었다. 이럴때는 역시 구글에 검색하는게 답이다. 구글링을 한 결과 'HoRNDIS'라는 별도의 드라이버를 설치해야 한다는걸 알았다. 최신버전(HoRNDIS-9.2)을 받아서 설치하였는데, 설치에 실패하였다는 문구만 계속 나와서 답답했다. 설치방법은 간단하게 Next만 누르면 된다고 나와있었는데 안되니까 더 답답했다. Mojave버전까지는 그렇게 간단하게 설치가 되었었는데 Catalina부터는 설치하는 방법이 바뀐것 같았다. Catalina로 업데이트 한지 얼마되지 않아서 자료를 찾기 힘들었는데 겨우 겨우 찾아서 해결하였다. MacOS에는 시스템 무결성 보호(System Integri.. 2019. 12. 18.