Author: byun1114

  • 슈퍼배드 Despicable Me

    슈퍼배드 Despicable Me

    아이를 키우기 시작한 이후로 모든 영화가 육아와 연관된다. 딸바보 아빠 이야기인 인터스텔라 이후에 감동적인 아빠 이야기이다.

    영어 제목보다 한글이름이 마음에 드는 애니이다. 세 아이를 입양함으로써 사람 사이의 정을 깨달아가는 그루의 성장 이야기이다.

  • Shiny에서 ggplot 사용

    output$x2 = renderPlot({
      dat = get_data()
      if (input$para == "rr"){
        p = ggplot(data=dd) + ...
        if (input$trend == "y") {p = p + geom_smooth()}
        plot(p)
      }
    })
    

    조금만 shiny를 쓸 수 있으면 바로 알게 되는 것 중의 하나일 것이다. 별다른 조건이 없다면 renderPlot에서 ggplot을 그냥 입력해도 그래프가 출력이 된다. 그런데 이상하게도 조건을 붙이면 빈 화면이 출력된다. 우연하게도 해결한 방법은 전통적인 ggplot 코딩 안내문처럼 ggplot을 특정 변수(이 경우에는 p)에 받고, 이를 출력하도록 하는 것이다.

  • 파이썬 시리얼 통신

    사람마다 시리얼 통신을 하는 이유는 다를테니 문제 해결 방법도 다를 것이다. 일단 내가 연결하고자 하는 장비는 가끔씩 결과를 수신 받을 수 있다. 그래서 이게 동작을 하는 중인지 문제가 있는 건지 알 수가 없었다.

    timeout = 1 옵션을 주니까 몇 분 후에 결과가 나오기 시작했다. 그래서 timeout=0 을 해봤는데, CPU 점유율이 매우 높아지기 시작했다. 이러면 장비가 버티지 못할테니 다시 timeout=1로 바꾸어 보았다. timeout 설정을 검색을 통해서 좀 살펴 보았는데, 와닿지가 않는다. 책을 좀 살펴봐야 하나 싶다.

    왠지 모르지만 프로그램 실행 이후 첫 번째 결과가 제대로 읽어지지 않는다. 이것은 해결해야 할 문제이다. 제대로 동작하기 시작하면 끄지 않을 장비이기 때문에 상관은 없을 것이다. 하지만, 이런 문제가 쌓이고 쌓이면 잘못된 결과를 유발할 수도 있을 것 같다.

  • Docker에서 Shiny server 이용하기

    결과 분석된 텍스트 내용을 DB에 넣는 것은 쉬운데 업무용 DB로 넣는 것은 꽤 난감한 상황이다. 그럴 것이라고 예상했기 때문에 Web에서 긁어서 붙일 수 있는 포맷으로 우선 진행하기로 하였고, Shiny를 이용하기로 하였다.

    기본적으로 Docker를 이용할 것이기 때문에, Docker 에서 Shiny Server를 설치하였다. Docker는 root가 기본 계정이라서 shiny-server.conf 파일을 수정해야 하는 줄 알고 한참을 진행하여 보았는데, connection 오류가 해결이 안되었다.

    Docker 에서 Shiny Server를 설치하는 과정에서 shiny 계정으로 shiny-server 프로그램이 동작한다. 따라서 설정 파일에서 run_as 부분은 shiny로 그대로 두어야 올바르게 동작한다.

    Nginx 에서 reverse proxy 설정은 역시 열심히 여러 설정을 따라 해봤는데, 효과는 없었다. 나의 경우에는 ‘/’를 붙여주는게 간단하고도 유일한 효과를 발휘한 방법이었다.

    location /shiny/ {
        proxy_pass http://shiny.private:3838/;
        }