Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준)

1. 에러 각종 서비스에서 5432 port가 열려있느냐를 묻는 에러가 발생한다. django는 이런 식. Is the server running on host XXX and accepting TCP/IP connections on port 5432? 어쨌든 connection이 안되면 서비스가 실행되는지, port가 열려있는지 확인해보는게 좋다. 2. 확인 1) htop 에서 postgresql이 있는지 본다. 혹은 ps -el. 2) netstat -ntl로 5432가 열려있는지 본다. 3) service postgresql status로 서비스가 active 상태인지 본다. 3. 해결방법 1) postgresql이 실행되어 있지 않다. sudo service postgresql start. 2) 5432 port가 열려있지 않다. - /etc/posgresql/VERSION/main/pg_hba.conf에서 # IPv4 local connections 아래   host    all             all             0.0.0.0/0           md5 를 추가(혹은 수정) - 외부에서 접속하는 경우 방화벽이 막혀있는 경우가 있다. 열어도 되는 서버라면   iptables -I INPUT 1 -p tcp --dport 5432 -j ACCEPT   iptables -I OUTPUT 1 -p tcp --dport 5432 -j ACCEPT AWS EC2는 EC2 콘솔에 가서 열어야 하는 것 같다. 3) 실행도 되어있고 port도 열려있다. 이전 실행에서 비정상적으로 종료된 경우가 가끔 있다. /var/lib/postgresql/VERSION/main/pos...

Pycharm에서 PEP8을 선택적으로 적용하는 방법

1. PEP8? Python code style guide. Pycharm을설치하면 기본적으로 지키게 되어있다. Warning level(회색 밑줄)이지만 안지키면 거슬리므로 지키게 된다. 자세한 내용은 이 페이지 참조 2. 선택적으로 적용하는 방법 (2017.2.3 버전) 1) File > Settings( ctrl + alt + s)을 연다. 2) 왼쪽 리스트에서 Editor > Inspections. 3) 나오는 리스트에서 Python 더블클릭. 4) 아래로 내려서 PEP 8 coding style violation을 선택. 5) 오른쪽 입력창 > Options > Ignore errors의 + 버튼 클릭. 6) 이 페이지 에서 무시하고 싶은 에러 코드를 찾아 입력. ex> E501

AWS lamda + api gateway + step function

1. 하고 싶은 것 - 클라이언트 요청 -> (1) 무조건 성공값을 반환 -> (2) 실제 계산, DB 입출력 등 - 이유 : 실제로 하고 싶은 연산이 꽤 오래 걸리고 사용자는 그 결과를 바로 볼 필요가 없음 2. 1차시도 : API gateway -> Lambda1 -> Lambda2   1) lambda2를 실행시키고 바로 "ok"를 반환하는 lambda1 함수를 만듦(둘 다 node.js 8.1) 2) API gateway를 만들고 method로 Post를 추가, CORS 설정, lambda1을 end point로 설정. -> CORS 설정했는데 테스트하니 안됨. -> lambda1에서 CORS 헤더를 설정해서 이런식으로 return해야 함 return {   "statusCode": 200, "headers": { "Access-Control-Allow-Origin": "*" } } 3) CORS 문제는 발생하지 않으나 lambda2에 진입하지 않음 -> handler에서 return 하는 순간 함수가 종료되고 실행중인 연산을 종료해서 발생하는 문제. -> callback() 사용. 4) lambda2에서 실제로는 10초 정도면 끝나는 연산을 lambda1에서 설정한 대기시간(30초였음)만큼 기다림 -> lambda1의 대기시간을 10초로 줄였더니 lambda2에서 10초 이상 걸리는 경우 마지막까지 수행하지 못함. (기나긴 삽질의 시간) 3. 2차시도 : API gateway -> Step function(Lambda1 -> Lambda2) 1) Step function(state machine과 비슷하다고 느꼈다)을 사용하면 될 것 같아서 API gateway가 step function을 호출, step function에서 시작 ->...

