포스트의 제목은 현재 읽고 있는 책인 "JAVA8 IN ACTION"의 첫 목차입니다.


"JAVA8 을 눈여겨봐야 하는 이유 세번째 포스트" 로는 JAVA8 에 봐야할 추가된 개념 몇가지를 더 소개하고자 합니다.


1. 디폴트 메소드 (default method)


JAVA8 에서는 기존의 interface에 디폴트 메소드란 개념을 추가했습니다. "JAVA8 IN ACTION"의 내용에 따르면, 더 쉽게 변화할 수 있는 인터페이스를 만들 수 있도록 메소드를 추가했다고 합니다. (그러나 아마 stream의 개념을 기존 만들어진 collection 클래스들에 모두 추가할 수 없었던 문제가 가장 크기 않았을까요? interface에 메소드를 추가하면 모두 구현하던지 해야하니깐? ㅡㅡ^)


즉 이 메소드로 인하여, 미래의 변화에 유연하게 대처할 수 있게 되었습니다. (변화를 사랑하는 개발자가 됩시다.^^)  


사용방법은 interface에 default란 키워드를 붙여 사용할 수 있습니다. 이 default 메소드는 계속 함수형 프로그래밍에서 언급하던 동시실행에 대해서 안전합니다. 즉 이 개념을 사용하여 코드로 넘기는 함수로 많이 이용할 수 있을 것으로 보이네요.


다중상속의 문제가 있어보이지만 이를 피할 수 있는 방법이 있다고 합니다




2. Optional<T>


Optional<T>의 개념을 사용하여 NULL 예외를 피할 수 있다고 합니다. 이 객체는 값을 가지거나 안가질 수 있는 컨테이너 객체(이를테면 Collection 등..)로 값이 없는 상황을 명시적으로 처리 가능합니다. 


(즉 해당 기능으로 인하여, null에 대한 방어코드를 없앨 수 있기를 바랍니다.)




3. 구조적 패턴 매칭


객체지향 프로그래밍에서 극혐으로 하는 if-else-then 문제를 수학적으로 쉽게 명시할 수 있다고 합니다. (포스트 시, 업데이트 할 것)





자바 8 인 액션
국내도서
저자 : 라울-게이브리얼 우르마(RAOUL-GABRIEL URMA),마리오 푸스코(MARIO FUSCO),앨런 마이크로프트(ALAN MYCROFT) / 우정은역
출판 : 한빛미디어 2015.04.01
상세보기




반응형
Posted by N'

포스트의 제목은 현재 읽고 있는 책인 "JAVA8 IN ACTION"의 첫 목차입니다.


"JAVA8 IN ACTION"에서 언급하는 프로그래밍 개념은 크게 세가지 정도로 보고 있습니다.


1. 스트림 처리 

- 이번 포스트에서 이야기 할것


2. 동작 파라미터화 

이곳을 참고 -> 2016/07/21 - [개발이야기/함수형 프로그래밍] - JAVA8 을 눈여겨봐야 하는 이유1 (메서드에 코드를 전달하는 기법)


3. 병렬성과 공유되는 가변 데이터

- 이번 포스트에서 이야기 할것


"JAVA8 을 눈여겨봐야 하는 이유 두번째 포스트" 로는 스트림 처리를 하려 합니다.


현재 보고 있는 책인 "JAVA8 IN ACTION" 에서는 스트림API에 대하여 "데이터베이스 질의 언어에서 표현식을 처리하는 병렬 연산을 지원하는 API" 라 정의하였습니다. 이는 고수준언어에서 어떠한 질의를 표현하면, 저수준에서 최적의 방법을 실행함을 의미합니다. (SQL 역시 질의어만 잘쓰면, 알아서 데이터를 빠르게 찾아주죠? ㅎㅎ)


일단 스트림에 대하여 알아봅시다.

스트림은 한번에 한개씩 만들어지는 연속적인 데이터 항목들의 모임입니다.

모든 일들은 이 스트림 단위로 끊어져 명령을 수행을 하는데,보통 유닉스에서는 파이프를 이용해 이를 연결하여 작업을 할 수 있습니다. 스트림API는 이러한 유닉스의 파이프라인을 메소드로 만들 수 있게 해주는 것이라 볼 수 있을 것 같습니다. (즉 메소드로 한층 감싸, 쉽게 파이프질을 할 수 있다 ㅡㅡ^)


그렇다면 병렬은?

일단 스트림 API를 사용하면 스레드를 사용하지 않고도 병렬성을 가질 수 있다고 합니다. "JAVA8 IN ACTION"에서는 공짜로 병렬성을 가진다는 표현을 쓰고 있습니다. stream의 처리 방식은 먼저 큰 stream 자체를 작은 stream 단계(즉 병렬이 가능한 단계)까지 분할하여 병렬적으로 처리합니다.) 아래 사진과 같이 말이죠. (JAVA8 IN ACTION에서 그림 참고)



즉 기존 collection 방식은 데이터를 어떻게 저장하고, 접근하는가에 중점을 두었다면 stream은 어떻게 데이터를 계산하는가에 중점을 두었다고 볼 수 있습니다. (즉 이러한 for문에 의한 외부반복 대신 필요 시점에 연산되는 내부반복을 통해, 거대한 데이터를 효과적으로 처리할 수 있게 되었습니다.)


스트림을 사용하기 위해서는 코드로 넘길 메소드는 동시 실행에 있어서 안전해야 합니다. 이 뜻은 메소드 자체에 상태가 없어, 실행에 있어서, thread-safe 함을 의미한다고 볼 수 있습니다. 즉 넘기는 메소드 내부에서 공유된 데이터 목록을 건드리면 문제가 있을 수 있겠죠? (예를 들어 덧셈을 하는데, 중간 녀석을 지운다던지...) 

이 것은 기존의 sychronized 라는 비싼 비용을 어느정도 대체해 줄 수 있을 것 같습니다.


Stream API에 대한 포스팅은 이 곳에서부터...




자바 8 인 액션
국내도서
저자 : 라울-게이브리얼 우르마(RAOUL-GABRIEL URMA),마리오 푸스코(MARIO FUSCO),앨런 마이크로프트(ALAN MYCROFT) / 우정은역
출판 : 한빛미디어 2015.04.01
상세보기






반응형
Posted by N'


포스트의 제목은 현재 읽고 있는 책인 "JAVA8 IN ACTION"의 첫 목차입니다.


자바8의 업데이트가 가장 빛나는 이유 중 하나는 함수형프로그래밍을 할 수 있기 때문이라 할 수 있을 것 같습니다. 

이를 지원하기 위해 여러 문법이 추가되었고, 향후 해당 코드들이 많이 쓰일 수 있기 때문에 봐야할 것이라는 생각이 드네요.


안드로이드 (안드로이드 N은 된다고 합니다. ㅡㅡ^) 나, 현재 회사 내에서 사용하는 spring 프레임워크에서는 JAVA8을 사용하고 있지 않지만 향후 몇년 안에 소스 상에 있는 함수형 문법을 많이 보게 될지도 모르죠 ㅎㅎ .

(벌써 자바스크립트는 많이 나왔죠..) 


그러나 해당 문법들이 단순히 알고있던 JAVA 문법으로만 보고 해석하기엔 난해합니다. ㅡㅡ^ (쌩뚱맞는 문법들이 많네용.... 모르면 뭐하는 놈인지 몰라용)


다른 언어들에는 이미 함수형 프로그래밍과 관련된 것들이 나왔는데 (파이썬의 lambda 등...) 자바에서 이번 버전에 이를 지원해주니 한번 주의 깊게 봐야할 필요가 있습니다.


크게 봐야할 내용 중 첫번째는 "메소드에 코드를 전달하는 것"인데요. 

이 개념이 목차만 봤지만 함수형 프로그래밍의 가장 중요한 요소인 것 같아 먼저 적어봤습니다.


"메소드에 코드를 전달한다"는 내용은 생각보다 큽니다. 이는 단순히 코드의 간결성뿐만 아니라, 아랫단(스레드라던지, 메모리라던지...)의 문제를 쉽게 해결할 수 있는 것 처럼 보입니다.


일단 "메소드에 코드를 전달한다" 는 내용은 무슨말인지도 모르겠네요. 

조금 풀어서 설명하면, 여태까지 넘기던 파라미터, 즉 원시값(int, double)이나 참조값(인스턴스에의 참조 값) 외에 함수라는 자체 역시 코드화하여 넘기자는 이야기인데요. 

이러한 기능을 통해 우리는 동작 파라미터화(behavior parameterization) 를 쉽게 처리 할 수 있습니다.


말로하면 어려우니, 자바8의 예제를 조금보자면 


1
2
3
4
5
6
7
public class Apple {
    private String color;
 
    public String getColor(){
        return color;
    }
}
cs


다음과 같이 Apple 클래스를 정의하고, 이를 분류하기 위하여 GetFilterApple 이라는 함수를 정의했다고 합시당.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /**
     * 사과 객체를 분류하기 위한 함수
     * 
     * @param appleList
     * @return
     */
    public static List<Apple> GetFilterApple(List<Apple> appleList) {
        ArrayList<Apple> resultList = new ArrayList<>();
 
        for (Apple apple : appleList) {
            if ("green".equals(apple.getColor())) {
                resultList.add(apple);
            }
        }
 
        return resultList;
    }
cs


보기에는 단순해 보이는 코드이지만 여러 요구사항에 따라 필터로 하자는 조건이 늘어날 수 있습니다. 

(ㅡㅡ^ 변화를 사랑하는 개발자가 됩시다..)


그때마다 우리는 분류조건을 늘릴 것인가요?  

(선택지가 두개정도 보이네요...)


1. copy&paste


잘하는 것... 


각 메소드의 존재 이유는 해당 역할을 하기 위한 것이니, 위의 GetFilterApple 이라 하지말고,

GetFilterAppleForColor, GetFilterAppleForHeavy 등을 만들고 조건에 맞는 것을 Set으로 넘기면 되지 않나요? 


아래와 같이요..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /**
     * 사과 객체를 분류하기 위한 함수
     * 
     * @param appleList
     * @param wannaColor
     * @return
     */
    public static List<Apple> GetFilterApple(List<Apple> appleList, Set<String> wannaColor) {
        ArrayList<Apple> resultList = new ArrayList<>();
 
        for (Apple apple : appleList) {
            if (wannaColor.contain(apple.getColor())) {
                resultList.add(apple);
            }
        }
 
        return resultList;
    }
cs



명확한 해결일 수 있지만, copy&paste의 단점이라 할 수 있는, 한곳에 문제가 생기면 모두 변경해야한다. 아니 좋은 것 같네요....  


또한 이를 위해 끊임없는 메소드 를 정의해야할 것 같아 보입니다.



2. 일을 조금 더 추상화해보자.


일단 GetFilterApple이 filter라는 역할을 한다는 것에 중점을 맞출 때 변경될만한 부분은 필터 조건입니다. 이를테면 이 놈 -> "green".equals(apple.getColor())


이 부분을 추상화하고,  필요할 때마다 구체화시켜주면 해결될 문제자나요. 

OOP 에 많이 나오는 건데.. 


변하는 부분과 변하지 않는 부분을 분리하자.


맞습니다. 저 원리는 객체지향 개발론 책 한번이라도 봤으면 있는 원리 중 하나입니다.. 


이를 테면 다음과 같이 작업해 볼 수 있을 것 같네요.


사과를 분류하기 위한 인터페이스를 정의하고,


1
2
3
4
5
6
7
8
9
10
/**
 * 사과를 분류하기 위한 인터페이스
 * 
 * @author Doohyun
 *
 */
public interface AppleFilterAble {
    public boolean isContain(Apple apple);
}
 
cs


위에서 작성한 GetFilterApple이 해당 인터페이스를 사용하도록 하게 할게요. 이렇게 말이죠..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /**
     * 사과 객체를 분류하기 위한 함수
     * 
     * @param appleList
     * @param appleFilter
     * @return
     */
    public static List<Apple> GetFilterApple(List<Apple> appleList, AppleFilterAble appleFilter) {
        ArrayList<Apple> resultList = new ArrayList<>();
 
        for (Apple apple : appleList) {
            if (appleFilter.isContain(apple)) {
                resultList.add(apple);
            }
        }
 
        return resultList;
    }
cs


해당 메소드의 호출은 다음과 같이 익명 클래스를 정의하면 변화에 유연할 수 있을 것 같아 보이는 군요. 아래처럼 말이죠.


1
2
3
4
5
6
GetFilterApple(inventory, new AppleFilterAble(){
    @Override
    public boolean isContain(Apple apple){
        return "green".equals(apple.getColor());
    }
});
cs


좋은 방법입니다. 


하지만 이를 위해 인터페이스를 만들어야하고, 인스턴스를 생성해야합니다. 

귀차니즘......



3. 함수형 프로그래밍을 해보자


함수형프로그래밍에서 언급하는 메서드에 코드를 전달하는 기법의 대표적인 것은 함수 자체도 값으로써, 넘기자는 것입니다. 


여태까지 자바에서는 이를 지원하지 않았고, 자바8에서 비로소 지원을 할 수 있게 되었는데 이렇게 사용이 가능합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Apple {
    private String color;
 
    public String getColor(){
        return color;
    }
 
    /**
     * 초록색 사과인가를 분류하고자 함.
     * 
     * @param apple
     * @return
     */
    public static boolean IsGreenApple(Apple apple) {
        return "green".equals(apple.getColor());
    }
}
 
cs


다음과 같이 IsGreenApple이라는 static 메소드를 선언 후, 

