![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9N5pD%2Fbtq84LHQh19%2FECKrFak9dkVNtIt91CpqF1%2Fimg.jpg)
IT/리눅스 2021. 7. 8.
리눅스 - DHCP 받은 IP 수동으로 갱신하기
DHCP 서버로 받은 IP 를 강제로 다시 받고 싶을 때, 윈도우 환경에서는 그냥 ipconfig /renew 로 해결 한 것 같은데, 우분투 환경에서 하는 방법을 검색해 보니 dhclient 라는 명령어를 통해서 할 수 있네. $ sudo dhclient -r 할당받은인터페이스이름 $ sudo dhclient 할당받은인터페이스이름 할당받은 인터페이스 이름 확인은 간단하게 아래 처럼 ifconfig 라고 치면 알아낼 수 있다. 참고사이트 http://enigmatechware.blogspot.com/2016/12/linux-dhcp-ip.html [Linux] DHCP 서버로부터 IP 강제로 갱신하기 Windows 에서 DHCP 로 설정한 IP 주소를 강제로 갱신할 때에는 커맨드 창을 열고 다음과 같은 ..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHKcHp%2Fbtq8xEW4y5v%2F3rkK0LvIeCwN0QVthsVZNk%2Fimg.jpg)
IT/파이썬 2021. 7. 1.
Flask REST API 구현 중 파일 업로드는?
JSON 기반의 메시지가 왔다 갔다는 아무런 문제가 없는데, 파일 업로드 혹은 이미지 바이너리를 업로드 하거나 다운로드 해야 한다면 어떻게 전달해 줘야 하나? Form-data 로 파일 받기 일단 상식처럼 HTTP form-data 로 처리하는 것으로 되어 있는데 (JSON에 그냥 바이너리를 넣으면 안되나?) 파일 사이즈도 그렇고 처리하는 기본적인 방법을 알아놔야 한다. 일단 레퍼런스 페이지 부터 조사해서 남겨두자. 아래에 정리해둠. DB 필드로 파일을 저장하는 방법 그리고, 들어온 파일 바이너리를 MongoDB에 저장해야 하는데 이건 또 다른 영역이군. FileField 가 따로 있는 것인지? from mongoengine import FileField # If you are using FileFiel..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUttW9%2Fbtq7yXIySm5%2FtNuvAnqhbRZCLu2oP6lXe0%2Fimg.jpg)
IT/파이썬 2021. 7. 1.
Flask JWT 로그인 기능을 위한 자료 조사 - flask-jwt-extended
JWT 를 이용한 보안/인증 절차가 필요한 듯 한데, 이를 위해 자료 조사를 몇개 하는데 대충 아래로 정리가 된듯 맘에 걸리는 문제 1. 토큰을 강제로 만료시킬 수 없는 문제를 가지고 있다. 별도의 블랙리스트를 사용해 로그아웃 요청으로 전달된 토큰을 등록하여 해당 토큰을 통한 요청을 거부하도록 처리해 줘야 한다. 음...이게 먼가... 그냥 flask-jwt-extended 라이브러리를 활용해야 할 것 같다. 잘 정리된 자료는 아래와 같다. 잘 따라 가면 될 것 같다. 공식 문서 홈페이지는 아래와 같다. https://flask-jwt-extended.readthedocs.io/en/stable/ 여기에도 예제가 잘 되어 있다. 참고로, 이번에 바뀐 내용중에 많이 쓰는 함수들 관련 내용이 있어 내용 저장..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCbHcg%2Fbtq8BlVQhwu%2FSUKIkjMtKfzu3MDHXE9MFk%2Fimg.jpg)
IT/DB 2021. 7. 1.
MongoDB 연결된 상태 보기
mongo shell 명령도 있겠지만, 일단 리눅스에서 네트워크 정보를 보는 것으로 간단하게 살펴보자. 아래와 같은 명령으로 대략은 살펴 볼 수 있겠다. $ sudo netstat -anp --tcp --udp | grep mongo tcp 0 0 192.168.0.4:27017 0.0.0.0:* LISTEN 1091/mongod tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1091/mongod tcp 0 0 127.0.0.1:27017 127.0.0.1:46976 ESTABLISHED 1091/mongod tcp 0 0 127.0.0.1:27017 127.0.0.1:46988 ESTABLISHED 1091/mongod tcp 0 0 127.0.0.1:27017 127.0.0..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9xPai%2Fbtq8uJRp8rX%2FnZFZgJ8DDcknqRdFB1DZ60%2Fimg.jpg)
IT/파이썬 2021. 6. 30.
작업중 - 서버 구조 구성 Flask API + ReactJS Frontend + GUnicorn
잊지않기 위해서 일단 저장. https://yasoob.me/posts/how-to-setup-and-deploy-jwt-auth-using-react-and-flask/ Setting up & Deploying JWT based auth using Flask & React - Yasoob Khalid Hi everyone! 👋 I was working on a React project these last couple of weeks and I had to implement login functionality. I searched around and most of the solutions I found relied on Redux or some other huge dependency that I wasn..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFi05k%2Fbtq8rXh09c8%2FbjwimlHsaFLfzv7zLGfvAk%2Fimg.png)
IT/파이썬 2021. 6. 30.
JWT access token, refresh token 용도
계속 수정중입니다. (2021.06.30) 이론 내용들 JWT 를 이용해서 사용자 로그인 세션 처리를 하려니 용어가 access token, refresh token 이렇게 나오네. 일단 당연히 구글 검색을... 일단 JWT는 로그인 정보로 DB 검증이 되면 access token, refresh token을 발행해라 이때 access token 은 기한을 분단위로 (30분, 15분등등) 만료가 되도록 발행하고, refresh token은 한 일주일 정도의 만료기간으로 발행해라. 대부분의 접근은 access token으로 이루어진다. HTTP 헤더에 bearer option 필드에 이 access token 값을 넣어서 접근하는 방법이다. 만료가 되었거나, 만료가 다 될 것을 클라이언트에서 미리 인지하거..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmpCth%2Fbtq8pNZXRkh%2F4wTtLuUPsEIhdEywIN6X40%2Fimg.jpg)
IT/파이썬 2021. 6. 29.
파이썬 - 정규표현식
정규표현식에 관련된 자료는 인터넷에 방대하게 있다. 기초적인 것만 알면 되니깐 필요한 것 하나씩만 적어두자. 물론, 아래 사이트는 미리 방문해서 꼭 습득을 먼저하고 https://wikidocs.net/4308 그중에서 자주 보는 \d, \s, \W 같은 문자들은 아래와 같은 의미를 가진다고 하니 기억해두자. (제 공부용으로 정리하는 것이니 죄송하지만 여기에 복사해 둘께요. 원본 사이트로 가서 보세요. 다들~~) \d - 숫자와 매치, [0-9]와 동일한 표현식이다. \D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다. \s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다. \S - whitespace 문..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKFO3w%2Fbtq7Yqee7Ql%2F2w2seyEkm3N0Hht56Yeep1%2Fimg.jpg)
IT/파이썬 2021. 6. 24.
파이썬 - 문자열에 숫자 접미사를 붙여서 리스트 만들기 - 한줄로!
문자열에 일련숫자를 붙이는 문자열 리스트를 만들고 싶다 (접미사가 postfix, suffix 머 이렇게 부르네) 머 쉽겠지만, 한줄로 간단하게 만들어 보려고 하니, 무튼 성공한 내용을 적어두자. >>> c = ["원하는문자열_" + str(item) for item in list(range(0,11))] >>> print(c) ['원하는문자열_0', '원하는문자열_1', '원하는문자열_2', '원하는문자열_3', '원하는문자열_4', '원하는문자열_5', '원하는문자열_6', '원하는문자열_7', '원하는문자열_8', '원하는문자열_9', '원하는문자열_10'] 참고자료 https://wikidocs.net/22 리스트 내포 사용하기 리스트 안에 for문을 포함하는 리스트 내포(List comprehe..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA4c6U%2Fbtq7UYUQGBU%2F5Gb91UoMkeBQm9LxZhBJo1%2Fimg.jpg)
IT/파이썬 2021. 6. 22.
파이썬 - 데코레이터 함수
데코레이터라고 막 쓰고 있는데, 함수 호출 이전에 호출되는 함수 정도로 알고 있었는데, 호출되는 함수 전체를 싸고 있는 함수구나 왜 쓰는지? 1. 즉 이미 구현한 함수를 고치거나 수정하지 않고 그 함수 앞 뒤로 어떤 조건이나 리턴을 수정하려면 데코레이터 함수를 만들어서 쓰도록 하자. 2. 중복되는 형태의 함수가 아주 많이 있다면, 데코레이터로 정의해서 코드 양을 줄일 수 있겠다. 예를 들면 try, except 구문이 거의 동일한 API 함수들이 아주 많다면 데코레이터로 정의해서 만들도록 하자. 아래분의 글을 보는게 나을 듯 하고, 난 의미만 알면되지. http://schoolofweb.net/blog/posts/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%8D%B0%EC%BD%94%EB%A..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuWh48%2Fbtq7L1y2Byi%2Fkj9KJoCnkMsnMadnDeDakk%2Fimg.jpg)
IT/파이썬 2021. 6. 22.
파이썬 - JSON 인지 아닌지 구분하는 is_json 함수 구현
JSON 이 맞는지 아닌지 구분한는 함수 이름을 생각하니 is_json 같은데..검색해 보니 기본 기능은 아니구만. 잘 정리해 두신 분이 있어 내용을 보관.. 음 홑따옴표를 쓰면 안되는 구먼. 그냥 따옴표를 내부에서 사용하고 밖은 싱글로 감싸줘야 겠네. https://stackoverflow.com/questions/5508509/how-do-i-check-if-a-string-is-valid-json-in-python # Example Python script returns a boolean if a string is valid json: import json def is_json(myjson): try: json_object = json.loads(myjson) except ValueError as ..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIUUcn%2Fbtq7OCErWif%2Fs9gSCDu2HS63lFdVyFCTZK%2Fimg.jpg)
IT/DB 2021. 6. 21.
Flask MongoEngine 쿼리 filter() 함수 문자열 - Query Operators
Flask MongoEngine 쿼리 filter() 함수 문자열에 대해서 정리해 둬보자. (사실 해본거 하나만 더 적어두자, 해본거니깐) 맨날 = 만 쓰려니 MongoEngine 홈페이지에 가면 다양한 operator 가 있다 쿼리로 사용할 수 있는, 가장 기본적인 예제로 아래와 같이 18세 이하 사용자를 찾아라 같은 예제가 있다. # Only find users whose age is 18 or less young_users = Users.objects(age__lte=18) 즉, 필드명에다가 언더스코어 2개를 넣고 원하는 기능어를 넣으면 쿼리 스트링이 완성된다. 필드명__operator 오퍼레이터의 종류는 아래와 같다. https://docs.mongoengine.org/guide/querying...
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrrcBZ%2Fbtq7nAgbtD5%2FjkbkLgn9XrQd5WIkwnug41%2Fimg.jpg)
IT/파이썬 2021. 6. 15.
Flask 와 React 를 결합한 서비스 - 자료 조사
JS 만큼 강력한 파이썬을 활용하기 위해 Flask 백엔드에 대세라고 할 수 있는 React 프론트엔드 서비스 개발. 이리저리 검색중. 나중에 읽을 필요가 있을 글들을 여기에 모아둬 본다. 정리할 글은 계속 나오겠지. 읽어봐야할 글들 https://kimsehwan96.tistory.com/entry/React-%EB%B9%8C%EB%93%9C%EB%90%9C-%EC%95%B1-Flask-%EC%97%90-%EC%98%AC%EB%A6%AC%EB%8A%94-%EB%B0%A9%EB%B2%95 React 빌드된 앱 Flask 에 올리는 방법 React APP을 플라스크 서버 위에 호스팅하기. yarn build 한 index.html 파일을 그대로 flask 에서 리턴하게 했더니 안되어서 시작한 테스트. ya..
![](http://i1.daumcdn.net/thumb/C400x300/?fname=https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzlTYo%2Fbtq7iuODwH0%2F23MuHxLzf4oR7ukhslN6mk%2Fimg.jpg)
IT/파이썬 2021. 6. 15.
파이썬 - 여러개 값 관리 - 리스트, 튜플, 딕셔너리 멀 쓰나?
이거 할 때 마다 헷갈림 리스트, 튜플, 딕셔너리 비슷비슷한데 쩝... 여러개를 하나의 묶음으로 관리를 한다면 먼가 리스트 형태의 변수가 필요하다. 그냥 리스트만 알고 쓰면 좋은데 리스트 일단 대괄호로 만든다. [ ] 이렇게 말이다. 그냥 C에서 배열이라 생각하면 연계성이 생긴다. 추가, 삭제, 변경이 가능한데 아래 함수를 이용해서 해라 추가는 append() 삭제는 remove() https://velog.io/@inyong_pang/Python-List-Tuple-Dictionary-and-Set-%EC%9A%94%EC%95%BD List 함수 정리 append(원소) :리스트의 뒤쪽에 새로운 원소를 삽입 extend(리스트) : 리스트의 뒤쪽에 다른 리스트를 삽입 insert(인덱스, 원소) : 특..
![로딩중](http://t1.daumcdn.net/tistory_admin/static/mobile/m640/img_loading.gif)