이제 HBase를 설치 했으니 PinPoint를 설치해 보자.Pinpoint는 Scouter와 비슷한 구조인 agent, server, web(client)으로 나눠진다. Scouter는 Client를 이클립스과 같은 설치형 client를 제공하는 거에 반해 pinpoint는 web으로 제공해 준다. 그래서 하나의 tomcat에 server와 web을 모두 설치할 것이다.1. 알맞은 tomcat 다운로드 (https://tomcat.apache.org/)2. 압축을 풀고 설치한 뒤 conf/server.xml에 context 설정을 추가한다. webapps 밑에 pinpoint-collector-1.6.2.war으 압축을 풀고 webapps/collector/밑에 저장하고 webapss/ROOT 밑에 p..
네이버에서 만든 Pinpoint를 사용해 보기 위해 먼저 HBase를 먼저 설치해야한다...ㅠㅠ(pinpoint 설치 가이느 : https://github.com/naver/pinpoint/blob/master/doc/installation.md)http://hbase.apache.org/ 에서 hbase를 다운로드 한다.그리고 http://hbase.apache.org/book.html#quickstart 를 보며 따라한다..ㅋㅋhbase를 모니터링 용도로 사용할 것이기 때문에 간단하게 stand-alone 형식으로 설치해 본다. 1. tar xzvf hbase-3.0.0-SNAPSHOT-bin.tar.gz2. edit conf/hbase-env.sh 뒤에 /bin/java가 자동으로 붙기 때문에 us..
HTTPS 는 HTTP 에 보안을 추가한 것으로 S는 Over Secure Socket Layer의 약자이다. 말그대로 SSL(Secure Socket Layer) 프로토콜 위에서 HTTP 를 사용하는 것이다. SSL은 네스케이프에서 발명되어 IETF의 관리로 변경되면서 TLS로 이름이 변경되었다.SSL은 대칭키와 공개키 암호화 방식을 혼용해서 사용한다. 간단히 설명하면 공개키 방식을 통해 대칭키를 주고받고 실제 통신은 대칭키를 사용하게 된다. 이는 공개키 방식은 대칭키에 비해 안전한 반면 암복호화가 느리고 대칭키는 덜 안전한 반면 암복호화가 빠르기 때문이다.SSL 인증서는 서버가 신뢰있는 서버임을 보장하고 SSL 통신에 사용할 공개키를 클라이언트에게 제공하는 역할을 한다.CA(Certificate au..
설치가 완료된 Docker를 start 하고 여기서 개발한 어플리케이션을 올려보기로 했다. 올릴 어플리케이션은 nodejs로 개발된 것으로 Host에 파일이 저장돼 있는 상태다.Docker 명령어 중에 exec라는 명령어가 있는데 컨테이너에 attach로 접속하지 않고 외부에서 명령어를 실행해 볼 수 있다. 예를 들어 외부헤서 컨테이너안의 특정 폴더 목록을 보고싶을 경우 아래와 같이 실행하면 hello라는 컨테이너의 /bin 하위 폴더 목록을 볼 수 있다.docker exec hello ls /bin새로운 어플리케이션을 설치하기 위해 app폴더를 하나 생성했다. docker exec hello mkdir /app그리고 cp를 통해서 파일을 카피하려고 했다.(https://docs.docker.com/en..
Docker를 사용해 보기 위해서 현재 개인적으로 사용 중인 AWS의 우분투 서버에 Docker를 설치해 보기로 했다.그리고 이 Docker에 기존 서비스 중인 ShareTime과 Node.js로 개발한 HelloBook을 올려 보기로 했다.Server 환경 Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64)설치 실행 명령어 sudo apt-get update sudo apt-get install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker두 번째 실행 명령어를 통해서 Docker를 설치하고 나면 docker.io와 docker가 둘 다 /usr/bin/밑에 설치되어 있는 것을 알 볼 수 ..
daemonize [yes/no] (default : no) yes로 설정하면 데몬으로 실행할 수 있다. 데몬으로 기동 시 redis를 여러개 기동할 수 있다.pidfile(default : /var/run/redis.pid) daemonize가 yes일 경우 유효하며 경로와 파일명을 설정할 수 있다. pid 가 파일로 저장된다. 여러개를 띄울 경우 pid 파일이 겹칠 수 있으니 다르게 설정해 줘야 한다.port [number] (default : 6379) Redis Port.bind [ip] 사용할 네트워크 어댑터 지정.timeout [second] 클라이언트의 연결에 대한 idle 시간을 설정. 모든 클라이언트에 적용되며(redis-cli 도 영향을 줌) 0이면 무한대이다. 이 시간은 클라이언트에서..
TCP는 연결이 완료된 후에 데이터를 주고 받지 않으면 아무런 데이터도 오가지 않는다. 이는 중계 라우터 장애 등 예상치 못한 장애로 인해서 연결이 끝기더라도 양쪽에서는 이를 감지하지 못하고 연결 상태를 유지할 수 있다.여기서 사용할 수 있는 기능이 keepalive이며 이 기능은 종단 시스템 중 하나가 다운됐을 때 한 쪽만 열린 상태를 막기 위함이다.setsockopt()를 사용하여 SO_KEEPALIVE 옵션을 사용하면 되며 tcp_keepalive_interval로 지정된 시간 동안 유휴 상태가 되었을 때 이를 상태를 확인하기 위해서 keepalive 패킷을 보내게 된다. 이 패킷에 응답이 없을 경우 연결을 종료하게 되는데 이 기능은 옵션이므로 상황에 따라 작동하지 않을 수 있다.
이 패턴은 여러 기준을 만들어 연결할 수 있다. 또한 하나의 조건은 내부적으로 여러 조건을 갖을 수 있으며 연결된 여러 조건들을 사용하여 객체를 검사할 수 있다.https://www.tutorialspoint.com/design_pattern/filter_pattern.htm Intercepting Filter Pattern Intercepting Filter Pattern은 중요 로직을 수행하기 전과 후에 처리해야 할 작업을 Filter로 만들고 이를 Chain으로 연결하여 사용하는 패턴이다. Filter는 연결된 순서로 실행되며 인증, 로깅, 검사 등의 Filter 만들고 필요한 로직의 어디에서나 재활용한다. 필요한 부분에서는 원하는 Filter들을 재조합하여 활용한다.https://www.tutor..
이 패턴은 Runtime 중에 행동이나 알고리즘을 교체할 수 있게 하는 것에 있으며 다양한 전략적인 Object를 만들고 상황에 맞는 전략을 선택할 수 있다.Bridge Pattern과 비슷한 듯 보이지만 Bridge Pattern은 구조 패턴이고 Strategy Pattern은 행동 패턴임이 다르다. 나도 둘이 거의 비슷한 느낌이 들지만 Bridge Pattern으로 행동에 해당하는 구현 부분을 분리하고 이를 Runtime에서 상황에 맞는 객체로 교체한다면 두 패턴을 혼용해서 사용했다고 생각했다.Netty의 Pipeline은 runtime에서 들어오는 데이터에 따라 언제 든지 교체가 가능한데 이 부분도 이 패턴이 사용됐다고 생각한다.https://www.tutorialspoint.com/design_p..
이 패턴의 중요한 점은 구현 클래스와 추상 클래스를 분리하는데 있다. 여기서 구현 클래스와 추상 클래스를 구분 짓는게 쉽지 않았다. 추상 클래스를 내가 만들려는 목적 클래스로 생각 한다면 구현 클래스는 추상클래스 안에서 실제로 동작하는 수행하는 부분이라고 생각했다. https://www.tutorialspoint.com/design_pattern/bridge_pattern.htm예제를 보면 구현 인터페이스인 DrawAPI를 추상 클래스인 Shape을 확장한 Circle이 draw메소드에서 사용하고 있는 것을 볼 수 있다.