해외 주식 소액 투자, 미니스탁 오랜만에 대박 앱을 발견한 것 같습니다. 참고로 저는 암호화폐, 부동산 투자앱, 각종 은행앱, 국내 주식, 해외 주식 모두 하는 사람으로 최근 카카오페이가 내거는 소액 펀드의 해외 주식 버전이 나왔습니다. 저는 국내 주식 앱으로 키움 증권이랑 한국 투자 증권을 2개 사용 중인데 한국 투자 증권에서 미니스탁 광고가 떠서 받아봤더니 대박이네요 저는 일단 기본적으로 한달 혹은 1년에 얼마를 투자하겠다 계획을 세우고 미리 돈을 각 증권계좌에 넣게 되는데 간혹 돈을 아껴서 자투리 돈이 남을 때 카카오페이의 펀드를 이용하고 있습니다. 그런데 펀드는 다들 알겠지만 뭔가 투자하는 맛이 나질 않죠. 돈을 불리는 느낌은 나지만 내가 뭔가 성과를 낸 것 같지 않는 느낌... 그리고 내가 딱 ..
DB 서버 부하 분산, 샤드의 개념 - 부하 분산을 위해 Application/DB Level에서 다수의 데이터베이스에 데이터를 분산 저장하는 기법 - 데이터베이스 분야에서 성능, 확장성 및 I/O 대역폭을 개선하는데 사용하는 분산처리 기법 샤드 혹은 샤딩기법은 데이터를 분리하기 용이한 기준을 잡고 데이터를 분산저장하거나 Row의 행수 등을 기준으로 분산저장을 한다. 최근 데이터의 폭발적인 증가는 빅데이터(Bigdata)라는 신조어를 만들게 되었고, 수많은 빅데이터를 처리하기 위해서는 데이터를 모두 동일하게 복제하는 방식이 아닌 수평적인 서버들에 분산 저장하여 처리를 하는 방식으로 가게 되었다. 물론 샤드의 문제를 방지하기 위해서 리플리카(replica)의 방식을 섞어서 실제로는 둘 중 하나의 방식이 아..
IP 주소의 융통적인 할당 및 관리, CIDR 가. CIDR (Classless Inter-Domain Routing)의 정의 - 도메인간의 라우팅에 사용되는 인터넷 주소를 IP 주소 클래스 체계를 쓰는 것보다 더욱 융통성 있도록 할당하고, 지정하는 방식 - 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한, IP 주소할당 기법 (네트워크 클래스를 대체) - 여러 네트워크 영역으로 나눌 때 기존방식에 비해 유연성을 더해주는 IP 주소 할당 기법 나. CIDR의 특징 활용 가능한 인터넷 주소의 숫자가 크게 증가 인터넷 백본 네트웍 상에서 실질적으로 모든 게이트웨이 호스트에 의해 사용되는 라우팅 시스템 IP Address/Mask의 형식, 예) 192.30.250.00/18 ("192.30...
이클립스 테마(Theme) 이클립스에서는 Default로 하얀 바탕화면의 테마(Theme)인 Light가 세팅되어 있습니다. 그러나 개발자들은 왠지 어두운색에 대해서 간지를 느끼기도 하고 자신의 코드를 남들이 보는 것을 극도로 꺼리기 때문에 제일 먼저 폰트(Font) 작업과 함께 테마를 변경하는 작업을 많이들 진행합니다. 10년전 정도에는 다들 이클립스를 디폴트로 쓰다가(그땐 저 역시 테마 변경법을 몰라서 폰트만 변경했었습니다) 어느새부턴가 어두운 색으로 변경하는 개발자들이 많아졌습니다. 팩트인지 모르겠으나 이클립스를 어둡게 하는 방법은 Eclipse Marketplace와 같은 별도의 plugin, addon 등을 설치할 수 있는 곳에서 어두운 테마버전을 다운로드 받아서 설치하는 방법 밖에 없던 것으로..
개발용 폰트 이클립스를 새로 세팅할때마다 기본용 폰트를 보면 참 난감합니다. 너무 글자가 작아보이고, 그렇다고 뭔가 개발스럽지 않은 폰트때문에 능률도 왠지 안 오르는 것 같습니다. 저는 그래서 제 주관적으로 가장 개발자스러운 폰트인 "Courier New"를 추천합니다. 이 폰트는 한글도 이뻐서 주석달기 좋고 영문도 이쁘게 타이핑 됩니다. 위 화면은 이클립스를 최초로 세팅하는 화면인데 참 맘에 안듭니다. 저는 시력이 특히 안 좋아서 더더욱 몸에서 거부감을 느끼는 것 같네요. 폰트 변경 폰트를 변경하면 처음에 메뉴에서 Window -> Preference를 선택합니다. Appearance -> Colors and Fonts -> Basic 항목에서 내려 갑니다. Text Font -> Edit 항목을 클릭..
과적합의 개념 - 데이터가 너무 Fit하게 학습이 되면서 생기는 문제를 과적합(Over-fitting)이라 부르며, 데이터의 학습이 제대로 되지 않는 상태인 반대 개념을 언더 피팅(Under-fitting)이라 한다 과적합이 발생하는 사유 학습 데이터가 너무 적은 경우 학습 데이터 전처리를 잘못한 경우 특징(Feature) 데이터가 너무 많은 경우 과적합 사례 예를 들어 다음과 같은 설문조사 데이터를 학습 데이터로 사용해보고자 한다. 우리나라 특별시, 광역시, 도를 기반으로 지역 값을 생성하고 10대, 20대와 같은 나이대를 값으로 생성하며, 성별 값, 학력을 feature data로 놓고 최종 labeling 할 데이터를 연봉이라고 가정을 해보자 지역 설계 서울시 0 대전 1 세종 2 광주 3 울산 4..
척도(Metrics)의 개념 척도라는 것은 어떤 모델을 평가(Evaluate)하기 위해서 사용하는 값이다. 그러다보니 비슷한 개념의 목적/손실함수(Loss Function)와의 개념이 헷갈릴 수 있다. 손실함수는 모델의 성능을 끌어올리기 위해서 참조하는 값이다. 즉, 트레이닝(training, 학습)을 위해서만 사용하는 나침반과 같은 존재라고 한다면, 척도는 결과적으로 이 모델의 성능은 얼마짜리야라는 개념이다. 그렇기 때문에 척도와 손실 함수의 개념은 분리되어야 하지만 경우에 따라서는 특정 척도에 따라 최적화 하는 것이 최상일 때도 있다. 둘간의 개념이 사실상 유사하기 때문에 동일한 개념으로 어쩔땐 척도를 사용하기도 하고 어쩔땐 손실함수를 쓰기도 한다. 척도의 종류 정확도(Accuracy) 사실상 가장 ..
목적/손실 함수(Loss Function) 이란? 딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 일단 아래 예를 보도록 해보자. 4 = 2a + b 6 = 3a + b 이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면 값을 대입해서 문제를 풀어본다던지 직관적으로 풀어본다던지 아니면 여러가지 공식을 써서 풀어본다던지 할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다. 컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 ..
다시 기초부터 포스팅 하나당 신경망 하나를 포스팅하는 것은 쓰는 사람도 그걸 받아들이는 사람들 중에 비전공자는 힘들 수 있다. 이미 MNIST(손글씨)와 유사한 Fashion MNIST(패션 아이콘)를 분류하는 모델을 포스팅한 적이 있지만, 하나하나 디테일하게 설명하지 못한 아쉬움이 있다. 이번 포스팅부터는 좀 더 쉽게 설명하기 위해서 신경망을 하나하나 코딩할 때마다 해당되는 기술들에 대해서 별도의 포스팅을 작성하고 어떤 방법으로 이루어지는지 써보도록 한다. 그리고 성능을 올리기 위해서 어떻게 튜닝을 하는지 적어보도록 하겠다. train에 사용될 매개변수(parameter)들 import tensorflow as tf import numpy as np from tensorflow import keras ..
사람과 컴퓨터는 데이터를 바라보는 형태가 다르다 인간과 컴퓨터는 데이터를 바라보는 형태가 다르다 사람은 어떤 물체를 보더라도 숫자로 인식하지는 않지만 컴퓨터에게 인공지능을 구현시키기 위해서는 컴퓨터가 알아먹기 쉽게 숫자값으로 변환을 해줘야 된다. 예를 들어 내가 지금 여기서 열심히 포스팅을 하고 있는 내용을 컴퓨터에게 이해 시키려면 단어들을 숫자 형태로 정리해서 컴퓨터에게 입력시켜줘야 한다는 것이다. 원핫 인코딩(One-Hot Encoding)은 사람이 매우 쉽게 이해할 수 있는 데이터를 컴퓨터에게 주입시키기 위한 가장 기본적인 방법이다. 원핫인코딩 개념 원핫(One-Hot) 인코딩이라는 말처럼 이 기술은 데이터를 수많은 0과 한개의 1의 값으로 데이터를 구별하는 인코딩이다. 예를 들어, 글자가 적힌 종..
딥러닝(Deep Learning)을 이해하기 위해서는 몇가지 개념들을 확실히 익히고 넘어가야 한다. 사실 딥러닝이라는 것은 프로그램적인 요소보다는 이미 만들어진 것을 어떻게 잘 조율해서 사용해야 하는지에 더 달려있기 때문에(요즘 트렌드 자체가 know-where 이기도 하고...) 너무 복잡하게 수식을 이해할 필요도 없고 간단하게 이해하고 넘어가도 딥러닝을 구현하는데 크게 지장이 없을 것이다. 논문을 쓰고 완전히 이쪽길로 깊게 공부하는 사람들은 당연히 수식까지 짜면서 공부를 해야 하겠지만 개발자이기도 하고 딥러닝도 어느정도 핸들링하는 사람들이라면 어느때에 이 기술이 좋더라 정도만 알아도 개발하는데 전혀 지장이 없다. 활성화 함수(Activation Function) 개념 딥러닝은 다양한 레이어(layer..