자바로 MySQL(혹은 MariaDB)에 대량의 데이터를 넣는 방법이 2가지 존재한다. 하나는 Batch 기능을 활용하여 Insert를 하는 방법, 나머지 하나는 Load 명령어를 활용하여 넣는 방법. 본 포스팅은 2가지 방법에 대해서 설명해 보고 장단점에 대해 말해보도록 하겠다. add Batch 방법 Java에서 DB 데이터를 핸들링 할 수 있는 PreparedStatement 같은 라이브러리에 Batch 하는 방식을 제공하는 기능이 있다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263Connection conn = null;Prepare..
인트로 프로그램에 대한 기본 지식이 없는 분들도 이해할 수 있는 R언어 강의를 표방하며, 첫번째 강의 주제를 데이터 기본 구조로 잡아봤었습니다. 그러나 사실 변수가 무엇인지 상수가 무엇인지 정확히 개념을 모르는 분들은 이 부분부터 막힐 수 있다고 생각이 들어서 오늘은 좀 더 기본적인 변수에 대해서 알아보도록 하겠습니다. 변수의 사전적 의미 변수에서 사용되는 한자 변은 "변하다 변(變)" 입니다.즉, 값이 계속 바뀐다는 것이죠. 쉽게 생각하면, 어떤 값이 계속 바뀔 수 있다면 변수로 지정을 하면 됩니다. 어떤 사람의 키라든지, 성적, 월급 이 세상의 거의 대부분의 값은 계속 변하기 때문에 사실 변수가 아닌 것을 찾기가 힘이 들지 모르겠네요. 변수의 반대말은 상수인데, 파이(3.14), 광복절(8.15) 이..
그냥 인트로 이 강의는 R언어를 처음 접해보거나, 아직 R에 대해서 익숙치 않는 사람들을 위한 강의입니다. 프로그래밍에 숙달하지 않는 분들을 타겟으로 포스팅을 할 예정이라, 긴 설명이 들어갈 수 있으니 프로그래밍이 어느정도 숙달 되신 분들은 주저리 주저리 단 긴말들은 읽지 마시고, 빠르게 넘어가주세요 :) 강의 주제로 R을 잡은 이유는, 데이터 분석을 하는 사람이 R을 할 줄 모르면 솔직히 이건 아니지라는 생각도 들었고, 주변 비개발자 분들중에서 파이선이나 자바는 어렵더라도 R은 어느정도 이해하는 모습을 보고, 그래도 R이 타 언어보다 편하구나라는 것을 느껴서 데이터 분석의 강의를 R로 정했습니다. 현재, 텐서플로우, 블록체인도 포스팅하고 있으나, R도 매주 최소 하나씩은 작성해서 병행해보도록 하겠습니다..
자바에서는 사이트 데이터를 읽기 위해서 기본적으로 라이브러리들을 제공하고 있다. 그 중 2가지의 대표적인 방식을 포스팅에 적어보고자 한다. 사이트 데이터를 읽는다는 것은, 특정 URL(ex: www.naver.com)을 입력하였을 때, HTML(Hyper Text Markup Language), JSON(JavaScript Object Notation), XML(Extensible Markup Language), OpenAPI 등의 데이터를 읽어 들인다는 것을 의미한다. 이렇게 다른 사이트의 데이터를 읽어와서 자신만의 데이터베이스를 구축하는 경우가 많은데, 물론 이것을 서비스 하는 것은 법적으로 문제가 있을 수 있겠지만 이 데이터로 무언가를 분석하거나, 2차적인 아이디어를 구축하는 경우가 많다. Type..
비트코인에서 쓰고 있기도 한 해싱 알고리즘인 SHA-256은, 안전한 해시 알고리즘인 Secure Hash Algorithm에서 따온 명칭이다. 이 함수는 미국 국가안보국(NSA)에서 1993년 처음 설계했으며, 미국 국가 표준으로 지정되었다. 1993년에 SHA-0 버전을 시작으로, SHA-1은 1995년에 나왔고, SHA-2는 2001년 SHA-3은 2012년에 나오게 된다. 여기서 설명할 SHA-256은 SHA-2 중에 하나로서, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 패밀리를 보유하고 있다. SHA-2 includes significant changes from its predecessor, SHA-1. The SHA-2 fam..
다른 컴퓨터에서는 에러가 발생하지 않았지만, 회사에 있는 컴퓨터에서 파이썬에 konlpy(파이썬 한국어 형태소 분석기)를 호출하기 위해 필요한 jpype라는 라이브러리를 설치하는 도중에 "Microsoft Visual C++ 14.0 is required" 에러가 발생했습니다. 해결 방법이 다양하게 있는 것으로 보이나(stackoverflow나 주변에 있는 사람들이 말한 내용들을 토대로 하면..) 제 경우에는 별도의 추가 설치를 하는 것으로 해결이 됐습니다. 문제를 쉽게 해결하려는 노력보다 이럴땐 정공법을 택해서 가는 것이 더 나아 보입니다. maven 하나로 모든 것이 끝나버리는 자바 개발자로서 파이썬의 이런 자질구레한 상황들로 개발이 지연될 때는 좀 짜증나긴 합니다. 물론 자바 개발도 세팅하면 농담으..
1. 함수의 도움말 보기 R studio까지 설치했다고 한다면 (http://needjarvis.tistory.com/44 포스팅 참조) 이제 슬슬 R이 어떤 기능들이 있는지 확인해봐야 한다. R은 통계 및 데이터분석에 특화된 언어이기 때문에 이런 기능들을 매우 쉽게 제공하고 있다. > help(함수명) 위와 같이 명령을 하게 되면, 함수에 관련된 help 값을 가져올 수 있다. 시각화를 위한 plot 함수를 help 명령어에 argument로 실행하면 studio에서 우측 하단의 붉은색 네모영역에 표시가 된다. help에서 많은 부분을 알려주기 때문에 유용하게 쓰이지만, 인자값(Arguments)만 알고 싶은 경우가 있다. 위 help에 표시된 Usage 밑에 나온 "plot(x, y, ...)" 이 ..
이 포스팅을 읽는 대상은 프로그래밍을 배우지 않는 분들도 쉽게 따라할 수 있게 할 예정입니다. 추후 이 포스팅은 제가 다니고 있는 회사분들에게 강의를 하는 목적도 가지고 있기 때문에 최대한 쉽게 작성할 예정입니다. 현재 파이썬을 설치조차 하지 않거나, 아직 파이썬에 대해서 잘 모르시는 분들은 제가 예전에 포스팅했던 파이썬 설치부터 시작하셔서, 하나둘 스텝업 하시기 바랍니다. 예전 파이썬 강좌파이썬(Python)은 무엇인가??파이썬(Python) 설치 및 세팅하기파이썬(Python) 강좌 1. 기본 연산 및 자료형, 변수 1. 파이썬에서의 리스트 처리 다른 언어를 사용해신 분들은 잘 아시겠지만, 파이썬에서도 역시 리스트를 지원합니다. 다만 약간 다른 점이 리스트가 상당히 자유롭습니다. 예를 들어, JAVA..
이 포스팅은 머신러닝 및 데이터마이닝, 인공지능을 위한 파이썬 강좌입니다. 추후 간단한 머신러닝과 추천에 관련된 데이터마이닝을 할 예정입니다. Java로 가능한 부분은 Java와의 코드를 비교하여 파이썬의 속도 및 수준등을 비교 할 예정입니다. 현재 이 글을 쓰고 있는 사람은 데이터마이닝(추천 관련)을 전문적으로 하고 있으나, 파이썬에 대해서는 아직은 기초지식만 가지고 있는 상태이고, 여러가지의 책들과 포스팅등을 통해서 저 역시 공부를 하면서 포스팅을 하고 있으니 비슷한 수준이구나 생각하시면서 보시면 됩니다. 이 포스팅을 읽는 대상은 프로그래밍을 배우지 않는 분들도 쉽게 따라할 수 있게 할 예정입니다. 추후 이 포스팅은 제가 다니고 있는 회사분들에게 강의를 하는 목적도 가지고 있기 때문에 최대한 쉽게 작..
데이터를 분석한다든지, 인공지능 등에 사용하기 용이한 파이썬은 설치하는 방법도 어렵지 않게 매우 간단하다. 여러가지 방법을 통해서 설치하는 것이 있지만, 대표적으로는 아나콘다(Anaconda) 패키지 배포판으로 많이들 설치한다. 패키지 배포판은 말 그대로 다양한 라이브러리들을 같이 묶어서 설치를 하는 것으로써, 아나콘다만 설치하여도 파이썬 사용은 물론, 다양한 통계 및 기계학습 라이브러리 등을 사용할 수 있고 설치하는 것도 매우 간단한 Installer 방식을 지원한다. 2020년 7월 27일 아래 링크가 실행이 안되며 아나콘다 설치 방법이 변경되었습니다. 아래 포스팅을 참고하세요. 파이썬(Python), 아나콘다(Anaconda) 설치하기 https://www.continuum.io/downloads ..
파이썬이라는 언어는 요즘 트렌드에 맞는 언어라고 말을 할 수 있다. 과거 어셈블리(기계어)에서 시작되어, C, C++ 그리고 최근에는 Java까지 시간이 흐르면 흐를수록 더욱 빠르고, 컴퓨팅 파워를 끌어올리는 언어에서 벗어나서 보다 쉽고 개발이 단순하며, 많은 기능을 내포한 언어로 교체가 되어가고 있다. 아무래도, 과거 PC의 시대보다 보다 좋은 하드 자원과 하드웨어 비용과 개발자의 인건비를 비교해 봤을 때, 개발자의 인건비가 훨씬 많이 들어가는 시대로 진입하다보니 생긴 변화가 아닐까 싶다. 안드로이드까지 나오고, 자바가 한동안 모든 언어를 누르며, 독주하는가 싶은 듯 보였으나 최근에 들어서서는 스크립트 형식의 언어들이 유행을 타고 있다. 별도의 컴파일을 하지 않은 상태에서 즉시 실행이 들어가며, 개발이..
자바 프로젝트를 수행 중, 로그성 데이터를 읽거나 프로퍼티등을 읽거나 라인별로 읽어야 프로젝트 수행이 원활 할 때가 있다. 기본적으로 많이 쓰이는 방식이 FileReader를 BufferedReader에 담아서, readLine 메소드를 활용하는 방법이다. FileReader에는 기본적으로 read 메소드(Byte별로 읽는 방법)는 있지만, readLine 메소드(라인별로 읽는 방법)는 없기에 로그성 데이터를 읽기에는 용이하지가 않다. Scanner 메소드는 대용량의 로그 데이터를 제대로 읽지 못하는 결과를 보여줬다. 처음에는 너무 빨라서 놀랐지만, length를 호출해보니, 적은 양의 파일을 읽고 있었다. 대상로그 로그치곤, 용량이 꽤 많다. 현재 운영중인 프로젝트의 로그를 대상으로 테스트 해보았다. ..