학습이 제대로 되지 않으면 under fitting이라 한다.
너무 학습을 잘 시켜 표준에 대한 정밀도는 너무 완벽하지만 실제 데이터에 대한 정확도가 떨어지면 over fitting이라 한다.





Posted by '김용환'
,



주택 정보 포털(http://housta.khug.or.kr/khhi/web/hi/pr/hipr020003.jsp)에 따르면 작년에 대해서 소득 분위별 PIR(price to income ratio)를 조사하고 있다. 




 전국서울
가구 연소득가구 연소득
1분위2분위3분위4분위5분위1분위2분위3분위4분위5분위
2017.03평균 주택가격1분위7.13.52.51.81.115.27.75.44.02.3
2분위11.95.94.13.11.822.911.68.26.03.5
3분위16.17.95.64.22.429.514.910.57.84.5
4분위21.810.77.65.63.339.920.214.210.56.0
5분위35.917.712.59.35.469.435.124.818.410.5




1996년부터 2016년에는 어땠을까? 우리나라를 포함한 국가별 추세는 다음과 같다.


http://cafe.daum.net/_c21_/bbs_search_read?grpid=1yKm&fldid=FlzC&datanum=220966&q=pir&_referer=V7kfJwkeLEGMZxGlgqZEmddb_hC7E12H







'나의 경제' 카테고리의 다른 글

accrual 인식  (0) 2019.03.06
주식 투자 - 1조원 할아버지  (0) 2018.08.24
자산 가격과 GDP 간격 (거품론)  (0) 2017.12.07
[펌] 주식투자는 방정식이 아니다.  (0) 2015.12.29
하나 SK 패밀리 카드 - PP카드  (0) 2013.07.24
Posted by '김용환'
,



외부 클래스에서 trait의 내부 필드에 접근할 때는 java interface처럼 접근할 수 없다. 

즉 public처럼 사용할 수 없다.


trait SeperatorTrait {

  val SEP: String = "____"

}



따라서 컴패년 오브젝트를 사용하면 외부 클래스에서 사용할 수 있다.


trait SeparatorTrait {

}


object SeparatorTrait {

 val SEP: String = "____"

}



Posted by '김용환'
,

우버 해킹 (2017)

Security 2018. 2. 2. 10:13



우버에서는 내부 깃허브 싸이트를 운영하고 있었다. 해커는 소스에서 우버 AWS 계정(아마도 공통 계정?)을 얻은 후, 

AWS 계정으로 들어가 개인정보를 털었다고 한다. 



http://www.boannews.com/media/view.asp?idx=58202&page=1&kind=1



우버의 발표에 의하면 공격자들은 우버 소프트웨어 엔지니어들끼라만 사용하던 사설 깃허브 코딩 사이트에 접근하는 데에 성공했다. 그리고 거기서 우버의 AWS 계정 크리덴셜을 찾아냈다. 우버는 각종 컴퓨터 관련 일들을 관리하고 해결하기 위해 이러한 플랫폼들을 사용, 유지하고 있었다. 그리고 이 계정에는 고객과 기사들의 개인정보가 같이 저장되어 있었다.

Posted by '김용환'
,



elasticsearch에서 pagination을 하고 싶다면, search_after를 사용한다.


https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-after.html


위 url에서 제공하는 간단한 예제는 다음과 같다. 


GET twitter/tweet/_search

{
    "size": 10,
    "query": {
        "match" : {
            "title" : "elasticsearch"
        }
    },
    "search_after": [1463538857, "654323"],
    "sort": [
        {"date": "asc"},
        {"_id": "desc"}
    ]
}






여러 날짜별로 분리된 인덱스에서도 search_after를 사용할 수 있다.  


다음 예제는 search_after를 활용할 수 있도록 2개의 필드로 소팅하고 2개의 특정 값으로 pagination하는 예제이다. 




curl -XGET 'http://search.google.io:9200/plus.-*/_search?pretty' -H 'Content-Type: application/json' -d'

{  

   "version":true,

   "query":{  

      "bool":{  

         "must":[  

            {  

               "match_all":{        }

            },

            {  

               "range":{  

                  "@timestamp":{  

                     "gte":"2018-01-31T16:52:07+09:00",

                     "lte":"2018-01-31T17:52:07+09:00"

                  }

               }

            }

         ]

      }

   },

   "size":11,

   "sort":[  

      {  

         "@timestamp":{  

            "order":"desc"

         }

      },

      {  

         "_uuid.keyword":{  

            "order":"asc"

         }

      }

   ]

}

'



curl -XGET 'http://search.google.io:9200/plus-*/_search?pretty' -H 'Content-Type: application/json' -d'

{  

   "version":true,

   "query":{  

      "bool":{  

         "must":[  

            {  

               "match_all":{  


               }

            },

            {  

               "range":{  

                  "@timestamp":{  

                     "gte":"2018-01-31T16:52:07+09:00",

                     "lte":"2018-01-31T17:52:07+09:00"

                  }

               }

            }

         ]

      }

   },

   "size":11,

   "search_after":[  

      "1517388213000",

      "f938251211a3"

   ],

   "sort":[  

      {  

         "@timestamp":{  

            "order":"desc"

         }

      },

      {  

         "_uuid.keyword":{  

            "order":"asc"

         }

      }

   ]

}

'




Posted by '김용환'
,



ansible의 become은 sudo를 사용할 수 없이 실제 해당 유저로 로그인함을 의미한다.


http://docs.ansible.com/ansible/latest/become.html



ansible 예제처럼 특정 사용자로 인증 후 사용될 수 있다.


- name: Run a command as the apache user
  command: somecommand
  become: true
  become_user: apache




만약 root로 접근하고 싶다면, 미리 장비에서 root로 접근할 수 있는 설정이 되어 있어야 잘 동작한다.


www@aaa~$ sudo -i

root@aaa:~#



다음은 playbook 예제이다.




- name: create /home/www

  become: yes

  become_method: sudo

  file: path=/home/www state=directory owner=www group=www




- hosts: webservers

  tasks:

    - service: name=nginx state=started

      become: yes

      become_method: sudo



Posted by '김용환'
,




ansible-playbook을 실행하다가 ERROR! Specified --limit does not match any hosts 에러가 발생했다.


$ ansible-playbook -i test-stats docker.yml 


호스트 설정이 빠져서 발생한 것이니. host 설정을 살펴본다.


[docker] 

abc.test01.i.google.com



Posted by '김용환'
,