brunch

매거진 Open Imagine

You can make anything
by writing

C.S.Lewis

by 라일러플 May 14. 2019

오픈소스 알 테스트 (R Test)

알은 R이다. R is Poet. R is Poem.


오픈소스 알 테스트 (R Test)

황현민





알은 R을 말한다. R은 매우 유명한 데이터 추출 및 분석/통계 툴이다.


이번엔 알 테스트다. 

오늘 온라인 상에 특정 데이터를 실시간으로 추출해서 데이터를 수집하고 분석하는 것을 연습했다.


예를 들어, 시스템을 구축하고 데이터를 이관했다고 했을 때, 화면 상에 데이터가 제대로 나타나는지를 확인하려면 일일히 화면을 클릭해 보아야 할 것이며, 동시에 화면 상에 데이터를 추출하여 별도로 편리하고 정확하게 검증을 하는 것이 바람직 하겠다. 물론, 정확한 데이터가 Input 되었으니까 output이 될 터이다. 데이터 전환팀에서 이미 검증하고 확인했을 터이지만, 최종 검수 차원에서 화면 중심으로 데이터 검증을 수행한다. 일종의 Validation인 셈이다. 이럴 때도 R은 유용하게 쓰일 수 있을 지를 확인하고 싶었다. R 서버가 아닌 로컬 PC에서 작동하므로 매우 느리지만, 관련 가능성을 확인했다.


R 테스트를 위해,

사이버문학광장 사이트의 '문학집배원 > 시배달' 을 대상으로 전체 목록을 추출하는 것을 테스트했다. 추출 후 데이터 분석/통계를 위한 R 코딩은 아직 실력이 안되서 추출만 하고, 추출한 데이터를 엑셀로 불러와서 수작업으로 데이터를 정련하고 최종 목록화하였다. 테스트 삼아 기본 몇 가지 데이터만 목록화해 보았다. (이 정도만 해도 어디냐!)


내가 추출하고자 하는 R 소스 코드는 아래와 같이 매우 간단하다. R은 정말 위대하다. 그래서 R은 매우 시적이다. R은 Poem이다. 아무튼, 기본 코드는 대강 이러하다.


# 문장 시배달 제목과 시인명, 날짜, 집배원명 등 추출하기

For (i in 140000:141500) {

url <- paste0("https://munjang.or.kr/archives/", i)

munjangSrc <- read_html(url)

rankNewsTag <- html_nodes(munjangSrc, ".entry-header")

print(i)

rankNewsText <- html_text(rankNewsTag)

print(rankNewsText)

write.table(rankNewsText, file="munjang.txt", row.names = FALSE, append = TRUE) 

}


그런데, 중간에 문제가 발생했다. (일정한 시퀀스로 입력되지 않고 어느 시점부터는 천 단위 간격으로 입력되었다.) For로 몇 만 건을 처리하는데 꽤 시간이 걸린다는 점이다. 실제 최종 데이터는 많아야 600건 정도일 뿐인데... 그래서 ~141500까진 R로 추출하고 R이 실행되는 동안 나머진 수작업으로 정리했다.


그렇게 작업을 해서 정리하고 보니까, 역시나 무언가 저절로 분석이 된다는 것이었다. 대강 아래와 같이 요약이 된다. (일부 수작업을 해야만 했기에 총 편수와 총 시인수는 오차가 있을 수 있음을 알려드립니다.)

      

2017년도 데이터가 없다는 것

금일 기준, 총 13년 동안 총 596 편의 시가 독자들에게 배달되었다는 것

관련 소개된 시인의 수는 총 335명이라는 것


위 3가지만 가지고도 대강의 분석이 용이했다. 2017년 데이터가 없다는 것은 당시 역사적으로 매우 위태로운 시기였단 점에서 서비스가 중단되었던 것이란 점을 추측할 수 있다. 그리고 총 시배달 편수와 시인의 수가 편차가 크다는 점도 알 수 있었다. 총 335명 중 143명(43%)의 시인이 2 편 이상의 시가 배달되었다는 것이다. 즉, 총 596편 중 404편(68%)이 한 시인 당 2편 이상의 시가 배달되었다는 사실을 확인할 수 있었다.


최고 많은 편 수는 7편으로 한 명의 시인이 해당되었으며, 그 다음 6편으로 두 명의 시인, 그 다음 5편으로 여덞 명의 시인, 그 다음 4 편으로 스물두 명의 시인, 그 다음 3편으로 서른다섯 명의 시인, 그 다음 2편으로 일흔네 명의 시인, 나머지 1편으로 일백구십이 명의 시인으로 나타났다. 대한민국의 시인은 2만명을 넘어선다고 하는데, 13년 동안 335명의 시인만 소개된 셈이다. (수치는 약간의 오차가 있을 수 있음) 물론, 일주일에 한 편의 시를 시배달 하므로 한 달에 4~5편씩으로 계산하면 해마다 52편 정도다. 13년이면 676편이 최대다. 현실적으로 많은 시인의 시를 배달한다는 것은 불가능한 일이다. 그래도 43% 시인이 2편 이상의 시를 중복으로 배달하였기에 43%에 해당할 수 있었던 시인들을 더 알릴 수 있는 기회는 놓쳐버렸다는 사실도 분명 인지는 해야 할 듯 싶다.


관련, 추가적으로 시인별 등단년도, 등단지, 수상내역, 직업, 활동지역, 최종학력, 전공과목 등의 정보를 추가 수집하여 정리한다면 보다 더 새로운 정보를 분석해 낼 수도 있으리라. 혹은 예측 가능한 것에 대한 증명을 정확히 해낼 수도 있으리라.


무엇보다 해당 시배달 시를 모두 꼼꼼히 읽고 싶다. 해당 시 한 편에 많은 정성을 기울여 영상으로 만들었다. 고로 시 한 편을 선정하는데도 많은 노력이 들었을 것이다. 한마디로 좋은 시들만 모아놓았단 말이다. 여러 편 보았는데 좋았다. 그냥 텍스트로만 읽어도 괜찮을 듯 싶다.


R 테스트를 하다가,

우연히 데이터 추출 후 알게 된 정보를 공유드리오니 참조하시기 바랍니다.


알은 R이다. R is Poet.












#R #Rtest #알테스트 #R은시다 #R은시인이다 #RisPoet #R은데이터분석통계툴이다 #오픈소스 #Rtool



작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari