개인 목적으로 RSS 읽어오는 것은 불법이 아니지만 홈페이지나 개인 블로그에 개재하는 것은

불법 및 저작권 위반일수 있으니 이는 확인 하시기 바랍니다.

 

jsp 자바 웹서비스에서 RSS 읽어 보여주는 테스트를 진행했습니다.

 

기존의 RSS 기본 구조가 있으며 이를 토대로 변경 및 변형이 조금씩 이뤄진 상태입니다.

물론 완벽히 지키고 있는 곳도 있습니다.

 

네이버의 경우 RSS 주소 찾기가 수월하지 않습니다.

먼저 주소를 확인합니다.

네이버 뉴스 RSS 주소

먼저, 검색어가 필요하고

뉴스 탭으로 이동하게 되면 우측 하단에 RSS 보기가 나타나게 됩니다.

 

위와 같은 결과를 볼수 있습니다.

자 그럼 살짝 분석을 해보면 됩니다.

구조를 보면 

RSS 하위에 channel 이 가 있고 같은 레벨에 ITEM 들이 즐비하게 있습니다. (50개)

 


웹 프로젝트에서 사용을 해보도록 하겠습니다.

준비는 VO식으로 형태를 잡아줄 Feed.java 와 Item(messag)을 잡을 FeedMessage.java를 준비합니다.

한글 주석은 개인적으로 달아 놓은 것으므로 의미상의 분류를 했으니 참고만 하시기 바랍니다.

 

소스 Feed.java

import java.util.ArrayList;
import java.util.List;

/**
 * 피드 읽어 오기
 * @author torrms
 *
 */
public class Feed {
	
	private String title;          /* FEED 제목    title         */
	private String link;           /* 링크         link          */
	private String description;    /* 설명         description   */
	private String language;       /* 언어         language      */
	private String lastbuilddate;  /* 발생일       lastBuildDate */
	

	final List<FeedMessage> entries = new ArrayList<FeedMessage>();

	public Feed(String title, String link, String description, String language, String lastbuilddate) {
        this.title = title;
        this.link = link;
        this.description = description;
        this.language = language;
        this.lastbuilddate = lastbuilddate;
    }
	
	public List<FeedMessage> getMessages() {
        return entries;
    }

	public String getTitle()        { return this.title;        }  /* GET FEED 제목    title         */
	public String getLink()         { return this.link;         }  /* GET 링크         link          */
	public String getDescription()  { return this.description;  }  /* GET 설명         description   */
	public String getLanguage()     { return this.language;     }  /* GET 언어         language      */
	public String getLastbuilddate(){ return this.lastbuilddate;}  /* GET 발생일       lastBuildDate */

	@Override
    public String toString() {
        return "Feed [ description=" + description
                + ", language=" + language + ", link=" + link + ", lastbuilddate="
                + lastbuilddate + ", title=" + title + "]";
    }
}

FeedMessage.java

 

/**
 * RSS 피드 리딩 테스트
 * @author torrms
 *
 */
public class FeedMessage {
	private String title;        /* 제목         title         */
	private String link;         /* 링크         link          */
	private String description;  /* 내용         description   */
	private String pubdate;      /* 날짜         pubDate       */
	private String author;       /* 저작자       author        */
	private String category;     /* 카테고리     category      */
	private String thumbnail;    /* 쎔네일(URL)  thumbnail     */

	public String getTitle()      { return this.title;      }  /* GET 제목         title         */
	public String getLink()       { return this.link;       }  /* GET 링크         link          */
	public String getDescription(){ return this.description;}  /* GET 내용         description   */
	public String getPubdate()    { return this.pubdate;    }  /* GET 날짜         pubDate       */
	public String getAuthor()     { return this.author;     }  /* GET 저작자       author        */
	public String getCategory()   { return this.category;   }  /* GET 카테고리     category      */
	public String getThumbnail()  { return this.thumbnail;  }  /* GET 쎔네일(URL)  thumbnail     */

	public void setTitle(String title)            { this.title       = title;       }   /* SET 제목         title         */
	public void setLink(String link)              { this.link        = link;        }   /* SET 링크         link          */
	public void setDescription(String description){ this.description = description; }   /* SET 내용         description   */
	public void setPubdate(String pubdate)        { this.pubdate     = pubdate;     }   /* SET 날짜         pubDate       */
	public void setAuthor(String author)          { this.author      = author;      }   /* SET 저작자       author        */
	public void setCategory(String category)      { this.category    = category;    }   /* SET 카테고리     category      */
	public void setThumbnail(String thumbnail)    { this.thumbnail   = thumbnail;   }   /* SET 쎔네일(URL)  thumbnail     */