GetFilterApple을 JAVA8에서 새롭게 추가된 Predicate interface를 이용하여 다음과 같이 작성해줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /**
     * 사과 객체를 분류하기 위한 함수
     * 
     * @param appleList
     * @param p
     * @return
     */
    public static List<Apple> GetFilterApple(List<Apple> appleList, Predicate<Apple> p) {
        ArrayList<Apple> resultList = new ArrayList<>();
 
        for (Apple apple : appleList) {
            if (p.test(apple)) {
                resultList.add(apple);
            }
        }
 
        return resultList;
    }
cs


"JAVA8 IN ACTION"에 따르면, 


Predicate 란 수학에서 true나 false를 반환하는 함수로써, 


이를 사용하는 것이 표준적인 방식이라 합니다. 또한 boolean을 Boolean으로 변환하지 않으니 효율적입니다.


호출은 아래와 같이 진행을 합니다.


1
GetFilterApple(inventory, Apple::IsGreenApple);
cs


매우 simple해졌네요. filter 역할을 해주는 static 메소드를 정의해 사용하면 됩니다. 

그런데, 함수형 프로그래밍을 하려면 static 메소드를 정의해야 하나요? 그렇다면 일일이 static 메소드를 또 만들어야하는데.. 1번의 copy&paste와 같은 문제가 있지 않나요?



4. 람다표현식


변화에 유연하게 대처하기 위해, 2번에서는 익명 클래스를 선언하여 해야할 일을 정의했습니다. 함수형에서는 이를 위해 존재하는 것이 람다 표현식이라 할 수 있을 것 같네요.


다음과 같이 말이죠.


1
GetFilterApple(inventory, (Apple a) -> "green".equals(a.getColor()))
cs


즉 한번만 사용될 메소드를 위해 함수를 정의하지 않고, 간단히 람다로 처리할 수 있습니다. 그러나 식 자체가 복잡해 진다면 함수를 따로 선언하고 넘기는 것을 권장합니다.


* 이로써 나오는 효과들은?


1. 코드가 간결해지고, interface 등을 따로 만들지 않아도 됩니다. (귀찮은 일이 줄었다..) 

이 것은 객체로 메소드를 감지 않고, 자바8의 메소드 레퍼런스 문법을 이용하여 직접 보낼 수 있음을 의미합니다.


2. 함수를 값으로써, 넘기겠다는 말은 프로그램이 실행되는 동안 컴포넌트 간 상호작용이 일어나지 않는다는 뜻이 될 수 있다고 합니다. 

이는 후에 stream에서 언급할 주제로, 병렬성에서 이득을 볼 수 있는 여지를 줄 수 있는 것 처럼 보이네요. 

(자바8에서의 병렬성에 대한 이야기는 매우 중요합니다.) 




Functional_tutorial.zip




자바 8 인 액션
국내도서
저자 : 라울-게이브리얼 우르마(RAOUL-GABRIEL URMA),마리오 푸스코(MARIO FUSCO),앨런 마이크로프트(ALAN MYCROFT) / 우정은역
출판 : 한빛미디어 2015.04.01
상세보기





반응형
Posted by N'

요새 SNS에서 팔로우한 개발자 커뮤니티 이야기를 들어보면, 

함수형 프로그래밍이라는 개발 방법론이 많이 나오는 것을 봤습니다.


대학교 때 (아직도 대학생이지만 ㅡㅡ^), 객체 지향 개발론을 가르치시던 

교수님도 언급을 했었고, 멤버십 시절에도 이야기만 들어봤지만 

애써, 이리바쁘다 저리바쁘다 외면했었습니다. (좋은 것은 아닌데....)


최근 SNS에서 이를 풍자한 만화의 비유에 따르면

"나무를 도끼로 잘 베던 나무꾼이 전기톱이 나왔음에도 불구하고 전기톱을 사용하질 못하는 이야기" 가 있었는데요.


풍문으로는 "객체지향과 상극이다" 라는 이야기도 있었지만 함수형 프로그래밍이 자바8에 도입이 되었고, 향후 코딩하는 것으로 밥먹고 살아야한다면 한번쯤을 거쳐가야할 것이 아닌가라는 생각이 들었습니다.


실제 전기톱의 역할이 되어줄 지는 모르겠으나, 천천히 하자는 시작으로 책 한 권 "JAVA8 IN ACTION"을 바탕으로 블로그를 해보며 전기톱 설명서를 읽어보려 합니다.


많이 읽어주십쇼 (꾸벅)


자바 8 인 액션
국내도서
저자 : 라울-게이브리얼 우르마(RAOUL-GABRIEL URMA),마리오 푸스코(MARIO FUSCO),앨런 마이크로프트(ALAN MYCROFT) / 우정은역
출판 : 한빛미디어 2015.04.01
상세보기

 


반응형
Posted by N'

0. "대한항공 박 사무장 징계 시도한 적 없다…단순 안내 메일" similar words 

   ---> 원본
   ---> 대한항공
   ---> 진단서
   ---> 사무장
   ---> 박

1. "[뉴욕개장] 스위스 최저환율제 폐지 충격 벗어나 상승 개장" similar words 

   ---> 대비
   ---> 지수
   ---> 전장
   ---> 상승
   ---> 증시

2. "강남, 데뷔 초 공개 나 진짜 잘생겼네 스타일 변신" similar words 

   ---> 강남
   ---> 모습
   ---> 머리
   ---> 나 혼자 산다
   ---> 데뷔

3. "美 12월 cpi 전월比 0.4% ↓…6년래 최대 하락폭" similar words 

   ---> 대비
   ---> 기록
   ---> 하락
   ---> 전월
   ---> 이후

4. "성인 adhd 증상 주의력 결핍 과잉 행동 장애 방치하면 나타나" similar words 

   ---> adhd
   ---> 성인
   ---> 환자
   ---> 사람
   ---> 원인

5. "美 12월 산업생산 전월比 0.1% ↓…월가 예상 0.2%" similar words 

   ---> 생산
   ---> 감소
   ---> 산업
   ---> 지난해
   ---> 대비

6. "나혼자 산다 강남, 데뷔초 모습공개 ‘세련된 댄디남’…반전" similar words 

   ---> 강남
   ---> 모습
   ---> 혼자
   ---> 나
   ---> 머리

7. "영화 ‘국제시장’ 열풍…‘변호인’ 넘을까?" similar words 

   ---> 변호인
   ---> 국제시장
   ---> 관객
   ---> 영화
   ---> 시대

8. "[뉴스쇼 판] 전재국, 고가 그림 숨겨뒀다 덜미…檢 구상권도 행사" similar words 

   ---> 검찰
   ---> 재국
   ---> 시공사
   ---> 작품
   ---> 그림

9. "공운위, 장석효 가스공사 사장 해임결의" similar words 

   ---> 사장
   ---> 해임
   ---> 이상
   ---> 대통령
   ---> 사실

10. "[미리보는 동아일보]거리로 내몰린 ‘베이비붐 세대’" similar words 

   ---> 대통령
   ---> 전직
   ---> 거리
   ---> 스위스
   ---> 가치

11. "[뉴스쇼 판] 1달러=1유로 시대 임박…유럽 여행객 급증" similar words 

   ---> 유럽
   ---> 유로화
   ---> 여행
   ---> 가치
   ---> 여행객

12. "[뉴스쇼 판] 육군 일병, 총기 소지한채 근무지 이탈…일대 수색" similar words 

   ---> 일병
   ---> 수색
   ---> 목포
   ---> 군
   ---> 근무

13. "안산 인질범 김상훈, 딸 성폭행시도까지? 경악" similar words 

   ---> 김상훈
   ---> 작은딸
   ---> a
   ---> 서울신문
   ---> 인질범

14. "野 자문단 야당 대안 못 돼...국민들 답답" similar words 

   ---> 국민
   ---> 정당
   ---> 회의
   ---> 자문
   ---> 구성

15. "이준석 미숙한 일처리 반성…공식 경로로 보고 김무성 대표에 전달" similar words 

   ---> 청와대
   ---> 위원
   ---> 대표
   ---> 음
   ---> 그

16. "美 12월 산업생산 전월比 0.1% 감소..예상 웃돌아" similar words 

   ---> 생산
   ---> 산업
   ---> 감소
   ---> 지난해
   ---> 전월

17. "뉴욕 증시, 장 초반 약세..12월 cpi 대폭 하락" similar words 

   ---> 하락
   ---> 대비
   ---> 폭
   ---> cpi
   ---> 발표

18. "가스공사 장석효 사장, 결국 해임될 듯" similar words 

   ---> 해임
   ---> 사장
   ---> 보수
   ---> 동안
   ---> 건의안

19. "항공 유류할증료 한달만에 74%, 항공사 울상 소비자 활짝" similar words 

   ---> 할증료
   ---> 유류
   ---> 하락
   ---> 항공
   ---> 노선

20. "대통령 지지율 35%, 취임 후 최저치…도대체 왜?" similar words 

   ---> 평가
   ---> 대통령
   ---> 부정
   ---> 지지
   ---> p

21. "열차 속 노란풍선" similar words 

   ---> 열차
   ---> 세월호
   ---> 용산역
   ---> 서울
   ---> 청년

22. "北 김여정 키 오빠와 엇비슷…엄마 유전자?" similar words 

   ---> 김여정
   ---> 김정은
   ---> 키
   ---> 북한
   ---> 공장

23. "김재원 세금도둑 발언 “세월호 진상규명위 세금도둑 작태” 무슨 이유?" similar words 

   ---> 도둑
   ---> 세금
   ---> 규명
   ---> 진상
   ---> 급

24. "檢, ‘조사위 사건’ 수임 민변 변호사 수사" similar words 

   ---> 변호사
   ---> 조사
   ---> 위
   ---> 민변
   ---> 규명

25. "‘차량의전 로비 의혹’ 김광두는 누구?" similar words 

   ---> 동영상
   ---> 대통령
   ---> 자세
   ---> 국가
   ---> 정치부

26. "문재인 “민심을 보라” vs 박지원 “당심 내편”" similar words 

   ---> 후보
   ---> 당
   ---> 문재인
   ---> 박지원
   ---> 인터뷰

27. "새정치연합 첫 국정자문회의…올드보이 귀환" similar words 

   ---> 인터뷰
   ---> 새정치민주연합
   ---> 야당
   ---> 국민
   ---> 국정자문회의

28. "박 대통령 지지율 35%…무너진 ‘콘크리트층’" similar words 

   ---> 지지
   ---> 대통령
   ---> 기자회견
   ---> 평가
   ---> 신년

29. "함안군, 구제역·ai 방역 활동에 총력" similar words 

   ---> 사진
   ---> 영상
   ---> 뉴시스
   ---> 함안군
   ---> 제보

30. "우크라 대통령 동부지역으로 새 전투부대 배치" similar words 

   ---> 대통령
   ---> 우크라이나
   ---> 지역
   ---> 징집
   ---> 반군

31. "이준석 고자질이라는 비판도 달게 받겠다" similar words 

   ---> 위원
   ---> 비대
   ---> 생각
   ---> 음
   ---> 전달

32. "만나고 싶었습니다" similar words 

   ---> 세월호
   ---> 서울
   ---> 용산역
   ---> 열차
   ---> 기자

33. "파리 우체극 인질극 종료…인명피해 없어 (상보)" similar words 

   ---> 현지
   ---> 시간
   ---> 김
   ---> 인질
   ---> 인질극

34. "어린이집 가해 교사 영장…뺨 가격 2건-베개 투척 등 추가 폭력 4건 추가" similar words 

   ---> a
   ---> 아동
   ---> 추가
   ---> 어린이집
   ---> 경찰

35. "[나침반]르네상스 서울 호텔 “딸기 뷔페 문턱 낮췄어요. 맘껏 즐기세요”" similar words 

   ---> 딸기
   ---> 호텔
   ---> 서울
   ---> 디저트
   ---> 르네상스

36. "“종말의 날처럼…” 中 ‘최악 스모그’ 한반도 습격" similar words 

   ---> 스모그
   ---> 베이징
   ---> 중국
   ---> 이번
   ---> 공항

37. "2015 청춘열차 출발합니다" similar words 

   ---> 서울
   ---> 용산역
   ---> 세월호
   ---> 열차
   ---> 청년

38. "북한, 범죄자 소탕 ‘100일 전투’ 왜?" similar words 

   ---> 김정은
   ---> 탁
   ---> 북한
   ---> 동영상
   ---> 자세

39. "농해양수산위원회, 합천군 구제역 방역현장 방문" similar words 

   ---> 사진
   ---> 뉴시스
   ---> 영상
   ---> com
   ---> newsis

40. "2015 청춘열차 출발합니다" similar words 

   ---> 열차
   ---> 서울
   ---> 용산역
   ---> 세월호
   ---> 청년

41. "2015 청춘열차 출발합니다" similar words 

   ---> 열차
   ---> 세월호
   ---> 서울
   ---> 용산역
   ---> 시간

42. "세월호 청춘열차" similar words 

   ---> 세월호
   ---> 사진
   ---> 열차
   ---> 유가족
   ---> 팽목항

43. "박상학 “전단 살포 신중히 고려”…北 화답할까?" similar words 

   ---> 북한
   ---> 살포
   ---> 전단
   ---> 통일부
   ---> 대표

44. "미끄럼틀부터 생리대까지…軍이 다 만드는 北" similar words 

   ---> 북한
   ---> 군부대
   ---> 미끄럼틀
   ---> 제작
   ---> 자체

45. "北 “영화 ‘인터뷰’ 막아라”…미얀마에 압력" similar words 

   ---> 복제
   ---> 인터뷰
   ---> 단속
   ---> 본
   ---> 미얀마

46. "미국 12월 소비자물가 0.4%↓…6년간 최대폭 하락" similar words 

   ---> 지난해
   ---> cpi
   ---> 상승
   ---> 폭
   ---> 하락

47. "뜻깊은 기차여행 나선 세월호 세대들" similar words 

   ---> 열차
   ---> 세월호
   ---> 서울
   ---> 용산역
   ---> 청년

