본문 바로가기

전체글139

파이썬 기본문법 정리 # 10^9 표현을 1e9 라고 함 정수형으로 전환하기 위해 int wrap a = int(1e9) print(a) # 실수 a = 0.3 + 0.6 print(a) if a == 0.9: print(True) else: print( False) # round b = round(123.456, 2) print(b) # 123.456 에서 소수점 둘째자리 까지. 셋째에서 반올림 # 파이썬에서 나누기 연산의 결과는 기본적으로 실수형이다(자바는 몫만 나오는데) # 파이썬에서 몫을 얻기 위해 '//' 연산자를 사용한다. a = 7 b = 3 print(a/b) print(a//b) # 거듭제곱 연산자 '**' print(a**b) # 리스트 초기화. 크기가 10이고 모든값이 0인 1차원 리스트 초기화 n = 1.. 2021. 9. 6.
[그리디] 곱하기 혹은 더하기 문제 : 각 자리가 0~9 로만 이루어진 문자열이 주어졌을 때 왼쪽부터 오른쪽까지 차례대로 더하거나 곱해서 가장 큰수가 되게 만들기 사칙연산 방식과는 달리 모든 연산은 왼쪽부터 오른쪽으로 차례대로 진행된다. 예를들어 02984 문자열이 주어지면 ((((0+2)*9)*8)*4) = 576 이다. 이 문제를 풀 때 핵심은 0이나 1이 있을 때 곱하기를 안하고 더하기를 해줘야 한다는점, 그리고 for문을 돌 때 index outof bound가 발생하지 않게끔 해줘야 한다는 점이 제일 중요한거 같다. 두 수를 비교하기 위해서 index, index+1 을 비교하는 방식으로 할까 하다가 out of bound 가 날 수 있으므로, 0번째 인덱스는 미리 갖고 있고 1부터 len(data) 까지 for문을 돌게 하.. 2021. 9. 6.
ip 범위 구하고 범위안에 포함되는지(with subnetmask) 내부 로직을 다 이해해도 조금만 시간 지나면 까먹어서 정리했다. 코드는 IPv4 만 구현되어 있다. 서브넷 마스크, 넷마스크 용어를 엄격하게 구분져서 쓰지 않았다. 엄격히 구분할 필요가 없다고 판단했다. 먼저 ip 가 서로 같은지 다른지 비교를 해보자. 192.168.254.252와 192.168.254.253 은 당연히 다르다. string equal 을 이용해 바로 확인이 가능하다. 그런데 192.168.254.252/13 와 같이 subnetmask 가 같이 있는 경우, 192.175.254.253 이 포함되는지 여부는 바로 알기 어렵다(답은 포함됨). 코드를 보면서 하나씩 살펴보자. 먼저 IpAddressMatcher 생성자로 ip 와 subnetmask 문자열을 / 구분자로 함께 전달한다. Ip.. 2021. 8. 24.
nginx 수정 하면서 썼던 명령어 정리 1. nginx configure 확인(추가된 모듈이나 conf-path 등등) $ /(nginx 디렉토리)/sbin/nginx -V # cf) nginx 버전 확인 $ /(nginx 디렉토리)/sbin/nginx -v 2. nginx 문법체크/중지/시작 # 문법체크 $ /(nginx 디렉토리)/sbin/nginx -t # 중지 $ /(nginx 디렉토리)/sbin/nginx -s stop # 시작 $ /(nginx 디렉토리)/sbin/nginx 3. path variable 요청은 = 로 exact matching 하면 안됌 아래와 같이 '=' 로 location 을 만들면 location 우선순위가 가장 높다(요청된 URI와 지정된 문자열이 정확히 일치). location = /ybs/api/ { ... 2021. 8. 3.
WebClient 사용할때 주의 (3편) response body가 필요 없을 때 response body 가 필요없을 때 releaseBody(), toBodilessEntity(), bodyToMono(Void.class) 세가지 방법이 있다. 그런데 bodyToMono(Void.class) 는 한가지 문제가 있다. reactor-netty 는 bodyToMono(Void.class) 썼을 때 맺었던 커넥션을 커넥션풀에 반납을 하지 못한다. 왜냐하면 reactor-netty 는 통신하고 있는 서버에서 더 받을게 있는지 여부를 모르기 때문이다. 따라서 이 경우 reactor-netty는 해당 커넥션을 닫고 커넥션풀에서 제거한다. 그래서 reactor-netty 메인테이너는 releaseBody(), toBodilessEntity() 두가지만 .. 2021. 6. 23.
Spring Cloud Gateway 인코딩 이슈 http://ybs.com/filtering?sort[]=id,desc&keyword=%EC%96%91%EB%B4%89%EC%88%98 위와 같은 URL 로 요청이 왔을 때, Spring Cloud Gateway 에서 뒷단 서버로 보내기 전 인코딩 여부 검사를 한다. 그런데 '[' 문자가 Invalid character 로 exception 이 발생하면서 인코딩이 안됐다고 판단해서, 재인코딩을 하게 되고 최종적으로는 keyword 값이 두번 인코딩한 결과가 나온다(정작 중요한 '[', ']' 문자는 인코딩안되고 이미 된것만 또 인코딩한 꼴). '[' 문자가 왜 Invalid character 로 exception 이 발생했나를 알아보자. Spring Cloud Gateway 는 허용하는 QUERY_PAR.. 2021. 6. 18.