	public String toString() {
        return "FeedMessage [title=" + title + ", description=" + description
                + ", link=" + link + ", author=" + author + ", pubDate = " + pubdate + ", category=" + category + ", thumbnail=" + thumbnail
                + "]";
    }
}

이렇게 준비하면 기본 준비는 끝납니다.

그럼 이제 파싱을 해서 서비스는 부분을 만들어 보겠습니다.

다음글에 계속이어집니다.

 

windows 환경에 도커(docker) 사용을 kitematic 이용하고 있었습니다.

 

어느날 어제 급히 간다고 강종을 하고 컴퓨터를 종료 하고 갔다니...

 

문제가 발생합니다.

 

- Containers 에 올린 콘테이너가 사라졌습니다.

분명히 올렸던 Mysql 서비스가 순삭 당했습니다. 당연히 테이블 정보들도 슝~~

아놔 정보들을 모두 백업하고 진했으니 망정이지... (DDL이랑 몇가지 테이블 레코드 정보들...)

이건 검색을 좀 했더니 몇개의 글을 발견했지만 딱히 맞는지는 모르겠습니다.

 

도커 살리기

power shell 에서 아래 명령으로 1..10은 이미지 범위 일것으로 보이니 맞게 설정하여 가져오기를 시도 합니다.

hello-world-nginx 콘테이너도 올리고요

for i in {1..10}; do docker run -itd -P kitematic/hello-world-nginx; done

위 문제는 종종 발생하고 정상 종료(?) 를 한 경우는 잘 발생하지 않는다고들 합니다만 대비는 해야 할듯합니다.

 

- Hostname/Ports 설정의 공중부양

mysql 설정은 개인 로컬 서버 (포트 설정 3306 -> 23306) 설정을 진행했습니다.

다음날 봐야지 하고 봤더니 DB랑 포트 설정이랑 슝~

 

테이블이 날라가기도 하고 이걸 참네..

 

- 2019-08-30 이어서... 현재 상태

문제가 완전히 해결 되지 않습니다. 

내부 설정이 모두 날아가고 다시 테이블, 사용자를 다시 설정하는 이상한 형태로 살아남니다.

 

심지어 어떨때는 포트가 잡혀서 아에 구동도 되지 않고 포트도 사용 불능에 빠집니다.

어허이... 아직 버그가 많습니다. 이유는 모르겠지만 포트를 잡아 먹고 놓아 주질 않습니다.

아마도... 완벽히 종료가 되지 않고 PC 가 종료 되는 모양새 입니다.

환경은 windows 10 pro 입니다.

 

지금으로썬 테스트 중입니다.

포트 먼저 확인

포트를 확인합니다.

도커는 구동을 하고 있지 않은 상태 인데

왼쪽 스샷 처럼 구동이 되어있는 backend 상태 입니다.

 

그래서 프로세스를 죽이지 않는 한 살아 있는 샘이죠
taskkill -f /PID [프로세스ID] 로 종료를 할듯합니다.

 

d:\에 a.vbs 는 프로세스 및 포트를 알려주는 스크립트 입니다. 첨부하면 바이러스 일줄 아니 파일을 생성하고 하세요.

소스는 아래 넣습니다.

 


a.vbs

set fso = createobject("scripting.filesystemobject") 
set sh  = createobject("wscript.shell") 
set oExec = sh.exec ("tasklist") 
do while not oExec.stdout.atendofstream 
line = oExec.stdout.readline 
processes = processes & trim(left(line,27)) & "," 
PIDs = PIDs & trim(mid(line,30,6)) & "," 
loop
PID = split(PIDs,",") 
Process = split(processes,",") 
set oExec = sh.exec ("netstat -ano") 
wscript.echo "Port"&vbtab&"PID"&vbtab&"CMD"
do while not oExec.stdout.atendofstream 
line = oExec.stdout.readline 
flag = true
if mid(line,3,3)<>"TCP" then flag=false
if mid(line,10,1)<>"0" then flag=false
if mid(line,56,9)<>"LISTENING" then flag=false
if flag = true then
port = trim(mid(line,18,5))
netpid = trim(mid(line,72))
for x = 0 to ubound(PID)
   if netpid = PID(x) then exit for 
next
cmd = "-"
if x <= ubound(PID) then cmd = Process(x)
wscript.echo port&vbtab&netpid&vbtab&cmd
end if
loop


프로세스 및 포트를 확인하고 나면 다시 구동 가능해 집니다.

다만, 이유는 찾지 못했고 아직, 마지막 설정 이전 상태를 되돌리지 못하고 있습니다.

다른 분들도 그런지 궁금도 합니다.

여기까지 입니다.

'개발하기 > 도커_관련' 카테고리의 다른 글

Docker + RabbitMQ + AMQP1.0 + etc.  (0) 2020.02.04
도커 사용기  (0) 2019.08.13

도커(docker)

 

Docker 아이콘이 반짝인다.

요즘 도커로고!!

회사에서 자꾸 로컬 DB랑 여러가지를 깔아서 사용하게 된다.

맥을 사달라고 하기에는 부담도 있고 적응기가 필요한데 

조금은 그러하기에 윈도우를 쓰고 있다.

 

그러하니 도커는 사실 리눅스에 맞게 되어 있고 커맨드로

여러가지 하다보니 조금 불편함이 있다.

 

그러나 나와 같은 사람들을 위한 친구가 있지 않은가?

(도커 사랑, 윈도우 친구)


여러 찬양하는 글들이 많으니 참조 해보시길

개인 선택 글 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

초보를 위한 도커 안내서 - 도커란 무엇인가?

도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이미지에 대해 알아보고 왜 이렇게 도커가 인기 인지 하나하나 살펴보겠습니다.

subicura.com

그리고 중요한 설치

https://steemit.com/kr/@mystarlight/docker

 

[docker]도커 처음 사용자를 위한 윈도우 도커 설치 및 실행하기 — Steemit

윈도우에서 도커 설치는 두 가지 버전으로 나뉩니다. Windows 10 Home 버전 이하에서 설치하는 방법과 Windows 10 Pro 또는 Windows 10 Enterprise 버전, Windows… by mystarlight

steemit.com

잘 따라가다 보면 보물같은 것들이 잔뜩, 

용량만 받쳐 주면 그냥 주구장창

그리고 한가지더!

Kitematic 설치 시

Kitematic 오류 발생

반드시 최신버전으로 

https://github.com/docker/kitematic/releases/tag/v0.17.7 설치

 

docker/kitematic

Visual Docker Container Management on Mac & Windows - docker/kitematic

github.com

끗.

요즘 CRUD 커스텀에 열을 올리고 있습니다.

업무 효율도 있지만, 결국 프로그램의 본수 찍어내는 것에 집중 된 작업들이 꽤나 있지요

 

해서, 그 일환으로 작업을 하고 있네요, 그런데...

 

아무리 작업을 진행하려해도 안되는 프로젝트가 나타납니다.

프로젝트 화면

위프로젝트에서  eGovFrame Templates 실행!

실행을 해서 테이블 읽어서 작업을 진행하려고 합니다.

기존에 설계된 TABLE가 존재하고 이를 활용하여 진행되는 만큼 설정과 연결을 확실히 합니다.

 

 

 

그런데 2번을 간과하고 저는 Project Explorer 만 본겁니다. 즉 package Explorer을

순간 됬었다 또는 열기만 하고 된줄 알고 넣었다가 두둥

Pakage Selection 이 안보이는 시원한 사태???

 

 

 

패키지가 안보이는 상황

위 스샷 처럼 패키지 보이지 않는 상태가 된다. 

아래 확인 사항을 반드시 처리하고 진행하자

 

※ 확인사항


1. Database Source Explorer 에 연결이 되어 있는가?

 

2. Package Explorer 창을 열었는가?                                        (단순 열기이 아니라 F5 및 아래로 열어 확인함)


 

행정_법정동 중심좌표.xlsx
1.18MB

지금 내 위치에서 반경 검색등을 하려고 하는데 있어 중요한 지표가 바로 

각 지역명의 중심좌표라고 생각한다.

 

공개 되어 있는 부분의 좌표는 각 지역의 입구 좌표 이유는 길찾기용으로 

시작되어서 그러한것 같다.

 

해서 중심좌표를 구해서 엑셀에 각 동코드를 합쳐 보았다. 물론 새주소의 건물

위치 등을 통한 중점구하기 (구글링 해보면 좀 나옵니다.)를 이용하였다.

 

필요한 분은 다운로드 하시고 마음대로 사용하세요

 

단, 좌표 틀리다고 따지지는 마세요 ^^;

 

그럼. 슝~


 

+ Recent posts