48. "2015 청춘열차 발대식" similar words 

   ---> 서울
   ---> 세월호
   ---> 용산역
   ---> 열차
   ---> 청년

49. "어린이집 가해 교사 영장-추가 학대 확인, 따귀 때리고 밀고…너무 사랑해서" similar words 

   ---> 추가
   ---> 경찰
   ---> 확인
   ---> 어린이집
   ---> 교사

50. "미국 12월 소비자물가 0.4%↓…6년 만에 최대폭 하락" similar words 

   ---> 하락
   ---> 소비자물가지수
   ---> 미국
   ---> 폭
   ---> 전

51. "용산역에 모인 세월호 세대들" similar words 

   ---> 서울
   ---> 용산역
   ---> 세월호
   ---> 열차
   ---> 기자

52. "양미리 효능, 숙취 해소-골다공증 예방-다이어트 도움" similar words 

   ---> 양미리
   ---> 효능
   ---> 때
   ---> 효과
   ---> 칼슘

53. "흰개미 집어먹은 이태임… 경악" similar words 

   ---> 흰개미
   ---> 이태임
   ---> 장동우
   ---> sbs
   ---> kr

54. "어린이집 가해 교사 영장, 폭행은 아니다?" similar words 

   ---> 추가
   ---> 어린이집
   ---> a
   ---> 교사
   ---> 학대

55. "보험사 가계대출 74조원, 보험사 아파트담보대출 상품 주목해 금리비교 해 봐야..." similar words 

   ---> 대출
   ---> 금리
   ---> 담보
   ---> 비교
   ---> 보험사

56. "정치권, 뒤늦게 “안심 보육”…법안은 낮잠" similar words 

   ---> 어린이집
   ---> 보육
   ---> 대표
   ---> 대책
   ---> 의원

57. "아파트담보대출금리비교 사이트 “변동금리·고정금리 담보대출상품 맞춤 설계”" similar words 

   ---> 금리
   ---> 대출
   ---> 은행
   ---> 담보
   ---> 변동

58. "연이은 기준금리 동결에 아파트담보대출 금리비교 문의 늘어" similar words 

   ---> 대출
   ---> 금리
   ---> 비교
   ---> 주택
   ---> 담보

59. "프랑스서 또 인질극…유럽 ‘테러와의 전쟁’" similar words 

   ---> 테러
   ---> 파리
   ---> 인질극
   ---> 프랑스
   ---> 준비

60. "화성탐사선 `비글2호` 11년 만에 화성표면서 확인" similar words 

   ---> 화성
   ---> 표면
   ---> 착륙
   ---> 비글 2호
   ---> 영국

61. "김재원 세월호 세금도독 발언 눈길… 우리 국회가 절대 용서 안해" similar words 

   ---> 세금
   ---> 도둑
   ---> 김재원
   ---> 위
   ---> 규명

62. "맥아피 창업자 소니해킹 북한소행 아니다 단언" similar words 

   ---> 북한
   ---> 피
   ---> 맥아
   ---> 주장
   ---> fbi

63. "용산역에 모인 세월호 세대들" similar words 

   ---> 세월호
   ---> 서울
   ---> 용산역
   ---> 열차
   ---> 기자

64. "미국 작년 물가상승률 6년래 최저" similar words 

   ---> 미국
   ---> 하락
   ---> 물가
   ---> 대비
   ---> 기록

 

 

 

중복되는 url을 걸러내고, 기사 대비 주요단어를 추출할 수 있었다. 비교적 만족할 수 있는 결과이다.

 


0. "대한항공 박 사무장 징계 시도한 적 없다…단순 안내 메일" similar doucments 


1. "[뉴욕개장] 스위스 최저환율제 폐지 충격 벗어나 상승 개장" similar doucments 


2. "강남, 데뷔 초 공개 나 진짜 잘생겼네 스타일 변신" similar doucments 

  --> 나혼자 산다 강남, 데뷔초 모습공개 ‘세련된 댄디남’…반전 [0.7353]


3. "美 12월 cpi 전월比 0.4% ↓…6년래 최대 하락폭" similar doucments 

  --> 미국 작년 물가상승률 6년래 최저 [0.4622]

  --> 뉴욕 증시, 장 초반 약세..12월 cpi 대폭 하락 [0.4675]

  --> 미국 12월 소비자물가 0.4%↓…6년간 최대폭 하락 [0.5228]


4. "성인 adhd 증상 주의력 결핍 과잉 행동 장애 방치하면 나타나" similar doucments 


5. "美 12월 산업생산 전월比 0.1% ↓…월가 예상 0.2%" similar doucments 

  --> 美 12월 산업생산 전월比 0.1% 감소..예상 웃돌아 [0.7586]


6. "나혼자 산다 강남, 데뷔초 모습공개 ‘세련된 댄디남’…반전" similar doucments 

  --> 강남, 데뷔 초 공개 나 진짜 잘생겼네 스타일 변신 [0.7353]


7. "영화 ‘국제시장’ 열풍…‘변호인’ 넘을까?" similar doucments 


8. "[뉴스쇼 판] 전재국, 고가 그림 숨겨뒀다 덜미…檢 구상권도 행사" similar doucments 


9. "공운위, 장석효 가스공사 사장 해임결의" similar doucments 

  --> 가스공사 장석효 사장, 결국 해임될 듯 [0.6112]


10. "[미리보는 동아일보]거리로 내몰린 ‘베이비붐 세대’" similar doucments 


11. "[뉴스쇼 판] 1달러=1유로 시대 임박…유럽 여행객 급증" similar doucments 


12. "[뉴스쇼 판] 육군 일병, 총기 소지한채 근무지 이탈…일대 수색" similar doucments 


13. "안산 인질범 김상훈, 딸 성폭행시도까지? 경악" similar doucments 


14. "野 자문단 야당 대안 못 돼...국민들 답답" similar doucments 

  --> 새정치연합 첫 국정자문회의…올드보이 귀환 [0.5232]


15. "이준석 미숙한 일처리 반성…공식 경로로 보고 김무성 대표에 전달" similar doucments 

  --> 이준석 고자질이라는 비판도 달게 받겠다 [0.6923]


16. "美 12월 산업생산 전월比 0.1% 감소..예상 웃돌아" similar doucments 

  --> 뉴욕 증시, 장 초반 약세..12월 cpi 대폭 하락 [0.4590]

  --> 美 12월 산업생산 전월比 0.1% ↓…월가 예상 0.2% [0.7586]


17. "뉴욕 증시, 장 초반 약세..12월 cpi 대폭 하락" similar doucments 

  --> 美 12월 산업생산 전월比 0.1% 감소..예상 웃돌아 [0.4590]

  --> 美 12월 cpi 전월比 0.4% ↓…6년래 최대 하락폭 [0.4675]


18. "가스공사 장석효 사장, 결국 해임될 듯" similar doucments 

  --> 공운위, 장석효 가스공사 사장 해임결의 [0.6112]


19. "항공 유류할증료 한달만에 74%, 항공사 울상 소비자 활짝" similar doucments 


20. "대통령 지지율 35%, 취임 후 최저치…도대체 왜?" similar doucments 

  --> 박 대통령 지지율 35%…무너진 ‘콘크리트층’ [0.5375]


21. "열차 속 노란풍선" similar doucments 

  --> 만나고 싶었습니다 [0.9594]

  --> 2015 청춘열차 발대식 [0.9803]

  --> 용산역에 모인 세월호 세대들 [0.9713]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 세월호 청춘열차 [0.4536]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9796]

  --> 용산역에 모인 세월호 세대들 [0.9713]


22. "北 김여정 키 오빠와 엇비슷…엄마 유전자?" similar doucments 


23. "김재원 세금도둑 발언 “세월호 진상규명위 세금도둑 작태” 무슨 이유?" similar doucments 

  --> 김재원 세월호 세금도독 발언 눈길… 우리 국회가 절대 용서 안해 [0.8310]


24. "檢, ‘조사위 사건’ 수임 민변 변호사 수사" similar doucments 


25. "‘차량의전 로비 의혹’ 김광두는 누구?" similar doucments 


26. "문재인 “민심을 보라” vs 박지원 “당심 내편”" similar doucments 


27. "새정치연합 첫 국정자문회의…올드보이 귀환" similar doucments 

  --> 野 자문단 야당 대안 못 돼...국민들 답답 [0.5232]


28. "박 대통령 지지율 35%…무너진 ‘콘크리트층’" similar doucments 

  --> 대통령 지지율 35%, 취임 후 최저치…도대체 왜? [0.5375]


29. "함안군, 구제역·ai 방역 활동에 총력" similar doucments 

  --> 농해양수산위원회, 합천군 구제역 방역현장 방문 [0.6797]

  --> 세월호 청춘열차 [0.4357]


30. "우크라 대통령 동부지역으로 새 전투부대 배치" similar doucments 


31. "이준석 고자질이라는 비판도 달게 받겠다" similar doucments 

  --> 이준석 미숙한 일처리 반성…공식 경로로 보고 김무성 대표에 전달 [0.6923]


32. "만나고 싶었습니다" similar doucments 

  --> 2015 청춘열차 발대식 [0.9765]

  --> 용산역에 모인 세월호 세대들 [0.9877]

  --> 열차 속 노란풍선 [0.9594]

  --> 2015 청춘열차 출발합니다 [0.9756]

  --> 2015 청춘열차 출발합니다 [0.9756]

  --> 2015 청춘열차 출발합니다 [0.9756]

  --> 세월호 청춘열차 [0.4604]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9594]

  --> 용산역에 모인 세월호 세대들 [0.9877]


33. "파리 우체극 인질극 종료…인명피해 없어 (상보)" similar doucments 


34. "어린이집 가해 교사 영장…뺨 가격 2건-베개 투척 등 추가 폭력 4건 추가" similar doucments 

  --> 어린이집 가해 교사 영장-추가 학대 확인, 따귀 때리고 밀고…너무 사랑해서 [0.7072]

  --> 어린이집 가해 교사 영장, 폭행은 아니다? [0.6953]


35. "[나침반]르네상스 서울 호텔 “딸기 뷔페 문턱 낮췄어요. 맘껏 즐기세요”" similar doucments 


36. "“종말의 날처럼…” 中 ‘최악 스모그’ 한반도 습격" similar doucments 


37. "2015 청춘열차 출발합니다" similar doucments 

  --> 만나고 싶었습니다 [0.9756]

  --> 2015 청춘열차 발대식 [0.9765]

  --> 용산역에 모인 세월호 세대들 [0.9877]

  --> 열차 속 노란풍선 [0.9594]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 세월호 청춘열차 [0.4604]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9594]

  --> 용산역에 모인 세월호 세대들 [0.9877]


38. "북한, 범죄자 소탕 ‘100일 전투’ 왜?" similar doucments 


39. "농해양수산위원회, 합천군 구제역 방역현장 방문" similar doucments 

  --> 세월호 청춘열차 [0.4965]

  --> 함안군, 구제역·ai 방역 활동에 총력 [0.6797]


40. "2015 청춘열차 출발합니다" similar doucments 

  --> 만나고 싶었습니다 [0.9756]

  --> 2015 청춘열차 발대식 [0.9765]

  --> 용산역에 모인 세월호 세대들 [0.9877]

  --> 열차 속 노란풍선 [0.9594]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 세월호 청춘열차 [0.4604]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9594]

  --> 용산역에 모인 세월호 세대들 [0.9877]


41. "2015 청춘열차 출발합니다" similar doucments 

  --> 만나고 싶었습니다 [0.9756]

  --> 2015 청춘열차 발대식 [0.9765]

  --> 용산역에 모인 세월호 세대들 [0.9877]

  --> 열차 속 노란풍선 [0.9594]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 2015 청춘열차 출발합니다 [1.0000]

  --> 세월호 청춘열차 [0.4604]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9594]

  --> 용산역에 모인 세월호 세대들 [0.9877]


42. "세월호 청춘열차" similar doucments 

  --> 만나고 싶었습니다 [0.4604]

  --> 2015 청춘열차 발대식 [0.4496]

  --> 용산역에 모인 세월호 세대들 [0.4661]

  --> 열차 속 노란풍선 [0.4536]

  --> 2015 청춘열차 출발합니다 [0.4604]

  --> 농해양수산위원회, 합천군 구제역 방역현장 방문 [0.4965]

  --> 2015 청춘열차 출발합니다 [0.4604]

  --> 2015 청춘열차 출발합니다 [0.4604]

  --> 함안군, 구제역·ai 방역 활동에 총력 [0.4357]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.4536]

  --> 용산역에 모인 세월호 세대들 [0.4661]


43. "박상학 “전단 살포 신중히 고려”…北 화답할까?" similar doucments 


44. "미끄럼틀부터 생리대까지…軍이 다 만드는 北" similar doucments 


45. "北 “영화 ‘인터뷰’ 막아라”…미얀마에 압력" similar doucments 


46. "미국 12월 소비자물가 0.4%↓…6년간 최대폭 하락" similar doucments 

  --> 미국 12월 소비자물가 0.4%↓…6년 만에 최대폭 하락 [0.5420]

  --> 美 12월 cpi 전월比 0.4% ↓…6년래 최대 하락폭 [0.5228]


47. "뜻깊은 기차여행 나선 세월호 세대들" similar doucments 

  --> 만나고 싶었습니다 [0.9594]

  --> 2015 청춘열차 발대식 [0.9803]

  --> 용산역에 모인 세월호 세대들 [0.9713]

  --> 열차 속 노란풍선 [0.9796]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 2015 청춘열차 출발합니다 [0.9594]

  --> 세월호 청춘열차 [0.4536]

  --> 용산역에 모인 세월호 세대들 [0.9713]


