ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [XML] 003. XML 관찰 실습(3) : 원격지 XML 파일 읽기 (콘솔 기반)
    SsY/Class 2023. 7. 25. 11:20
    728x90
    XmlApp05
    - 기존의 방식대로 로컬로 가져와서 실습
    ※ RSS 란?
    - 프로그램이 필요로 하는 xml 파일을
      우리가 만든 컴포넌트와 결합하여 DOM 을 컨트롤 (행위,동작) - 엘리먼트를 컨트롤 하는 것에서 
      직접 매번 우리가 갱신하는 것이 아니라 원격지에서 업데이트 된 파일이 자동으로 갱신되어 받아오는 것
      (이 때 보내지는 파일이 xml 파일인 경우가 많다)
     ex) 날씨 RSS (기상청 날씨누리 제공)


    • rss.xml
      - 위에서 얻어온 xml 을 전체복사하여 xml 파일에 2열부터 붙여서 작성한다.

    • XMLDOM.java
      - 메소드 정의
    package com.test.xml;
    
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    
    public class XMLDOM
    {
    	public static String getText(Element parent, String tagName)
    	{
    		String result = "";
    		
    		// 대상 태그(tagName) 객체의 첫 번째 자식 노드 얻어오기
    		Node node  = parent.getElementsByTagName(tagName).item(0);
    		Element element = (Element)node;
    		
    		// 대상 엘리먼트(element)의 자식 노드(텍스트 노드)의 값 얻어오기
    		result = element.getChildNodes().item(0).getNodeValue();
    		
    		return result;
    	}
    }

    • XmlDomTest05.java
    /*============================================================================
       XmlDomTest05.java
       - 콘솔 기반 자바 프로그램
       - XML DOM 활용 → 로컬(local) XML 읽어내기
         (rss.xml)
         ※ 기상청 날씨누리로부터 얻어낸 데이터
         https://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109
    =============================================================================*/
    
    package com.test.xml;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    
    public class XmlDomTest05
    {
    	public static void main(String[] args)
    	{
    		try
    		{
    			// 1. XML 파일 메모리에 로드
    			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    			DocumentBuilder builder = factory.newDocumentBuilder();
    			String url = "rss.xml";
    			Document xmlObj = builder.parse(url);
    			
    			// 2. 루트 엘리먼트 접근
    			Element root = xmlObj.getDocumentElement();
    			
    			// 3-1. 타이틀 추출하기 
    			Node itemNode = root.getElementsByTagName("item").item(0);
    			Element itemElement = (Element)itemNode;
    			
    			System.out.printf("%s%n%n", XMLDOM.getText(itemElement, "title"));
    			
    			// 3-2. 기상전망 추출하기
    			Node wfNode = root.getElementsByTagName("wf").item(0);
    			Element wfElement = (Element)wfNode;
    			
    			System.out.println("[기상전망]-------------------------------------------------------");
    			System.out.printf("%s%n%n", wfElement.getTextContent().replaceAll("<br />", "\n"));
    			
    			// 3-3. 도시별 기상 예보 추출하기
    			System.out.println("[육상날씨]-------------------------------------------------------");
    			NodeList locationNodeList = root.getElementsByTagName("location");
    			
    			for (int i=0; i<locationNodeList.getLength(); i++)
    			{
    				Node locationNode = locationNodeList.item(i);
    				Element locationElement = (Element)locationNode;
    				
    				System.out.printf("도시 : %s%n", XMLDOM.getText(locationElement, "city"));
    				System.out.println("-----------------------------------------------------------");
    				
    				NodeList dataNodeList = locationElement.getElementsByTagName("data");
    				for (int j=0; j<dataNodeList.getLength(); j++)
    				{
    					Node dataNode = dataNodeList.item(j);
    					Element dataElement = (Element)dataNode;
    					
    					System.out.printf("  %s / %s / %s℃ ~ %s℃ / 강수 %s%%%n"
    							, XMLDOM.getText(dataElement, "tmEf")	// 날짜 시간
    							, XMLDOM.getText(dataElement, "wf")		// 날씨 예보
    							, XMLDOM.getText(dataElement, "tmn")	// 최저 온도
    							, XMLDOM.getText(dataElement, "tmx")	// 최고 온도
    							, XMLDOM.getText(dataElement, "rnSt"));	// 강수 확률
    				}
    				
    				System.out.println("-----------------------------------------------------------");
    				
    			}
    			
    		} 
    		catch (Exception e)
    		{
    			System.out.println(e.toString());
    		}
    	}
    }
    // 실행 결과
    /*
    서울,경기도 육상 중기예보 - 2023년 07월 25일 (화)요일 06:00 발표
    
    [기상전망]-------------------------------------------------------
    
     ○ (강수) 28일(금) 오후에 소나기, 29일(토) 오후~30일(일) 오전은 비가 오는 곳이 있겠습니다. 
    ○ (기온) 이번 예보기간 아침 기온은 23~26도로 평년(최저기온 22~24도)과 비슷하거나 조금 높겠고, 낮 기온은 28~33도로 평년(최고기온 29~33도)과 비슷하겠습니다.
    ○ (해상) 서해중부해상의 물결은 30일(일) 오후~31일(월) 오전, 8월 3일(목)은 1.5~2.5m, 그 밖의 날은 0.5~2.0m로 일겠습니다.
    ○ (주말 전망) 29일(토) 오후~30일(일) 오전은 비가 오겠습니다. 아침 기온은 23~25도, 낮 기온은 29~33도가 되겠습니다. 
    
    * 이번 예보기간에는 제5호 태풍(독수리)의 이동경로와 북태평양고기압의 확장정도에 따라 강수구역이 변경될 가능성이 있으니, 앞으로 발표되는 예보를 참고하기 바랍니다. 
    					
    
    [육상날씨]-------------------------------------------------------
    도시 : 서울
    -----------------------------------------------------------
      2023-07-28 00:00 / 구름많음 / 25℃ ~ 32℃ / 강수 30%
      2023-07-28 12:00 / 구름많고 소나기 / 25℃ ~ 32℃ / 강수 70%
      2023-07-29 00:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
      2023-07-29 12:00 / 흐리고 비 / 25℃ ~ 31℃ / 강수 60%
      2023-07-30 00:00 / 흐리고 비 / 25℃ ~ 31℃ / 강수 60%
      2023-07-30 12:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
      2023-07-31 00:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
      2023-07-31 12:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
      2023-08-01 00:00 / 구름많음 / 25℃ ~ 32℃ / 강수 30%
      2023-08-01 12:00 / 구름많음 / 25℃ ~ 32℃ / 강수 30%
      2023-08-02 00:00 / 흐림 / 26℃ ~ 32℃ / 강수 40%
      2023-08-03 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
      2023-08-04 00:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
    -----------------------------------------------------------
    도시 : 인천
    -----------------------------------------------------------
      2023-07-28 00:00 / 구름많음 / 25℃ ~ 30℃ / 강수 30%
      2023-07-28 12:00 / 구름많고 소나기 / 25℃ ~ 30℃ / 강수 70%
      2023-07-29 00:00 / 흐림 / 25℃ ~ 29℃ / 강수 40%
      2023-07-29 12:00 / 흐리고 비 / 25℃ ~ 29℃ / 강수 60%
      2023-07-30 00:00 / 흐리고 비 / 25℃ ~ 29℃ / 강수 60%
      2023-07-30 12:00 / 흐림 / 25℃ ~ 29℃ / 강수 40%
      2023-07-31 00:00 / 흐림 / 25℃ ~ 30℃ / 강수 40%
      2023-07-31 12:00 / 흐림 / 25℃ ~ 30℃ / 강수 40%
      2023-08-01 00:00 / 구름많음 / 25℃ ~ 31℃ / 강수 30%
      2023-08-01 12:00 / 구름많음 / 25℃ ~ 31℃ / 강수 30%
      2023-08-02 00:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
      2023-08-03 00:00 / 흐림 / 25℃ ~ 29℃ / 강수 40%
      2023-08-04 00:00 / 흐림 / 24℃ ~ 28℃ / 강수 40%
    -----------------------------------------------------------
    도시 : 수원
    						:
    						:
    						:
    도시 : 여주
    -----------------------------------------------------------
      2023-07-28 00:00 / 구름많음 / 23℃ ~ 31℃ / 강수 30%
      2023-07-28 12:00 / 구름많고 소나기 / 23℃ ~ 31℃ / 강수 70%
      2023-07-29 00:00 / 흐림 / 23℃ ~ 31℃ / 강수 40%
      2023-07-29 12:00 / 흐리고 비 / 23℃ ~ 31℃ / 강수 60%
      2023-07-30 00:00 / 흐리고 비 / 23℃ ~ 31℃ / 강수 60%
      2023-07-30 12:00 / 흐림 / 23℃ ~ 31℃ / 강수 40%
      2023-07-31 00:00 / 흐림 / 24℃ ~ 31℃ / 강수 40%
      2023-07-31 12:00 / 흐림 / 24℃ ~ 31℃ / 강수 40%
      2023-08-01 00:00 / 구름많음 / 23℃ ~ 32℃ / 강수 30%
      2023-08-01 12:00 / 구름많음 / 23℃ ~ 32℃ / 강수 30%
      2023-08-02 00:00 / 흐림 / 24℃ ~ 31℃ / 강수 40%
      2023-08-03 00:00 / 흐림 / 23℃ ~ 30℃ / 강수 40%
      2023-08-04 00:00 / 흐림 / 24℃ ~ 30℃ / 강수 40%
    -----------------------------------------------------------
    
    */

    XmlApp06
    - 원격 (remote) 에서 xml 받아오기 실습
    • XMLDOM
      - 05 와 동일
    • XmlDomTest06.java
    /*============================================================================
       XmlDomTest06.java
       - 콘솔 기반 자바 프로그램
       - XML DOM 활용 → 원격(remote) XML 읽어내기
         ※ 기상청 날씨누리로부터 데이터 수신
         https://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109
    =============================================================================*/
    
    /*
    stnId=108	// 전국
    stnId=109	// 서울,경기
    stnId=105	// 강원
    stnId=131	// 충북 
    stnId=133	// 충남 
    stnId=146	// 전북
    stnId=156	// 전남
    stnId=143	// 경북
    stnId=159	// 경남
    stnId=184	// 제주특별자치도
    */
    
    package com.test.xml;
    
    import java.net.URL;	// check
    import java.util.Scanner;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.InputSource;	// check
    
    public class XmlDomTest06
    {
    	public static void main(String[] args)
    	{
    		Scanner sc = new Scanner(System.in);
    		String[] stnId = {"108", "109", "105", "131", "133", "146", "156", "143", "159", "184"};
    
    		do
    		{
    			try
    			{
    				DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    				DocumentBuilder builder = builderFactory.newDocumentBuilder();
    				Document xmlObj = null;
    				
    				// Local XML 파일인 경우...
    				/*
    				String url = "rss.xml"; xmlObj = builder.parse(url);
    				*/
    				
    				// Remote XML 파일인 경우
    				
    				// 외부의 입력값 처리
    				System.out.println("■■■ 기상청 중기 예보 ■■■");
    				System.out.println("--------------------------------");
    				System.out.println("1.전국     ");
    				System.out.println("2.서울,경기  ");
    				System.out.println("3.강원     ");
    				System.out.println("4.충북     ");
    				System.out.println("5.충남     ");
    				System.out.println("6.전북     ");
    				System.out.println("7.전남     ");
    				System.out.println("8.경북     ");
    				System.out.println("9.경남     ");
    				System.out.println("10.제주특별자치도");
    				System.out.println("--------------------------------");
    				System.out.print(">> 지역 선택(종료 0) : ");
    				
    				String m = sc.next();
    				if (m.equals("0"))
    					break;
    
    				String str = String.format("https://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=%s"
    						, stnId[Integer.parseInt(m)-1]);
    				
    				// 확인
    				//System.out.println("str : " + str);
    				//--==>> str : https://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109
    				//       (→ 2. 서울, 경기 선택 시)
    				//--==>> str : https://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=146
    				//       (→ 6. 전북 선택 시)
    				
    				// URL 객체 구성 → 절대 경로 지정 방식
    				URL url = new URL(str);
    				//-- URL 로 접근하겠다...
    				
    				// URL 로 접근하여 XML 의 데이터 내용 읽어오기 (스트림)
    				InputSource is = new InputSource(url.openStream());
    				//                               ---------------- 스트림
    				// ---------- 스트림으로 읽어올 수 있도록 모듈화 시켜놓은 것
    				//-- InputSource 를 통해서 스트림으로 XML 을 읽어오는 것
    				//-- 미리 다운받아두는 형태가 아니기 때문에
    				//-- 수신하고 있는 내용들을 처리를 해야한다는 것 확인!!!
    				xmlObj = builder.parse(is);
    				
    				//---------------------------- 이 이후로는 로컬과 동일!
    				
    				// 2. 루트 엘리먼트 접근
    				Element root = xmlObj.getDocumentElement();
    				//System.out.printf("%s%n", root.getNodeName());
    				//--==>> rss
    				
    				// 3-1. 타이틀 추출하기 
    				Node titleNode = root.getElementsByTagName("item").item(0);
    				Element titleElement = (Element)titleNode;
    				
    				System.out.printf("%s %n", XMLDOM.getText(titleElement, "title"));
    				//--==>> 전국 육상 중기예보 - 2023년 07월 25일 (화)요일 06:00 발표 
    				
    				// 3-2. 기상전망 추출하기
    				Node wfNode = root.getElementsByTagName("wf").item(0);
    				Element wfElement = (Element)wfNode;
    				
    				System.out.println("[기상 전망]======================================================");
    				System.out.printf("%s%n%n", wfElement.getTextContent().replaceAll("<br />", "\n"));
    				//--==>>
    				/*
    				[기상 전망]======================================================
    				○ (강수) 28일(금) 오후에 소나기, 29일(토) 오후~30일(일) 오전은 비가 오는 곳이 있겠습니다. 
    				○ (기온) 이번 예보기간 아침 기온은 23~26도로 평년(최저기온 22~24도)과 비슷하거나 조금 높겠고, 낮 기온은 28~33도로 평년(최고기온 29~33도)과 비슷하겠습니다.
    				○ (해상) 서해중부해상의 물결은 30일(일) 오후~31일(월) 오전, 8월 3일(목)은 1.5~2.5m, 그 밖의 날은 0.5~2.0m로 일겠습니다.
    				○ (주말 전망) 29일(토) 오후~30일(일) 오전은 비가 오겠습니다. 아침 기온은 23~25도, 낮 기온은 29~33도가 되겠습니다.  
    				
    				* 이번 예보기간에는 제5호 태풍(독수리)의 이동경로와 북태평양고기압의 확장정도에 따라 강수구역이 변경될 가능성이 있으니, 앞으로 발표되는 예보를 참고하기 바랍니다.
    				*/
    				
    				// 3-3. 도시별 기상 예보 추출하기
    				System.out.println("[육상 날씨]======================================================");
    				NodeList locationNodeList = root.getElementsByTagName("location");
    				for (int j=0; j<locationNodeList.getLength(); j++)
    				{
    					Node locationNode = locationNodeList.item(j);
    					Element locationElement = (Element)locationNode;
    					
    					System.out.printf("도시 : %s%n", XMLDOM.getText(locationElement, "city"));
    					System.out.println("----------------------------------------------------");
    					
    					NodeList dataNodeList = locationElement.getElementsByTagName("data");
    					for (int i=0; i<dataNodeList.getLength(); i++)
    					{
    						Node dataNode = dataNodeList.item(i);
    						Element dataElement = (Element)dataNode;
    						
    						System.out.printf("	%s / %s / %s℃ ~ %s℃ / 강수 %s%%%n"
    								, XMLDOM.getText(dataElement, "tmEf")
    								, XMLDOM.getText(dataElement, "wf")
    								, XMLDOM.getText(dataElement, "tmn")
    								, XMLDOM.getText(dataElement, "tmx")
    								, XMLDOM.getText(dataElement, "rnSt") );
    					}
    					
    					System.out.println("----------------------------------------------------");
    
    				}
    				
    			} 
    			catch (Exception e)
    			{
    				System.out.println(e.toString());
    			}
    			
    		} while (true);	// break 전까지 무한루프 구성
    		
    	}
    }
    
    // 실행 결과 
    /*
    전라남,북도 육상 중기예보 - 2023년 07월 25일 (화)요일 06:00 발표 
    [기상 전망]======================================================
    ○ (강수) 28일(금) 오후에 소나기가 오는 곳이 있겠습니다.
    ○ (기온) 아침 기온은 23~26도, 낮 기온은 29~33도로 평년(최저기온 23~25도, 최고기온 29~33도)과 비슷하겠습니다.
    ○ (해상) 바다의 물결은 서해남부와 남해서부 해상에서 1~2m로 일겠습니다.
    ○ (주말전망) 29일(토)~30일(일)은 흐리거나 구름많겠습니다. 아침 기온은 24~25도, 낮 기온은 28~33도가 되겠습니다.
    
    * 이번 예보기간에는 제5호 태풍(독수리)의 이동경로와 북태평양고기압의 확장정도에 따라 강수구역이 변경될 가능성이 있으니, 앞으로 발표되는 예보를 참고하기 바랍니다.
    
    [육상 날씨]======================================================
    도시 : 전주
    ----------------------------------------------------
    	2023-07-28 00:00 / 구름많음 / 24℃ ~ 33℃ / 강수 30%
    	2023-07-28 12:00 / 구름많고 소나기 / 24℃ ~ 33℃ / 강수 70%
    	2023-07-29 00:00 / 흐림 / 25℃ ~ 33℃ / 강수 40%
    	2023-07-29 12:00 / 흐리고 비 / 25℃ ~ 33℃ / 강수 60%
    	2023-07-30 00:00 / 구름많음 / 25℃ ~ 33℃ / 강수 30%
    	2023-07-30 12:00 / 흐림 / 25℃ ~ 33℃ / 강수 40%
    	2023-07-31 00:00 / 구름많음 / 25℃ ~ 33℃ / 강수 30%
    	2023-07-31 12:00 / 구름많음 / 25℃ ~ 33℃ / 강수 40%
    	2023-08-01 00:00 / 구름많음 / 25℃ ~ 33℃ / 강수 30%
    	2023-08-01 12:00 / 구름많음 / 25℃ ~ 33℃ / 강수 30%
    	2023-08-02 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
    	2023-08-03 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
    	2023-08-04 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
    ----------------------------------------------------
    도시 : 군산
    						:
    						:
    						:
    도시 : 부안
    ----------------------------------------------------
    	2023-07-28 00:00 / 구름많음 / 24℃ ~ 32℃ / 강수 30%
    	2023-07-28 12:00 / 구름많고 소나기 / 24℃ ~ 32℃ / 강수 70%
    	2023-07-29 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
    	2023-07-29 12:00 / 흐리고 비 / 25℃ ~ 32℃ / 강수 60%
    	2023-07-30 00:00 / 구름많음 / 24℃ ~ 32℃ / 강수 30%
    	2023-07-30 12:00 / 흐림 / 24℃ ~ 32℃ / 강수 40%
    	2023-07-31 00:00 / 구름많음 / 24℃ ~ 32℃ / 강수 30%
    	2023-07-31 12:00 / 구름많음 / 24℃ ~ 32℃ / 강수 40%
    	2023-08-01 00:00 / 구름많음 / 24℃ ~ 32℃ / 강수 30%
    	2023-08-01 12:00 / 구름많음 / 24℃ ~ 32℃ / 강수 30%
    	2023-08-02 00:00 / 흐림 / 24℃ ~ 32℃ / 강수 40%
    	2023-08-03 00:00 / 흐림 / 25℃ ~ 31℃ / 강수 40%
    	2023-08-04 00:00 / 흐림 / 25℃ ~ 32℃ / 강수 40%
    ----------------------------------------------------
    */

    XmlApp07
    - 마지막 콘솔 기반 Remote Xml 받아오기 실습
    - 뉴스 속보 Rss
    • XmlDomTest07.java
    /*==================================================
       XmlDomTest07.java
       - 콘솔 기반 자바 프로그램
       - XML DOM 활용 → 원격(remote) XML 읽어내기
         ※ jtbc로부터 뉴스 속보 데이터 수신
         https://fs.jtbc.co.kr/RSS/newsflash.xml
    ===================================================*/
    /*
    title> JTBC News
    link> https://fs.jtbc.co.kr/RSS/newsflash.xml
    description> 속보 RSS
    copyright> Copyright(C) JTBC All rights reserved.
    
    주요기사 --------------------------------------------
    title> 강아지 잃어버려놓고…영업 방해로 고소한다는 애견호텔|신유진 변호사 [상클 상담소]
    description> ■ 인용보도 시 프로그램명 'JTBC 상암동 클라스'를 밝혀주시....
    link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136591
    pubDate> 2023.07.25
    
    title> '짠당포' 김태원X임형준X박영진, 짠내 배틀 1인자는 누구?
    description> 연예계 짠내 아이콘 3인방 김태원, 임형준, 박영진이 '짠당포'에 출연한...
    link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136627
    pubDate> 2023.07.25
    						:
    */
    
    package com.test.xml;
    
    import java.net.URL;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.InputSource;
    
    public class XmlDomTest07
    {
    	public static void main(String[] args)
    	{
    		/*
    		1. 원격 XML 정보를 요청하고, 그 결과를 메모리에 로드
    		   → XML DOM 구성
    		   - DB 활용
    		   - DBF 활용
    		   - XML 로딩
    		2. 루트 엘리먼트 접근
    		3. 특정 하위 엘리먼트 접근
    		4. 텍스트 노드 접근
    		   → 필요한 데이터 획득
    		5. 결과 처리 (출력) 
    		*/
    		try
    		{
    			// ※ DOM (Document Object Model)
    			//    - XML 이나 HTML Document(문서)를 응용프로그램에서 사용하기 위한 API 규격 
    			//    - DOM 은 Document (문서)의 각 부분들을 객체(Object)로 표현한 API
    			
    			// ※ DOM 파서 (Document Object Model Parser)
    			//    - XML 문서를 읽고, 해석한 후
    			//      해석한 결과를 메모리에 DOM 객체 트리 구조로 생성시키는 파서(Parser)
    			//    - 원하는 데이터에 접근할 수 있도록 해주어 검색,수정,삭제 등을 수행할 수 있도록 지원
    			
    			// ※ 주로 사용되는 DOM 인터페이스(Document Object Model Interface)
    			//    - Node
    			//      : 모든 객체의 부모 인터페이스로서 공통적으로 기능하는 함수를 가진다.
    			//    - Node List
    			//      : 노드들을 리스트로 받아 처리하기 쉽도록 한 객체 유형 (일괄 처리)
    			//    - Document
    			//      : DOM (Document Object Model) 트리 구조의 최상위 노드로 XML 문서 자체를 의미한다.
    			//    - Element
    			//      : XML 문서의 엘리먼트에 해당하는 객체 유형
    			//    - Attr
    			//      : XML 문서의 Attribute 에 대항하는 객체 유형
    			//    - CharacterData
    			//      : XML 문서의 데이터에 해당하는 객체 유형
    			//    - Text
    			//      : 문자 데이터(내용)에 해당하는 객체 유형
    			
    			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    			//-- 『DocumentBuilderFactory』
    			//   DocumentBuilder (DOM Parser) 를 생성할 수 있도록 지원하는 Factory 클래스(객체)
    			DocumentBuilder builder = factory.newDocumentBuilder();
    			//-- 『DocumentBuilder』
    			//    DOM Parser 객체의 클래스
    			Document xmlObj = null;
    			
    			String str = "https://fs.jtbc.co.kr/RSS/newsflash.xml";
    			URL url = new URL(str); 
    			
    			InputSource is = new InputSource(url.openStream());
    			
    			xmlObj = builder.parse(is);
    			
    			// 루트 엘리먼트 접근
    			Element root = xmlObj.getDocumentElement();
    			
    			// 확인
    			//System.out.println(root.getNodeName());
    			//--==>> rss
    			
    			Element channelElement = (Element)root.getElementsByTagName("channel").item(0);
    			
    			System.out.printf("title > %s%n"
    					, XMLDOM.getText(channelElement,"title"));
    			System.out.printf("link > %s%n"
    					, XMLDOM.getText(channelElement,"link"));
    			System.out.printf("description > %s%n"
    					, XMLDOM.getText(channelElement,"description"));
    			System.out.printf("copyright > %s%n"
    					, XMLDOM.getText(channelElement,"copyright"));
    			System.out.println();
    			
    			System.out.println("주요 기사 ------------------------------------------");
    			
    			NodeList itemNodes = channelElement.getElementsByTagName("item");
    			for (int i=0; i<itemNodes.getLength(); i++)
    			{
    				Element itemElement = (Element)itemNodes.item(i);
    				
    				System.out.printf("%ntitle > %s%n"
    						, XMLDOM.getText(itemElement,"title"));
    				System.out.printf("description > %s%n"
    						, XMLDOM.getText(itemElement,"description"));
    				System.out.printf("link > %s%n"
    						, XMLDOM.getText(itemElement,"link"));
    				System.out.printf("pubDate > %s%n"
    						, XMLDOM.getText(itemElement,"pubDate"));
    			}
    		}
    		catch (Exception e)
    		{
    			System.out.println(e.toString());
    		}
    	}
    }
    // 실행 결과
    /*
    title > JTBC News
    link > https://fs.jtbc.co.kr/RSS/newsflash.xml
    description > 속보 RSS
    copyright > Copyright(C) JTBC All rights reserved.
    
    주요 기사 ------------------------------------------
    
    title > "이웃이잖아요" 아픈 택배기사에게 손 내민 아파트 주민들
    description >  [앵커]함께 택배 일을 하던 남편이 갑자기 가슴 통증을 호소해 병원에 가게 되면서 한 아파트 전체 배송이 중단되자, 부인은 주민들에게 '미안하다'고 연락을 돌렸습니다. 그런데 주민들은 불평 대신, 병원비 보태
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136715
    pubDate > 2023.07.25
    
    title > 7월 25일 (화) 뉴스룸 다시보기
    description >  이상민 행정안전부 장관에 대한 탄핵이 헌법재판소에서 만장일치로 기각됐습니다. 이태원 참사 이후의 발언들이 매우 부적절했고, 대응 초기에 이 장관이 시간을 허비했다는 의견도 있었습니다만, 재판관 9명 모두 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136734
    pubDate > 2023.07.25
    
    title > 살아갈 힘을 준 이웃들…택배기사 부부 "온정에 감사드려요"
    description >  [앵커]함께 택배 일을 하던 남편이 갑자기 가슴 통증을 호소해 병원에 가게 되면서 한 아파트 전체 배송이 중단되자, 부인은 주민들에게 '미안하다'고 연락을 돌렸습니다. 그런데 주민들은 불평 대신, 병원비 보태
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136739
    pubDate > 2023.07.25
    
    title > [오늘, 이 장면] 슛인가? 크로스인가?…모호함이 만든 자책골
    description >  < 보카 주니어스 2:1 뉴웰스 올드보이스|(아르헨티나 프로축구) >이건 누구의 골일까요?슛인지, 크로스인지 모를 어정쩡함이 '최고의 한 수'가 됐습니다.
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136735
    pubDate > 2023.07.25
    
    title > [날씨] 밤사이 또 비 내린다…수도권 최대 80㎜ 이상
    description >  오늘(25일)도 전국 곳곳에 폭염특보가 내려지면서 무더위가 계속됐습니다.습도가 높다 보니 내일, 최고 체감온도가 33도 이상까지 예상돼 몸으로 느끼는 더위는 더 강하겠습니다.오늘 늦은 밤부터 내일 새벽 사이 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136701
    pubDate > 2023.07.25
    
    title > 클로징
    description >  뉴스룸 저희가 준비한 소식은 여기까지입니다.시청해주신 여러분, 고맙습니다.
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136700
    pubDate > 2023.07.25
    
    title > "중국 축구에 수치 안겨"…'심판 뺨 때린' 감독, 결국 사과
    description >  레드카드를 꺼내자 심판의 뺨을 때린 랴오닝 선양 감독, 결국 고개를 숙였습니다."중국 축구에 수치를 안겼다"며 "징계를 달게 받겠다"고 했는데요.규정을 보면 최소 1년 출전 정지, 그리고 3500만원 정도의 벌금이
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136702
    pubDate > 2023.07.25
    
    title > 온몸으로 공 가리고 아픈 척…야구에서 연기가 필요할 때
    description >  < 볼티모어 3:2 필라델피아|미국 프로야구 >중견수의 멋진 다이빙 캐치 보시죠.그런데 옆에서 찍은 영상에 비밀이 숨어 있었는데요.글러브가 바닥에 부딪히자 공이 굴러나왔고, 볼티모어 중견수 힉스가 온몸으로 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136703
    pubDate > 2023.07.25
    
    title > "장갑 줄 잘 확인해야지!"…글러브 뚫고 통과한 야구공
    description >  < 클리블랜드 3:5 캔자스시티|미국 프로야구 >땅볼을 잡은 캔자스시티 유격수가 1루로 공을 던집니다.깔끔하게 아웃인가 싶었는데, 주자가 살았습니다.자세히 볼까요?이럴수가&hellip; 줄이 끊어지며, 공이 글러브
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136707
    pubDate > 2023.07.25
    
    title > '뒤숭숭한' 분위기 속 황선홍호 첫 소집…이강인 합류는?
    description >  [앵커]이강인은 과연 아시안게임 축구 대표팀에 합류할 수 있을까요? 우리 대표팀이 안고 있는 숙제이자, 팬들이 가장 궁금해하는 부분이기도 합니다. 황선홍 감독은 뭐라고 답했을까요?최종혁 기자가 전해드립니다
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136736
    pubDate > 2023.07.25
    
    title > 김하성, MLB 데뷔 '첫 멀티홈런'…발전 비결은 바로 '이것'
    description >  [앵커]그야말로 김하성의 역대급 시즌입니다. 이틀 전, 자신의 최다 홈런 기록을 갈아치우더니, 오늘(25일)은 빅리그 데뷔 후 처음으로 '멀티 홈런'도 기록했습니다.그 비결을 홍지용 기자가 보도합니다.[기자]< 피
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136708
    pubDate > 2023.07.25
    
    title > 7월 25일 (화) 뉴스5후 다시보기
    description >  이슈의 핵심에 가장 가까이 그리고 쉽게 다가갑니다. 오후의 뉴스 세포를 깨우는 뉴스5후 시작합니다. 헌법재판소가 이상민 행정안전부 장관에 대한 탄핵심판 청구를 기각했습니다. 이 장관은 곧바로 업무에 복귀했
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136654
    pubDate > 2023.07.25
    
    title > BTS 정국, 빌보드 정상 안착…높아진 차트 문턱에도 '올 킬'
    description >  [앵커]방탄소년단 BTS의 멤버, 정국의 신곡이 3개의 빌보드 차트에서 모두 1위에 올랐습니다. 빌보드 정상에 오른 한국 가수가 셋이 됐는데, 그룹 방탄소년단, 그리고 멤버 지민과 정국입니다.정재우 기자입니다.[
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136710
    pubDate > 2023.07.25
    
    title > "굿바이 파랑새" 머스크의 모험…'슈퍼앱' 탈바꿈 계획은 과연?
    description >  [앵커]소셜미디어 트위터가 그동안 써왔던 파랑새 로고를 버리고 알파벳 X를 새 로고로 쓰기로 했습니다. 트위터를 인수한 일론 머스크가 밝힌 대로 금융과 쇼핑까지 담아 사업을 확장하겠다는 건데, 성과 날지 지
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136709
    pubDate > 2023.07.25
    
    title > 기습도발 효과?…북, '전승절' 앞두고 심야 미사일 발사
    description >  [앵커]북한이 어젯밤 자정 무렵 단거리 탄도미사일을 발사했습니다. 그제는 새벽에 쏘더니 이번엔 심야를 노린 겁니다. 북한이 '전승절'이라고 부르는 정전협정 체결일을 앞두고 다양한 시간대를 이용해 기습 도발 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136716
    pubDate > 2023.07.25
    
    title > [단독] '안전등급 A' 받았는데도…서울여대 도서관 외벽 무너져
    description >  [앵커]서울 노원구의 서울여대에서 지난주 쏟아진 비로 도서관 외벽이 무너지고 기둥에 금이 가는 일이 벌어졌습니다. 저희가 확인해 보니, 올해 안전진단에서 가장 높은 등급을 받았는데도 이런 사고가 났습니다.
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136711
    pubDate > 2023.07.25
    
    title > [밀착카메라] 수해지역 누비는 커피 트럭…"더운 날 오아시스 같아"
    description >  [앵커]퍼부은 비로 큰 피해를 입은 이재민들에게 오아시스 같은 존재가 있습니다. 바로 시원한 커피와 음료를 아무런 대가 없이 나눠주는 '커피 트럭'입니다.40여년 전 비슷한 피해를 입었던 한 목사가 트럭을 몰고
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136713
    pubDate > 2023.07.25
    
    title > [인터뷰] 택배기사 부부 "아직 세상에 희망은 있구나 느껴"
    description >  ■ 인용보도 시 프로그램명 'JTBC 뉴스룸'을 밝혀주시기 바랍니다. 인터뷰의 저작권은 JTBC에 있습니다.■ 방송 : JTBC 뉴스룸 / 진행 : 한민용[앵커]주민들의 따뜻한 마음에 화답하듯 건강한 모습으로 다시 일터로
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136714
    pubDate > 2023.07.25
    
    title > '2차전지'만 붙으면 주가 폭등…"과열된 밈 주식" 우려도
    description >  [앵커]오늘(25일) 살펴볼 이슈는 주식입니다. 주식 조금이라도 관심 있으면, '에코프로'란 회사 다 알 겁니다. 1년 전 10만원 하던 주가가 오늘은 129만원이 됐습니다. 13배 올랐습니다. 이 회사는 전기차에 쓰이는
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136717
    pubDate > 2023.07.25
    
    title > [단독] 쓰러진 아내 두고 테니스 치러 간 남편…집안 곳곳엔 '핏자국'
    description >  [앵커]오늘(25일) 탐사보도 트리거는 가정폭력 문제를 집중 취재했습니다. 두 달 전 인천 강화도에서 가정폭력으로 의심되는 사건이 벌어졌습니다. 아내가 피를 흘린 채 바닥에 쓰러졌는데 남편은 아무 조치도 하지
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136721
    pubDate > 2023.07.25
    */
     */
    더보기

    ※ 내 풀이

    /*==================================================
       XmlDomTest07.java
       - 콘솔 기반 자바 프로그램
       - XML DOM 활용 → 원격(remote) XML 읽어내기
         ※ jtbc로부터 뉴스 속보 데이터 수신
         https://fs.jtbc.co.kr/RSS/newsflash.xml
    ===================================================*/
    /*
    title> JTBC News
    link> https://fs.jtbc.co.kr/RSS/newsflash.xml
    description> 속보 RSS
    copyright> Copyright(C) JTBC All rights reserved.
    
    주요기사 --------------------------------------------
    title> 강아지 잃어버려놓고…영업 방해로 고소한다는 애견호텔|신유진 변호사 [상클 상담소]
    description> ■ 인용보도 시 프로그램명 'JTBC 상암동 클라스'를 밝혀주시....
    link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136591
    pubDate> 2023.07.25
    
    title> '짠당포' 김태원X임형준X박영진, 짠내 배틀 1인자는 누구?
    description> 연예계 짠내 아이콘 3인방 김태원, 임형준, 박영진이 '짠당포'에 출연한...
    link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136627
    pubDate> 2023.07.25
    						:
    */
    
    package com.test.xml;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    
    public class XmlDomTest07
    {
    	public static void main(String[] args)
    	{
    		try
    		{
    			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    			DocumentBuilder builder = factory.newDocumentBuilder();
    			Document xmlObj = null;
    			
    			String url = "https://fs.jtbc.co.kr/RSS/newsflash.xml";
    			
    			xmlObj = builder.parse(url);
    			
    			Element root = xmlObj.getDocumentElement();
    			
    			System.out.printf("title > %s%n"
    					, ((Element)root.getElementsByTagName("title").item(0)).getTextContent());
    			System.out.printf("link > %s%n"
    					, ((Element)root.getElementsByTagName("link").item(0)).getTextContent());
    			System.out.printf("description > %s%n"
    					, ((Element)root.getElementsByTagName("description").item(0)).getTextContent());
    			System.out.printf("copyright > %s%n"
    					, ((Element)root.getElementsByTagName("copyright").item(0)).getTextContent());
    			System.out.println();
    			
    			System.out.println("주요 기사 ------------------------------------------");
    
    			NodeList itemNodeList = root.getElementsByTagName("item");
    			for (int i=0; i<itemNodeList.getLength(); i++)
    			{
    				Element itemElement = (Element)(itemNodeList.item(i));
    				System.out.printf("title > %s%n"
    						,XMLDOM.getText(itemElement, "title"));
    				System.out.printf("description > %s%n"
    						,XMLDOM.getText(itemElement, "description"));
    				System.out.printf("link > %s%n"
    						,XMLDOM.getText(itemElement, "link"));
    				System.out.printf("pubDate > %s%n"
    						,XMLDOM.getText(itemElement, "pubDate"));
    				
    				System.out.println();
    			}
    			
    		} 
    		catch (Exception e)
    		{
    			System.out.println(e.toString());
    		}
    	}
    }
    // 실행 결과
    /*
    title > JTBC News
    link > https://fs.jtbc.co.kr/RSS/newsflash.xml
    description > 속보 RSS
    copyright > Copyright(C) JTBC All rights reserved.
    
    주요 기사 ------------------------------------------
    title > 강아지 잃어버려놓고…영업 방해로 고소한다는 애견호텔|신유진 변호사 [상클 상담소]
    description >  ■ 인용보도 시 프로그램명 'JTBC 상암동 클라스'를 밝혀주시기 바랍니다. 저작권은 JTBC에 있습니다.■ 방송 : JTBC 상암동 클라스 / 진행 : 이가혁&middot;김하은[앵커]'상클 라이프' 시작합니다. 매주 화요일은 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136591
    pubDate > 2023.07.25
    
    title > '짠당포' 김태원X임형준X박영진, 짠내 배틀 1인자는 누구?
    description > 연예계 짠내 아이콘 3인방 김태원, 임형준, 박영진이 '짠당포'에 출연한다.오늘(25일 화요일) 밤 10시 10분에 방송되는 JTBC '짠당포'에는 김태원, 임형준, 박영진이 출연해 우열을 가리기 힘든 짠내 배틀을 벌이며 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136627
    pubDate > 2023.07.25
    
    title > '힙하게' 한지민X이민기X수호, 허당 히어로들의 코믹 폭격
    description > '힙하게' 한지민, 이민기, 수호가 범죄 잡고 웃음도 잡는다. 오는 8월 12일 첫 방송되는 JTBC 새 토일드라마 '힙하게'(연출 김석윤&middot;최보윤, 극본 이남규&middot;오보현&middot;김다희, 제작 스튜디오 피닉스&
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136626
    pubDate > 2023.07.25
    
    title > 침수 차량 관리 어떻게?…중고차 구매 시 유의할 점|박병일 자동차 정비 명장 [머니 클라스]
    description >  ■ 인용보도 시 프로그램명 'JTBC 상암동 클라스'를 밝혀주시기 바랍니다. 저작권은 JTBC에 있습니다.■ 방송 : JTBC 상암동 클라스 / 진행 : 이가혁[앵커]저 같은 경알못, 경제를 잘 알지 못하는 사람을 위한 당장
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136598
    pubDate > 2023.07.25
    
    title > 수컷 고릴라가 출산을?…사육사도 깜짝 놀란 이유가
    description >  고릴라 출산 지금 보시는 건 서부로랜드 고릴라입니다.밀렵과 서식지 파괴로 해마다 야생 개체수가 줄고 있는 멸종위기종인데요.최근 귀한 아기 고릴라가 탄생했는데, 사람들이 말도 안 된다며 깜짝 놀랐다고 합니
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136592
    pubDate > 2023.07.25
    
    title > 20층 높이서 멈춘 놀이기구…탑승객들 '공포의 30분'
    description >  놀이기구 사고 이번엔 호주 퀸즐랜드의 지역 축제 현장으로 가보겠습니다.지역 축제하면 빼놓을 수 없는 게 바로 놀이기군데요.그런데 아까부터 꼼짝도 하지 않는 게 뭔가 이상합니다.사실 지금 사고가 난 건데요.
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136595
    pubDate > 2023.07.25
    
    title > 불꽃놀이 대신…드론 800여 대 띄워 '여름밤의 낭만'
    description >  여름철 축제 현장이나 휴가철 바닷가를 가면 불꽃놀이 많이 볼 수 있죠?그런데 요즘은 이게 더 대세라고 합니다.신호에 맞춰 일제히 밤하늘로 날아오르는 무인항공기 드론들.마치 반딧불이처럼 형형색색의 불빛을 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136596
    pubDate > 2023.07.25
    
    title > 짧은 생애주기 마치고 자취 감춘 러브버그…모기 기승
    description >  < 자취 감춘 러브버그 >러브버그라고 불리는 붉은등우단털파리 한 번쯤은 보셨을 텐데요.성충이 된 후에는 암수가 함께 붙어다니기 때문에 '러브버그'라고 알려져 있습니다.지난달 기승을 부리던 이 '러브버그'가 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136600
    pubDate > 2023.07.25
    
    title > 히잡 안 쓴 여배우 포스터에…이란 정부 "영화제 중단"
    description >  < '히잡' 미착용에 영화제 중단 >히잡, 이슬람 여성들이 머리와 상반신을 가리기 위해 쓰는 두건의 일종이죠.특히 이란에서는 만 9세부터 여성은 히잡법에 따라 공공장소에서 히잡을 착용해야 하는데요. 위반할 경
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136602
    pubDate > 2023.07.25
    
    title > "앞좌석 차지 마세요" 요청했더니…맨발 올린 민폐남
    description >  < '내집처럼' 영화관 맨발 민폐남 >[기자]맨발로 영화를 보러 온 건가? 싶으실 텐데, 이를 뛰어넘는 민폐남이 있다고 해 누리꾼들의 공분을 사고 있습니다.사진을 함께 보시면, 영화관 좌석 등받이 위로 두 발이 빼
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136603
    pubDate > 2023.07.25
    
    title > '이런 게 진짜 명품아파트'…쓰러진 택배기사 울린 주민들
    description >  < 쓰러진 택배기사 울린 주민들 >[앵커]혹시 최근에 있었던 아파트 택배 대란이나 택배 갑질 같은 씁쓸한 사연일까요?[기자]이번에는 다행히도 마음 따뜻해지는 사연입니다.최근 배송업무 중 쓰러진 택배기사를 위
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136604
    pubDate > 2023.07.25
    
    title > '나가기 무섭다' 호신용품 불티…2030 남성 구매자 늘어
    description >  < "나가기 무섭다"' 호신용품 불티 >[기자]앞서 도시락있슈에서도 전해드린 신림동 흉기난동 사건이 누리꾼들 사이에서도 연일 화제가 되고 있습니다.대낮에 길거리에서 발생한 사건인 만큼 시민들의 불안감 또한 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136605
    pubDate > 2023.07.25
    
    title > "1년 뛰면 1조원"…사우디 알힐랄, 음바페에 거액 제시
    description >  < 1년 알바에 1조 챙겨가 >[기자]이강인 선수가 소속돼 있어 친숙한 팀이죠, 파리 생제르맹의 공격수 킬리안 음바페 얘기 가지고 왔습니다.사우디아라비아 프로축구 알힐랄이 음바페 영입을 위해 천문학적인 금액을
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136609
    pubDate > 2023.07.25
    
    title > "보호자 악성 민원에 회의감…소아과 문 닫습니다"
    description >  < 소아과 문 닫겠습니다 >[기자]먼저 사진 한장 보시죠. 임현택 대한소아청소년과의사회 회장이 자신의 페이스북에 사진을 올렸는데요, 의원 문닫겠습니다. 라는 제목으로 시작합니다. 14세 미만은 보호자를 동반해
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136611
    pubDate > 2023.07.25
    
    title > 신림동 흉기살해범에 "칼 버리세요"…경찰 존댓말 논란
    description >  < 13년 전에도 무차별 폭행 >[기자]서울 신림동에서 무차별 흉기를 휘두른 조 모씨가 과거에도 처음 보는 사람에게 소주병을 내리쳐 다치게 했던 것으로 드러났습니다. 지난 21일, 1명을 살해하고, 3명을 다치게 한
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136612
    pubDate > 2023.07.25
    
    title > '오송 참사' 관련 무더기 수사의뢰…'임시 제방' 부실 초점
    description >  < 무더기 수사의뢰 >[기자]'오송 지하차도 참사'와 관련해, 검찰이 충북도청과 도경찰청 등 정부기관 10 여곳을 전격 압수수색했습니다. 오송 지하차도 참사와 관련 있는 기관 대부분이 포함됐는데요, 하천 관리와 
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136613
    pubDate > 2023.07.25
    
    title > 7월 24일 (월) 뉴스룸 다시보기
    description >  14명이 희생된 오송 지하차도 참사의 책임을 가리는 작업이 본격적으로 시작됐습니다. 검찰은 오늘(24일), 충청북도 도청과 도경찰청 등 정부기관 10여 곳을 대대적으로 압수수색했습니다. 국무조정실도 "중대한 직
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136547
    pubDate > 2023.07.24
    
    title > "중대 직무유기"…국조실, 충북도·행복청 12명 수사의뢰
    description >  [앵커]국무조정실은 충북도와 행복청에도 '직무유기 혐의'가 있다며 12명을 무더기로 수사의뢰했습니다. 제방이 무너지고 물 찬 도로에 차들이 진입할 때까지 별다른 조치를 취하지 않은 점, 또 참사의 직접적 원인
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136543
    pubDate > 2023.07.24
    
    title > 김민재에 환호한 4만 5천명…'손흥민 단짝' 케인도 뮌헨행?
    description >  [민재 김! 뮌헨에 온 걸 환영합니다.]4만 5천명 관중이 환호합니다.김민재가 입단 뒤 처음으로 만난 홈팬들인데요, 투헬 감독과 함께 훈련도 했습니다.[김민재/바이에른 뮌헨 : 놀라운 경기장, 놀라운 선수들. 좋네
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136513
    pubDate > 2023.07.24
    
    title > 레드카드 받고 '심판 뺨 때린' 감독…격분해 실신까지
    description >  < 난징 4:0 랴오닝 선양|중국 프로축구 2부 리그 (어제) >옐로카드에 거칠게 항의하다, 레드카드를 받자 심판의 뺨을 때립니다.폭력을 쓴 사람, 중국 2부리그 랴오닝 선양의 감독인데요, 얼마나 격분했는지 실랑이
    link > https://news.jtbc.co.kr/article/article.aspx?news_id=NB12136512
    pubDate > 2023.07.24
    */
    728x90
Designed by planet-si