jsp tag 라이브러리를 이용한 템플릿 작성

1. .tag 파일 1) 태그 정의 파일 최상단에 <%@tag pageEncoding="UTF-8" language="java" description="Base Template" %> 2) attribute, fragment 정의 태그 파일에서 각 부분을 불러올 때 사용할 attribute를 정의한다. - <%@attribute name="title" required="true" %> : 이런 식으로 작성하면 base 태그 안에 같이 쓰는 attribute를 정의할 수 있다. - <%@attribute name="js" fragment="true" required="false" %> : fragment="true"를 추가하면 invoke로 불러올 수 있다. 3) 템플릿 작성 모든 페이지에서 공통적인 부분을 작성한다. 예를 들면 이런 식. 굵은 글씨는 2)에서 정의한 attribute와 fragment. <head>   <title><%= title %></title>   <jsp:invoke fragment=" style "/> </head> <body>   <jsp:invoke fragment=" header "/>   <jsp:invoke fragment=" content "/>   <jsp:invoke fragment=" footer "/>   <jsp:invoke fragment=" script "/> </body> 그냥 attribute는 <% 이 안에서 사용할 수 있고 %> fragment...

psycopg2 정리

1. 실행결과를 dict로 받고 싶다 import psycopg2, psycopg2.extras connection.cursor(psycopg2.extras.RealDictCursor) 2. insert가 안된다 connection.commit() 3. AWS lambda에서 사용하고 싶다(python 2.7) 1) 이 페이지 를 따라한다. 2) 바로 안되면 -> 이 페이지 로 가서 필요한 패키지를 다운받아 1) 처럼 구성해서 올린다. 4. insert 후 결과를 받아보고 싶다. 1) query에 RETURNING [fieldnames] 2) cursor.fetchone() / fetchall()

각종 datetime format 정리

1. Java - 2018-09-01 00:00:00 : yyyy-MM-dd HH:mm:SS 2. Python - 2018-09-01 00:00:00 : %Y-%m-%d %H:%M:%S - datetime -> javascript format : %Y-%m-%dT%H:%M:%S.%fZ 3. JQuery UI datepicker - 2018-09-01 : yy-MM-dd

Intellij 자주 쓰는 단축키/기능 정리

1. 아무데서나 - ctrl + shift + f, r : f로 모든 파일에서 검색, r로 모든 파일에서 바꾸기. - shift + shift : 전체 검색 빠른 버전. - ctrl + n : 파일 검색해서 열기. - ctrl + alt + s : 프로젝트 설정 열기. - alt + 5 : 디버거 열기 - alt + 3 : 검색결과 열기 2. 코드 대상 - alt + insert : generator 메뉴 열기. 주로 getter/setter 만들때나 interface 구현에서 사용. - ctrl + / (범위 지정하고) : 해당 범위 주석 - f2 : 다음 error, warning으로 커서 이동 - ctrl + alt + shift + v : 코드를 보이는 그대로 복붙. 그냥 ctrl + v는 자동 formatting이 기본값. - ctrl + alt + l : 코드 포맷 정리. 3. 파일/프로젝트 대상 - f4(프로젝트) : module setting 열기. - shift + f6 : 파일 이름 변경 - f5 : copy & paste 4. 매크로(마우스/키보드) 등록법 1) 상단 메뉴 > Edit > Macros > Start macro recording. 기록이 끝나면 오른쪽 아래 stop 버튼으로 중지. 매크로 이름 지정. 2) 프로젝트 설정(ctrl + alt + s) > Keymap > 목록에서 Macros > 위에서 저장한 매크로 우클릭 > Add Keyboard/Mouse shortcut 5. 서버 hot swap?(Tomcat) 1) 상단 메뉴 > Run > Edit Configurations 혹은 우상단 실행 메뉴 옆에 있는 드롭다운 2) 좌상단 + 버튼 > Tomcat server로 추가 혹은 이미 있는 서버 불러옴 3) Server 탭 > 중간 쯤에 On frame deactivation을 Do nothing 말고...