48. "2015 청춘열차 발대식" similar doucments 

  --> 만나고 싶었습니다 [0.9765]

  --> 용산역에 모인 세월호 세대들 [0.9886]

  --> 열차 속 노란풍선 [0.9803]

  --> 2015 청춘열차 출발합니다 [0.9765]

  --> 2015 청춘열차 출발합니다 [0.9765]

  --> 2015 청춘열차 출발합니다 [0.9765]

  --> 세월호 청춘열차 [0.4496]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9803]

  --> 용산역에 모인 세월호 세대들 [0.9886]


49. "어린이집 가해 교사 영장-추가 학대 확인, 따귀 때리고 밀고…너무 사랑해서" similar doucments 

  --> 어린이집 가해 교사 영장…뺨 가격 2건-베개 투척 등 추가 폭력 4건 추가 [0.7072]

  --> 어린이집 가해 교사 영장, 폭행은 아니다? [0.6861]


50. "미국 12월 소비자물가 0.4%↓…6년 만에 최대폭 하락" similar doucments 

  --> 미국 12월 소비자물가 0.4%↓…6년간 최대폭 하락 [0.5420]


51. "용산역에 모인 세월호 세대들" similar doucments 

  --> 만나고 싶었습니다 [0.9877]

  --> 2015 청춘열차 발대식 [0.9886]

  --> 열차 속 노란풍선 [0.9713]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 세월호 청춘열차 [0.4661]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9713]

  --> 용산역에 모인 세월호 세대들 [1.0000]


52. "양미리 효능, 숙취 해소-골다공증 예방-다이어트 도움" similar doucments 


53. "흰개미 집어먹은 이태임… 경악" similar doucments 


54. "어린이집 가해 교사 영장, 폭행은 아니다?" similar doucments 

  --> 어린이집 가해 교사 영장-추가 학대 확인, 따귀 때리고 밀고…너무 사랑해서 [0.6861]

  --> 어린이집 가해 교사 영장…뺨 가격 2건-베개 투척 등 추가 폭력 4건 추가 [0.6953]


55. "보험사 가계대출 74조원, 보험사 아파트담보대출 상품 주목해 금리비교 해 봐야..." similar doucments 

  --> 아파트담보대출금리비교 사이트 “변동금리·고정금리 담보대출상품 맞춤 설계” [0.7973]

  --> 연이은 기준금리 동결에 아파트담보대출 금리비교 문의 늘어 [0.8306]


56. "정치권, 뒤늦게 “안심 보육”…법안은 낮잠" similar doucments 


57. "아파트담보대출금리비교 사이트 “변동금리·고정금리 담보대출상품 맞춤 설계”" similar doucments 

  --> 보험사 가계대출 74조원, 보험사 아파트담보대출 상품 주목해 금리비교 해 봐야... [0.7973]

  --> 연이은 기준금리 동결에 아파트담보대출 금리비교 문의 늘어 [0.8305]


58. "연이은 기준금리 동결에 아파트담보대출 금리비교 문의 늘어" similar doucments 

  --> 보험사 가계대출 74조원, 보험사 아파트담보대출 상품 주목해 금리비교 해 봐야... [0.8306]

  --> 아파트담보대출금리비교 사이트 “변동금리·고정금리 담보대출상품 맞춤 설계” [0.8305]


59. "프랑스서 또 인질극…유럽 ‘테러와의 전쟁’" similar doucments 


60. "화성탐사선 `비글2호` 11년 만에 화성표면서 확인" similar doucments 


61. "김재원 세월호 세금도독 발언 눈길… 우리 국회가 절대 용서 안해" similar doucments 

  --> 김재원 세금도둑 발언 “세월호 진상규명위 세금도둑 작태” 무슨 이유? [0.8310]


62. "맥아피 창업자 소니해킹 북한소행 아니다 단언" similar doucments 


63. "용산역에 모인 세월호 세대들" similar doucments 

  --> 만나고 싶었습니다 [0.9877]

  --> 2015 청춘열차 발대식 [0.9886]

  --> 용산역에 모인 세월호 세대들 [1.0000]

  --> 열차 속 노란풍선 [0.9713]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 2015 청춘열차 출발합니다 [0.9877]

  --> 세월호 청춘열차 [0.4661]

  --> 뜻깊은 기차여행 나선 세월호 세대들 [0.9713]


64. "미국 작년 물가상승률 6년래 최저" similar doucments 

  --> 美 12월 cpi 전월比 0.4% ↓…6년래 최대 하락폭 [0.4622]

 


문서 대비 문서에서 유사결과값 포착 이것역시 만족할 수 있는 결과이다.

 


비음수행렬 인수분해를 사용했었지만, 교체한 알고리즘이 성능이 더 좋기 때문에 이 알고리즘으로 밀고 나가도록 한다.

반응형
Posted by N'

LSA를 활용하여, 뉴스를 클러스터링 하는 모듈을 만들어 테스트해보았다.

결과는 다음과 같다.

네이버 뉴스 무작위 20개 클러스터링 결과

 


0. "‘가족끼리 왜이래’ 삼각관계 끝났지만.. 서강준 “남지현 못 잊어”"와의 유사 문서 

1. "진짜 사나이-여군특집2 이다희, 몸무게 54kg 깜짝 공개"와의 유사 문서 

2. "k팝스타 이봉연 jyp 낙점, 박혜수는 탈락"와의 유사 문서 

3. "[포토]걸스데이 혜리, 예뻐졌다"와의 유사 문서 

4. "‘아빠를 빌려드립니다’ 방민아, 충무로 차세대 유망주 발견!"와의 유사 문서 
  --> ‘아빠를 빌려드립니다’ 방민아 “우리 아버지도 애교 많았으면…” [0.6510]
  --> 아빠를 조재윤 민아와 러브라인 원했지만 거절 당해 [0.4000]

5. "‘아빠를 빌려드립니다’ 방민아 “우리 아버지도 애교 많았으면…”"와의 유사 문서 
  --> ‘아빠를 빌려드립니다’ 방민아, 충무로 차세대 유망주 발견! [0.6510]
  --> 아빠를 조재윤 민아와 러브라인 원했지만 거절 당해 [0.5136]

6. "[포토] 방민아-서강준 웸드라마 연기도전"와의 유사 문서 

7. "아빠를 조재윤 민아와 러브라인 원했지만 거절 당해"와의 유사 문서 
  --> ‘아빠를 빌려드립니다’ 방민아, 충무로 차세대 유망주 발견! [0.4000]
  --> ‘아빠를 빌려드립니다’ 방민아 “우리 아버지도 애교 많았으면…” [0.5136]

8. "파리 주요 관광지, 테러 후 관광객 줄어 한산"와의 유사 문서 

9. "패네타 전 미 국방장관 “파리 테러는 ‘정보 실패’ 결과”"와의 유사 문서 

10. "미국 부통령 자택 총격…테러 가능성에 긴장 고조"와의 유사 문서 

11. "갤럭시노트4 s-lte skt·kt서 우선 출시"와의 유사 문서 
  --> skt, 광고가처분 첫 심리날 갤노트4 s-lte 출시 [0.6147]

