분류 전체보기
[API]. Google maps API
구글 맵스 API 를 활용하여 주소를 찍으면 위경도를 받아오기 https://cloud.google.com/maps-platform/ Geolocation API | Google Maps Platform | Google Cloud Google Maps Platform을 선택하면 정확한 실시간 데이터 및 동적 이미지로 몰입형 위치정보 활용 환경을 만들고 더 나은 비즈니스 의사결정을 내릴 수 있습니다. cloud.google.com 구글 맵스 API 를 활용하기 위해서 가입하여 Key 를 받아와야함 키를 받아왔다면, pip install googlemaps 구글 맵스 패키지를 다운로드 받아줍니다. import googlemaps myKey = "받아온 키값을 넣어주세요" gmaps = googlemaps.C..
[SQLD] .SQL 최적화 원리 (Optimizer)
옵티마이저(Optimizer) 개발자가 SQL을 작성하여 실행할 때, 옵티마이저는 SQL을 어떻게 실행할 것인지를 계획하게 된다. 실행계획을 수립하고 SQL을 실행한다. 데이터베이스 관리시스템의 소프트웨어 동일한 결과가 나오는 SQL도 어떻게 실행하느냐에 따라서 성능이 달라진다. 옵티마이저는 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 산정한다. 옵티마이저는 여러 개의 실행 계획 중에서 최저비용을 가지고 있는 계획을 선택해서 SQL실행 예를 들어 건수가 많은 테이블을 먼저 읽고 건수가 적은 테이블을 읽으면 불필요하게 비교 횟수가 증가하게 된다. 만약 옵티마이저가 비효율적으로 실행계획을 수립하면 SQL개발자는 SQL을 개선해야한다. 실행계획을 변경하도록 요청하는..
[주관] 이성과 감성
동생과 말다툼을 한 날이 있었다. TV 에서는 장애인을 위한 공익광고가 나왔는데. 기억은 잘 안나지만 대충 이런 내용이였다. 시각장애인인 A씨가 대중교통을 이용하기가 너무 불편해서 시각장애인들을 위한 센서를 개발해서 모든 버스에 부착하겠다는 내용. " 모든 시각장애인들이 버스를 이용할 수 있게 하겠다." 광고에서 시각장애인 A씨가 "꼭 개발하겠습니다."라는 말과함께 응원을 부탁한다는 메세지가 흘러나왔다. 이 광고를 보고 난 무척 불편했다. 왜냐하면 매우 현실성이 없는 내용이기 때문이다. 시각장애인 A씨의 마음은 충분히 이해가되고 노력하는 모습은 정말 대단하다. 하지만 전체 국민의 극히 일부분인 장애인분들 그 중에서 시각장애인분들을 위해서 모든 대중교통버스에 센서를 부착하는 것은 매우 미련한 짓이다. 차라..
[SQLD]. SQL 기본
계층형 데이터베이스 트리(Tree) 형태의 자료구조에 데이터를 저장하고 관리한다. 1대 N 관계를 표현한다. 네트워크 데이터베이스 오너(Owner)와 멤버(Member) 형태로 데이터를 저장한다. 1대N과 함께 M대N 표현도 가능하다. 관계형 데이터베이스 릴레이션에 데이터를 저장하고 관리한다. 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다. 집합연산 합집합( Union ) 두 개의 릴레이션을 하나로 합치는 것 중복된 행은 한 번만 조회된다. 차집합 (Difference) 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것을 조회한다. 교집합 (Intersection) 두 개의 릴레이션 간에 공통된 것을 조회한다. 곱집합 (Cartesian product) 각 릴레이션에 존재하는 모든..
[SQLD]. 데이터 모델과 성능( 정규화 , 반정규화 , 분산 데이터 베이스)
정규화 ( Nomalization ) 정규화는 데이터의 일관성과 중복을 최소화하고 유연성을 최대화 하는 방법이며 데이터를 분해하는 과정이다. 정규화를 하지 않으면 불필요한 정보가 같이 추가되는 이상현상이 발생한다. 정규화를 수행하면 불필요한 데이터를 입력하지 않아도 되기 때문에 중복 데이터가 제거된다. 정규화 절차 제 1 정규화 속성의 원자성을 확보한다. 기본키(Primary)를 설정한다. 기본키가 1개가 될 수 있고 2개가 될 수 있다. ( 기본키는 유일성이 만족되어야한다.) 제2 정규화 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다. 기본키로 설정한 칼럼이 함수적으로 종속(부분 함수 종속성이 발생)하고 있다면 분해해야한다. 제3 정규화 기본키를 제외한 칼럼 간에 종..
[돈]. 최종 목표
최근 빅데이터 교육을 통해 알게 된 동생이랑 칵테일을 가볍게 한 잔 하는 날이 있었다. 그 동생은 나에게 인생이야기를 해달라고 말했고, 나는 인생 얘기? 라기 보다 나의 여러 경험을 통해 고착화된 신념을 말해주었다. 그중 돈 얘기가 가장 많았는 데 동생이 그런 말을 하더라 " 그래서 최종 목표가 뭐야 건물주? " 정신없이 돈을 모아야겠단 생각만 했던 나에게 그 질문에 대한 답이 생각이 바로 나진 않았지만 다시금 생각을 하고 내 목표를 말했다. " 내 목표는 경제적 자유를 이루는 거야 돈으로 부터 해방되는 거지 " 그러자 동생이 다시 물었다 " 그게 무슨 말인데? " 황금알을 낳는 거위가 있다. 이 거위는 8만원짜리 거위이고 죽지 않는다. 죽지 않고 1년에 알을 한 번 낳는데 그 알은 4천원에 팔 수 있다..
[SQLD] 데이터 모델링의 이해(1)
데이터 모델링의 주요 특징 추상화 ( Abstraction ) 현실 세계를 간략하게 표현한다. 단순화 (Simplification) 누구나 쉽게 이해할 수 있도록 표현한다. 명확성 (Clarity) 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다. 데이터 모델링 절차 개념적 모델링 - > 논리적 모델링 -> 물리적 모델링 데이터 모델의 3가지 관점(View) 데이터 비즈니스 프로세스에서 사용되는 데이터 - 구조 , 정적 프로세스 비즈니스 프로세스에서 수행하는 작업 - 시나리오 , 도메인 , 동적 데이터와 프로세스 프로세스와 데이터 간의 관계 - CRUD 데이터 모델링시에 고려사항 데이터 중복, 비유연성, 비일관성이 발생하지 않게 해야한다. ERD 작성 순서 엔터티를 도출하고 그린다. 엔터티를..
[Project] 주식, 최적의 분산투자를 위한 종목 추천
github.com/alswhddh/myproject/tree/master/finance 안녕하세요. 요즘 주식시장에서는 분산 투자해야 된다. 분산투자가 답이다.라는 말을 많이 하시는데요. 위험성보다 안정성을 더 추구하는 투자자들이 많아져서 은행이자보다는 좋으면서 비교적 안전한 분산투자를 많이 선호하는 것 같습니다. 그렇지만 가장 효율적인 분산투자란 과연 무엇일까요? 이번 프로젝트는 분산투자를 할 때 어떤 종목을 섞어야 가장 효율적일지를 찾아내는 알고리즘을 구현하는 것입니다. 이렇게 이야기하면 이해가 잘 안 되실 것 같아서 차근차근 설명드리겠습니다. High Risk, High Return 먼저 1990년 노벨경제학상을 수상했던 해리 마코위츠 , 포트폴리오 선택 이론을 설명드리겠습니다. 세상의 모든 투자..
[Project] 판교에 취업한다면 어느 동네에 집을 구할까
github.com/alswhddh/myproject/tree/master/Crawling Project 1. 판교에서 취업한다면 어느 동네에 집을 구할까? Goal 거리 , 주택 매매가, 편의시설 등의 조건별 우선순위를 부여하여 거주에 적합한 동네를 추천하는 Product Outline 경기도 성남시의 행정구역 26개 구역을 대상으로 조건 데이터를 조사 분석하고, 사용자 맞춤 가장 살기 좋은 동네 순위를 알아본다. Process Step 1. 데이터 수집 판교역 중심지와 동 주민센터간의 거리, 주택 실거래가, 동별 범죄 검거율 , 편의시설 수 판교역 간 거리 측정 -> 네이버 길찾기 자동입력 및 크롤링으로 수집 각 동별 동사무소와 판교역 간 네이버 길찾기로 자동입력 후 웹 크롤링한다. 대중교통시간(분)..
[개발환경] Mac OS에서 아나콘다(Anaconda) 환경변수 설정하는 법 jupyter notebook 주피터 노트북
Mac OS로 아나콘다를 설치하고 주피터 노트북(jupyter notebook)을 실행하면 한동안 경로를 찾을 수 없다고 나오는 500 error 가 발생해서 실습을 하기도 전에 엄청 시달린 적이 있다. 500번 에러는 구글링을 해봤더니 대부분 아나콘다 라이브러리 업데이트 버전 문제인 경우가 많았다. 이런 경우 터미널에서 conda upgrade --all 를 입력해주면 된다. 하지만 나는 업데이트를 하고 파이썬을 지웠다가 다시 깔고 아나콘다 재설치를 해도 이 문제가 해결되지 않았다... 문제는 환경변수 설정에 있었다. Mac OS 에서 아나콘다 환경변수 설정하는 법 먼저 아나콘다가 설치된 경로로 이동합니다. $ pwd /Users/acdong/opt/anaconda3 $ ls 경로는 설치버전에 따라 다..