이 포스팅은 머신러닝 및 데이터마이닝, 인공지능을 위한 파이썬 강좌입니다. 추후 간단한 머신러닝과 추천에 관련된 데이터마이닝을 할 예정입니다. Java로 가능한 부분은 Java와의 코드를 비교하여 파이썬의 속도 및 수준등을 비교 할 예정입니다. 현재 이 글을 쓰고 있는 사람은 데이터마이닝(추천 관련)을 전문적으로 하고 있으나, 파이썬에 대해서는 아직은 기초지식만 가지고 있는 상태이고, 여러가지의 책들과 포스팅등을 통해서 저 역시 공부를 하면서 포스팅을 하고 있으니 비슷한 수준이구나 생각하시면서 보시면 됩니다. 이 포스팅을 읽는 대상은 프로그래밍을 배우지 않는 분들도 쉽게 따라할 수 있게 할 예정입니다. 추후 이 포스팅은 제가 다니고 있는 회사분들에게 강의를 하는 목적도 가지고 있기 때문에 최대한 쉽게 작..
데이터를 분석한다든지, 인공지능 등에 사용하기 용이한 파이썬은 설치하는 방법도 어렵지 않게 매우 간단하다. 여러가지 방법을 통해서 설치하는 것이 있지만, 대표적으로는 아나콘다(Anaconda) 패키지 배포판으로 많이들 설치한다. 패키지 배포판은 말 그대로 다양한 라이브러리들을 같이 묶어서 설치를 하는 것으로써, 아나콘다만 설치하여도 파이썬 사용은 물론, 다양한 통계 및 기계학습 라이브러리 등을 사용할 수 있고 설치하는 것도 매우 간단한 Installer 방식을 지원한다. 2020년 7월 27일 아래 링크가 실행이 안되며 아나콘다 설치 방법이 변경되었습니다. 아래 포스팅을 참고하세요. 파이썬(Python), 아나콘다(Anaconda) 설치하기 https://www.continuum.io/downloads ..
파이썬이라는 언어는 요즘 트렌드에 맞는 언어라고 말을 할 수 있다. 과거 어셈블리(기계어)에서 시작되어, C, C++ 그리고 최근에는 Java까지 시간이 흐르면 흐를수록 더욱 빠르고, 컴퓨팅 파워를 끌어올리는 언어에서 벗어나서 보다 쉽고 개발이 단순하며, 많은 기능을 내포한 언어로 교체가 되어가고 있다. 아무래도, 과거 PC의 시대보다 보다 좋은 하드 자원과 하드웨어 비용과 개발자의 인건비를 비교해 봤을 때, 개발자의 인건비가 훨씬 많이 들어가는 시대로 진입하다보니 생긴 변화가 아닐까 싶다. 안드로이드까지 나오고, 자바가 한동안 모든 언어를 누르며, 독주하는가 싶은 듯 보였으나 최근에 들어서서는 스크립트 형식의 언어들이 유행을 타고 있다. 별도의 컴파일을 하지 않은 상태에서 즉시 실행이 들어가며, 개발이..
엘라스틱서치(Elasticsearch)는 루씬(Lucene) 기반으로 되어 있지만, 루씬과 다른점은 루씬은 라이브러리라고 한다면 엘라스틱서치는 검색엔진이다. 그러다보니 개발자 입장에서는 루씬이 편할 수도 있고, 개발을 잘 모르는 사람 입장에서는 엘라스틱 서치가 편할 수 있는 구분점이 존재한다. 그러나 확실히 하나 말할 수 있는 것은 어느정도의 부하가 존재하며, 서버의 튜닝이나 자바등을 잘 알지 못하는 경우라면, 루씬보다 엘라스틱 서치를 쓰는 것이 훨씬 좋을 것이다. 참고로 엘라스틱서치는 설치 및 정상적으로 구동하고 있는지 확인하는 방법이 매우 간단하다. 1. 다운로드 받기 일단, 본인의 OS에 따라서 설치하는 파일이 달라질 수 있다. 블로그를 윈도우 환경에서 작성하고 있기 때문에 설치부터 활용방안까지 모..
1. 국내의 검색엔진 검색엔진 전문가로서, 많은 분들이 검색엔진하면 어렵다는 편견을 갖는 분들이 많다. DB는 스페셜하게 잘 다루지만, 검색엔진은 왠지 전문가만 다뤄야 할 것만 같아서 검색엔진을 사용하면 훨씬 효율성이 높은 부분 마저도 DB에서 Like 쿼리를 사용하는 사이트가 허다하다. 그렇다고, 국내의 검색엔진 업체 제품을 쓰면 왠지 손해보는 느낌이 강한데... 왠만한 검색엔진 값이 차 한대값과 맞먹고, 라이센스에 따라서 아반테가격에서 벤츠가격까지 올라가는 경우가 존재한다. 국내의 검색엔진 업체는 와이즈넛, 코난테크놀로지, 솔트룩스의 3파전 양상이다. 이중 와이즈넛이 가장 유명하지만, 그렇다고 기술력이 가장 뛰어난 업체는 아니다. 와이즈넛과 코난테크놀로지는 검색엔진 순수 기술로만 하면 BMT 스코어가..
조인연산(Join Operation) 이란? - SQL 명령문에 의해서 여러 테이블에 저장된 데이터를 한번에 조회할 수 있게 하는 DBMS의 기능- 두 집합(테이블) 간의 곱으로 데이터를 연결하는 가장 대표적인 데이터 연결 방법- 대표적인 종류로 Nested-Loop Join, Sort-Merge Join, Hash Join 등이 존재함 ※ 조인연산은 옵티마이저(Optimizer)의 성능 및 DBMS의 고유의 성능, 그리고 조인연산의 알고리즘에 의해서 속도 등의 차이가 있을 수 있으나, 결과집합은 동일함 Nested Loop Join 가. Nested Loop의 개념- 2개 이상의 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 Row를 결합하여 원하는 결과를 조합하는 방식- 먼저 선행 테이블의 처리..
Isolation Level의 필요성 DBMS를 혼자서 사용한다면 문제가 없겠지만, 대부분의 프로그램이 여러명이 사용하고 있으며 상대방이 변경된 부분이 반영이 안되거나 혹은 반영이 이상하게 되어서 화면상의 데이터가 꼬이는 문제등이 발생하게 된다. 내가 실행하고 있는 이 트랜잭션 안에서 중간에 다른 트랜잭션의 결과가 반영이 되어, 치명적인 연산 버그등이 발생하게 되면 이미 사용할 수 없는 수준으로 폐기처리 해야 할 것이다. 예를 들어, A라는 값이 1000이라는 값이 있고, B라는 값이 2000이라는 값이 있는데 처음 시작했을 때, A+B를 해서 3000이라는 값을 저장하였다. 그러나 다른 트랜잭션이 A의 값을 1500으로 변경하여, 마지막에 한번 더 A+B를 해서 3500으로 변경이 되었다면 처음과 마지..
무선마우스를 출장중 분실하여, 노트북용으로 신규로 구입하려고 알아보던 중 로지텍에서 전략적으로 현재 나온 신제품이 있어서 구매를 하게 되었습니다. 처음에는 이마트에서 마우스를 알아보던 중 디자인이 마음에 들지 않아서, 고민 끝에 인터넷에서 마음에 드는 제품을 발견하여 주문하였습니다. 이 제품은 위에 로지텍 홈페이지 메인에 나와 있는 제품이고, 2가지의 무소음 제품중에 좀 더 디자인이 유려하고, 그립감이 좋아보여서 구입을 했습니다. 박스는 위와 같이 마우스 하나만 들어있는 모습입니다. 현재 니베아(NIVEA) 립밤도 주는 이벤트 상품을 구입해서 추가로 이렇게 서비스 상품이 왔습니다 (개이득) 박스 개봉 후의 모습입니다 여느 무선마우스처럼, 뒷면을 열면 건전지를 넣는 공간과 나노 수신기가 있습니다 나노 수신..
라우팅(Routing)이란? Routing이란 패킷(Packet)을 전송하기 위한 수많은 경로 중에서 한 가지 경로를 결정하는 것이다. 라우팅에는 동적 라우팅(Dynamic Routing)과 정적 라우팅(Static Routing)으로 나누는데 정적 라우팅은 주로 사람이 수동으로 미리 경로를 지정하는 방식이고, 동적 라우팅은 변화하는 상황에 맞추어 라우터가 경로를 재설정하는 방식으로 이루어진다. 라우팅은 이렇게 가야 되는 방향을 설정해주는 것이라고 인식하면 될 것 같다 라우팅 프로토콜(Routing Protocol)의 개념 라우팅을 위해서 네트워크 상의 모든 라우터(Router)들은 목적지에 따라서 패킷을 보낼 Interface를 선 계산해 놓아야 하는데 이 계산해 놓은 것을 라우팅 테이블이라고 한다. ..
레이어별 프로토콜 개념 네트워크 프로토콜을 설명하기 위해서는 우선 OSI 7 Layer와 TCP/IP의 4 Layer를 이해하고 있어야 한다. 특히 OSI 7 Layer를 이해하고 있으면, 해당 위치에 어느 프로토콜이 존재하는 것만으로 해당 프로토콜의 역할이 쉽게 이해가 되기 때문이고, 각각의 계층별로 데이터를 전송하는 방식이 다르기 때문이기도 하다. OSI(Open Systems Interconnection) 7 Layer는 ISO(국제표준기구)에서 만든 네트워크를 7계층으로 만든 모델이고, 프로토콜(Protocol, 통신규약)은 상호간의 접속이나 전달방식, 통신방식, 주고받을 자료의 형식, 오류 검출 방식, 코드 변환방식, 전송속도 등에 대하여 이미 정해진 약속이기 때문에 레이어별 프로토콜은 한마디로..
TCP/IP의 개념 - TCP/IP는 네트워크를 상호 연결시켜 정보를 전송 할 수 있도록 하는 기능을 가진 다수의 프로토콜이 모여있는 프로토콜 집합- 인터넷은 데이터 링크 계층을 지원하는 네트워크를 TCP/IP 프로토콜을 이용하여 상호 연결하는 네트워크- 인터넷 상의 서로 다른 운영체제를 쓰는 컴퓨터간 데이터 전송을 가능하게 하는 정보전송을 위한 인터넷 표준 프로토콜 OSI 7 layer와의 비교source, https://commons.wikimedia.org/wiki/File:Application_Layer.png 한마디로, 네트워크를 상호 연결(서로간에 연결) 시켜 전송 할 수 있도록 다양한 기능을 가진 프로토콜들을 모은 집합체이다. TCP/IP는 OSI 7 Layer처럼 추상적인 레이어 역할을 하..
CSMA(Carrier Sense Multiple Access) 동시에 네트워크를 사용하고자 할때, 가장 중요한 것중에 하나가, 상호충돌을 방지하는 기능이다. 이를 위해서는 전송하기 전에 다른 호스트가 사용중인지를 선 체크해야 하는데 전송 선로에 흐르는 신호를 감지하여 해당 기능을 구현한다. 이러한 기능을 감지하는 프로토콜을 CSMA 프로토콜이라고 한다. 트래픽이 정상적으로 전송하기 위한 신호등같은 기능을 수행한다고 보면 된다 CSMA/CD와 CSMA/CA의 개념 CSMA는 위에서 적은 것처럼 네트워크를 전송하기 전에 현재 채널을 사용중인지를 체크하여 멀티플 액세스가 되는 기능을 구현하는 것을 말한다. CD는 Detect, 충돌 감지 기능을 사용해 충돌 여부를 확인하는 것이고, CA는 Avoidance,..