12. "skt, 광고가처분 첫 심리날 갤노트4 s-lte 출시"와의 유사 문서 
  --> 갤럭시노트4 s-lte skt·kt서 우선 출시 [0.6147]

13. "[핫 키워드] 13월의 세금, 김향기 김새론, 추자현 중국, 강예원 민낯, 삼시세끼 손호준"와의 유사 문서 

14. "[대종상 맛보기] 충무로 이끌★…여진구·임시완·김새론·김향기 ④"와의 유사 문서 

15. "슈퍼맨이 돌아왔다 삼둥이 김 먹방 하정우와 비교해보니?"와의 유사 문서 
  --> 슈퍼맨이 돌아왔다 삼둥이, 썰매 끌다 지친 송일국 걱정 남다른 효심 [0.4848]

16. "슈퍼맨이 돌아왔다 삼둥이, 썰매 끌다 지친 송일국 걱정 남다른 효심"와의 유사 문서 
  --> 슈퍼맨이 돌아왔다 삼둥이, 송일국 자유로운 영혼이라 걱정이다 [0.6649]
  --> 슈퍼맨이 돌아왔다 삼둥이 김 먹방 하정우와 비교해보니? [0.4848]

17. "슈퍼맨이 돌아왔다 삼둥이, 송일국 자유로운 영혼이라 걱정이다"와의 유사 문서 
  --> 슈퍼맨이 돌아왔다 삼둥이, 썰매 끌다 지친 송일국 걱정 남다른 효심 [0.6649]

18. "나탈리 포트만도 스티븐 잡스 영화 거절…디카프리오·크리스찬 베일 등 잇따른 고사"와의 유사 문서 
  --> 크리스찬 베일, 스티븐 잡스 영화 하차..부담 느껴 [0.5290]

19. "크리스찬 베일, 스티븐 잡스 영화 하차..부담 느껴"와의 유사 문서 
  --> 나탈리 포트만도 스티븐 잡스 영화 거절…디카프리오·크리스찬 베일 등 잇따른 고사 [0.5290]

 

내용에 대해선 나중에 포스트.

반응형
Posted by N'

String 자료형을 다루기 위한 좋은 방법 중 하나로 정규표현식이라는 것이 있다.

본 프로젝트에서 사용된 크롤러에서도 들어가 있는 내용 중 하나로, 한번 만들어두면 계속해서 사용할 수 있기 때문에 이 곳에 적어두도록 한다.

%s는 지우고 싶은 태그명을 넣어두면 된다. 방법에 따라 분류하도록 한다.

1. html의 태그를 지울때 내용까지 지우는 방식이다. 예를들어 <script>asd</script> 로 되어 있다면, asd까지 모두 지우게 된다. 이러한 것은 html문서 중 내용으로써, 쓸모없는 부분인 script나 style태그 등 뷰의 값을 지정해둔 부분을 모두 지워버리기에 유용하다.

<( )*%s([^>])*?> -> <%s>로 치환

<( )*(/)( )*?%s()*> -> </%s>로 치환

 

--> 여기까지 태그안의 내용이 있는 부분을 모두 지우고, 태그만으로 남길수 있다. 예를 들면, <style weight = ...........>로 되어있다면, <style>로 변환한다.

 

(<%s>)([^(<%s>\.</%s>)])*?(</%s>) 는 공백으로 치환

(<%s>)[\s\S]*?(</%s>) 역시 공백으로 치환

 

2. html의 태그를 지울때 태그만 지우는 방식이다.  <script>asd</script> 로 되어 있다면, asd만 남기게 된다.

<( )*%s([^>])*?> -> <%s>로 치환

<( )*(/)( )*?%s()*> -> </%s>로 치환

 

태그를 정규화후, 해당 태그만을 지우면 된다. <%s>, </%s> 등으로 공백으로 삭제.

 

 

3. 기타 쓰레기 값 삭제 부분이다. 파싱을 하다보면, html태그가 아닌 이상한 value가 존재한다. 이런 것들은 휴리스틱하게 찾아보는 수밖에 없는 것 같다.


(&deg(;)|&lt(;)|&gt(;)|&quot(;)|&nbsp(;)|&amp(;)|&lsquo(;)

|&rsquo(;)|&#160(;)|&ldquo(;)|&rdquo(;)|&sdot(;))


를 공백으로 바꿔주면 된다.

 

 

4. 개행문자 삭제 부분이다.

(\\r){1,20}|(\\n){1,20}|(\\r\\n){1,20} {1,20}는 은 해당 그룹 (???)의 출현빈도에 따라서 적용할 수 있는 방법이다. 

 

5. 모든 태그를 지우는 방법은 다음과 같다.

<(/)?([a-zA-Z0-9]*)(\\s[a-zA-Z0-9]*=[^>]*)?(\\s)*(/)?>

 

남은 응용은 정규표현식과 관련된 내용을 찾아서 응용하길 바란다.


반응형
Posted by N'

Crawler란 웹에서 지속적으로 데이터를 수집해오는 녀석을 말한다.

어떤 Root Url을 기초로 문서를 파싱 그 안의 Url을 수집해서 계속적으로 문서를 파싱하며, 그 안에서 유용한 내용은 따로 DB에 저장해두도록 한다.

본 프로젝트에서는 수많은 자료가 필요하기 때문에 하둡의 분산 저장 시스템인 hdfs에 저장하도록 하였다. 

Crawler의 기본적인 구조는 총 세가지 단계로 나누어 진다. (Master, Slave, Monitor)

Master는 기본적으로 Url을 지속적으로 수집해주는 녀석, Slave는 데이터를 파싱하고, 그 안에서 Url이 있으면, 어떠한 공유 저장공간으로 보내게 된다.

본 프로젝트에서는 네이버의 뉴스 Url을 가져오도록 하기 때문에 위의 과정까지는 필요없지만, 마스터가 Url을 지속으로 수집해 메모리상에 구현된 큐에 넣어주고, 슬레이브는 이 큐에서 데이터를 빼내 수집하도록 하는 구조이다.

 

아래는 발표 때 썼던 PT자료.(아래 그림을 본다면 바로 짜볼 수 있지 않을까? ㅋ)

 

본 프로젝트 백업을 위해 소스는 첨부. ㅋ

CrawlerEnd.zip

 

 

 

반응형
Posted by N'

언어는 java

파이썬으로 하는게 좋지만, 쉽다고 안시켜주는 분위기니 java로 개발하도록 한다.

틀은 모두 개발된 상태지만, 이번주 내로 뽑을 수 있을까 ㅋ

반응형
Posted by N'

텀프로젝트만 낼 수 있는 공모전을 위한 동영상.

Data base 프로그래밍 수업 때 깔짝깔짝 만들었는데 완성되니 보기 좋은 것 같아요.

 

반응형

'개발이야기 > 기타 개발' 카테고리의 다른 글

UML을 그려보자! ㅡㅡ^  (0) 2016.08.27
Posted by N'