img 태그의 주소 값으로 # 은 사용해서 안된다.

이미 오래된 내용이지만 아직도 유효하기에 작은 팁으로써 아래의 글을 남긴다. 제목에 나온대로 img 태그의 src 값으로 #은 입력 하면 안된다. 왜 안되는지 결론부터 이야기 하면 서버에서 해당 페이지를 여러번 호출 하기 때문이다.사용자가 보는 화면에서는 분명 페이지가 한번만 열린걸로 보이지만 실제 아파치 로그를 보면 해당 페이지가 한번더 호출 된다. 이 사실은 개발중인 사이트의 쿼리문을 로그로 찍어서 확인하다 2번씩 로그가 찍히는 것을 발견하고 그 원인으로 해결 하려다 알게 된 것이다.처음에는 어디선가 쿼리 실행 메소드를 2번 호출 하는거라 생각하고 xDebug를 이용해서 코드를 추적 하였다.추척 결과 특정 메소드의 중복 호출이 아닌 페이지 전체가 다시 읽어 들이고 있는 것을 확인하였다.브라우저에서 2번씩 호출을 하는 것인지 확인하려고 Continue reading img 태그의 주소 값으로 # 은 사용해서 안된다.

Mac 에서 ssh-agent 사용하기

ssh로 서버로 접근 할 때 보통 ID/PW 방식을 많이 사용한다. 하지만 요즘은 ID/PW보다 좀더 보안에 좋은 key를 이용한다. AWS의 경우에는 기본적으로 서버에 접근하기 위해서 ssh key 를 사용하는데 서버를 private network에 두게 되면 VPN을 이용해서 AWS VPC 내부로 접속을 하거나 별도의 베스천 서버를 두어서 연결을 해야 한다.AWS VPC를 VPN으로 연결하였다면 굳이 ssh-agent를 이용하지 않아도 된다. 하지만 베스천 서버와 같이 중간 다리 역활을 하는 서버를 거쳐서 내부 서버에 접근 해야 한다면 내부 서버에 접근하기 위한 키를 어떻게 해야 할지 고민일 것이다. 베스천서버에 키를 둔다면 베스천서버에 접근 가능한 모든 사람들은 내부 private network 에 존재하는 서버에 모두 접근이 가능할 것이기 때문이다. 이런경우 Continue reading Mac 에서 ssh-agent 사용하기

AWS Beanstalk docker 사용시 발생하는 /var/lib/docker 하위 컨테이너 로그를 제거하기 삽질

AWS beanstalk 의 docker 를 이용해서 서버를 구동할 때 /var/lib/docker 하위에 발생하는 docker 컨테이너 로그로 인하여 디스크 용량이 가득차는 문제가 발생하였다.
주기적으로 배포 또는 인스턴스 교체를 통해서 해당로그를 삭제 할 수 있지만, 잦은 업데이트가 발생하지 않을 경우 결국 desk full 로 이어져 장애에 빠지곤 하였다.
이를 해결 하기 위해 /var/lib/docker 하위에 발생하는 로그를 로테이트 하는 방법에 대한 삽질과 그 결과를 공유한다. Continue reading AWS Beanstalk docker 사용시 발생하는 /var/lib/docker 하위 컨테이너 로그를 제거하기 삽질

S3에 적용한 CORS를 CloudFront 에 적용하는 방법

Behavior 설정에서 Cache Based on Selected Request Headers를 Whitelist로 변경하고 아래 3개의 해더값을 허용하면 된다.

Access-Control-Request-Headers
Access-Control-Request-Method
Origin
이렇게 설정하게 되면 S3에 설정한 CORS 설정되로 사용이 가능하다. Continue reading S3에 적용한 CORS를 CloudFront 에 적용하는 방법

Python 연산자 우선순위 표

우선순위가 높은 순서부터 낮은 순서까지 순위 연산자 설명과 예 1 [v1, …], {v1, …}, {k1: v1, …}, (…) 리스트/셋/딕셔너리/제너레이터 생성 혹은 컴프리헨션, 괄호에 쌓인 표현식 2 seq[n], seq[n:m], func(args…), obj.arr 인덱스, 슬라이스, 함수 호출, 속성 참조 3 ** 지수 4 ‘+’x, ‘-‘x, ‘~’x 양수, 음수, 비트 연산 not 5 *, /, //, % 곱하기, 나누기(부동소수점), 나누기(정수), 나머지 6 +, – 더하기, 빼기 7 <<, >> 왼쪽 시프트, 오른쪽 시프트(비트 연산) 8 & and(비트연산) 9 | or(비트연산) 10 In, not in, is, is not, <, <=, >, >=, !=, = 멤버쉽과 균등 테스트 11 not x 부울 not(논리 연산) 12 and Continue reading Python 연산자 우선순위 표