Author Archives: archmagece

Amazon Summit, Seoul 2018 참관 후기

이번 컨퍼런스의 키워드 : datalake, serverless, devops, msa

s3, redshift를 이용한 datalate 구축
lambda를 이용한 serverless architecture
이것저것 이용한 devops전략

machine learning, block chain도 있었지만…
AWS컨퍼런스다 보니 아키텍처럴한 내용이 주를 이뤄서 다른분야의 발표는 별로 안 보였다.
특정 saas의존적인 방식이라 좀 꺼렸는데… 어차피 AWS이외의 선택지가 없다고 보고 그냥 들어가야되는건가?
AWS생태계에 종속된 편안한 개가 될지… 야생의 힘들고 야근많이 하고 배고픈 늑대가 될지

serverless 클러스터 관련 오픈소스도 있는 것 같기는한데…
https://openwhisk.apache.org/
https://github.com/serverless/serverless
https://github.com/Miserlou/Zappa

Error: 인터넷이 되다말다~ Docker 사용시에 네트워크 충돌인 경우

원인 :

Docker Network에서 192.168.0.1을 잡아먹고 있다.

일반적으로 공유기에서 192.168.0.1을 게이트웨이로 쓰니까.. .충돌이 날 수밖에…

안될라면 안되던가… 분명히 어딘가 충돌나는게 확실한데

우분투 네트워크 다 날렸다가 초기화도 해보고 별짓도 다해봤었는데

원인이 이런데 있었다.

해결 :

도커 네트워크를 다 지워버린다.

192.168.0.1 잡고 있는놈만 지워도 된다.

그냥 확 날려버리느라 이걸 어느놈이 잡고 있었는지 확인도 안 했는데… 또 생성되면 봐야겠다.

원래 사용중인 네트워크를 침범하지는 않을텐데… 회사에서 192.168.1.1을 써서..

회사에서 생성할 때 192.168.0.1을 안쓰는 줄 알고 지가 쓴 것 같다.

Docker Registry

Docket Hub(hub.docker.com)

기본적으로 공개.

유료서비스 사용시 프라이빗

Quay(quay.io)

안써봄.

CoreOS에서 제공

AWS EC2 Container Registry

안써봄

Google Container Registry

google 인증을 통해 이용하면 편리

gcloud docker –push 였나..

https://cloud.google.com/container-registry/docs/pushing-and-pulling

직접 구축 docs.docker.com/registry

nexus에서도 지원되는것 같았는데

OpenStack swift 이용

Error: findOne 오류~ Optional Spring Data 1.x대비 2.x대에 크게 변한점

Message : Type mismatch Require Example<(???…)>

이상한 오류같은 메시지… kotlin 버전충돌 때문에 발생한 적이 있어서 그 부분을 찾았는데 이상해서 찾아보니 SpringData 문제였다.

분석

예전에는 이렇게 썼다.

이렇게 하면 CRUDRepository 내부의 T findOne(ID)가 호출이 됐는데

이 부분이 변경됐다.

CRUDRepository에는 Optional(T) findByID(ID)가 들어가 있다.

findOne을 호출하면

이녀석이 호출된다.

에러가 날 수 밖에..

처리

코드는 다 바꿔야 한다.

findById(ID).get()

이전코드를 그냥 써야하는 상황에서 쉽게 바꾸려면 이렇게만 해도 되고..

아니면 Optional을 활용하는 방안을 찾을 필요가 있다.

Null처리 문제 때문에 생긴 것 같다

Error: Vagrant box respository

Message

Ubuntu 17.10 기본 apt install vagrnat 설치할 때 리포지터리 URL문제

설정을 변경해주거나 vagrant 공식 사이트에서 deb를 다운받아 설치하면 해결

주소가 바뀌었다.

https://atlas.hashicorp.com/ubuntu/xenial64

https://vagrantcloud.com/ubuntu/xenial64

Vagrant global 설정 변경

??어뜨케 하나

/home/{USERNAME}/.vagrant.d/data/checkpoint_cache??

아닌것같고… 확인필요

Vagrantfile 변경

https://www.vagrantup.com/docs/vagrantfile/machine_settings.html

공식 사이트에서 deb설치

그냥 새로 깔았다.

찾으려면 설치경로 전체에서 문자열 검색해야할 것 같다.

분산형 전력거래 블록체인 네트워크(코인)

분산형 전력거래

친환경 에너지가 이슈가 되면서 갑자기 주목받는 기술이다.

태양광, 풍력 등 친환경에너지는 원전이나 화력에 비해 밀도가 낮게 넓은 지역에 퍼져 있어서 수집을 하려면 넓은 곳에 조금씩 시설을 만들 수 밖에 없다.

그리고 자연에 의존하다 보니 원하는 시간에 원하는만큼의 전력을 생산하지도 못하고 불규칙적으로 생산된다.

따라서 예전엔 옵션이었던 ESS(Energy Storage System)가 이제는 필수 시설이 돼 버렸다.

이렇게 퍼져있는 에너지원을 한 기관이 관리하는것도 사실 불가능 한 것은 아니다. 그런데… 에너지원이 이렇게 분산 돼 있는데 꼭 중앙계통을 거쳐서 추가비용을 발생시키며 에너지를 소비해야하는가에 대한 의문이 생긴다.

지역에서 전기가 생산된다면 지역의 수요는 그 전원으로 채울 수 있는 것 아닌가

그러면 지역에서 소규모로 생산되는 전기의 거래를 어떻게 처리할 것인가에서 분산형 전력거래 플랫폼에 대한 논의가 시작됐다고 봐야할 것 같다.

국내시장에의 적용

친환경에너지 생산을 많이 하지만 한전의 계통을 거치지 않고는 가정까지 전기가 배달되기 힘들다. 전력 계통을 한전이 독점하는 국내시장에서 해당 방식은 적합하지 않아 보이기도 한다.

전력 거래소와 가정용ESS

이 요소가 추가되면 얘기가 달라질 수 있다.

전기의 가격이 실시간으로 변동된다면

가정용ESS에서 전기가 싼 시간에 전기를 저장하고 비싼시간에 판매를 할 수 있다.

전라도에 있는 태양광발전소에서 생산된 전기가 남을 때 서울에 있는 ESS에 보관할 수도 있다.

내일의 전력생산량을 정확히 예상하고 주문을 낼 경우 추가적인 수익을 벌어들일 수도 있다.

전력의  금융화

이렇게 전력에도 현물선물옵션거래 시장이 열릴 수 있게 된다.

하지만 여기서.. 또 다시 의문이 생긴다.

(코인)퍼블릭 블록체인 네트워크가 꼭 필요한가?

글쎄… 그리고 코인은 여기서 어떤 역할을 할까

전력 거래소 코인

이 코인은 아마 네트워크의 지분을 나타낼 수 있을 것 같다.

MasterNode 코인이 적합해 보인다.

모든 전력생산자 수요자는 하나의 Node가 되며 각자의 특성을 공유할수도 있다.

일반가정 / 태양광발전소(2~4시 100kW) / 일반가정(ESS10kW보유) / 화력발전소1MW

전력은 수요지역에 따라 다른 가격이 책정되며 시간대에 따라 가격이 변동할 수 있다.

안정적인 공급을 원한다면 정기계약을 통해 고정가 공급을 받을 수도 있을 것이고

그래도 잘 모르겠다.

중앙에서 잘 처리하면 그것도 괜찮을 것 같다.(내가 중앙이라면…)

Error : unary operator expected – 쉘스크립트 타입관련 문법

Message : ./db_migrate.sh: line 3: [: =: unary operator expected

검색해보니 정확히 같은 사례가 나와서 바로 해결

https://stackoverflow.com/questions/13617843/unary-operator-expected

리눅스 환경에 배포하다보면 shell script 사용을 할 일이 상당히 많은데…

쉘스크립트 공부해서 쓰는것도 아니고 그때그때 찾아가며 쓰다보니 자주 맞딱뜨리는 문제

이렇게 비교를 했는데

바시Bash는 이렇게 알아듣는다고

해결 – 아래의 표기법을 쓴다

따블 대괄호Braket

변수쌍따옴표

 

Error: rbenv 설치 오류

Message

미친 왜 오류나나 보는데 별 오류날 건덕지도 없어 보인다. 의존성 설치하라는거 다 설치했고

해결

rbenv의 버그라고 봐야할 것 같다.

우분투 최신버전이라 GCC7이 기본으로 설정되어 있는데

이걸로 빌드하면 오류가 나는 것 같다.

gcc-4.8을 강제 지정해서 해결

코틀린Kotlin에서 자바 인터페이스 getter 처리

문제의 getter를 포함한 UserDetails 인터페이스

자바에서의 처리

코틀린Kotlin에서의 처리

1.

2.

3. 이게 제일 깔끔하고 알아보기 편하다.

상황에 따라 1,2번을 써야하는 경우가 있기는 할까

IT 프로그래머 양성소 – 직업전문학교의 세대교체, 부트캠프

IT 교육기관

부트캠프 맥 윈도우 멀티부팅해주는 유틸 이름으로만 생각하고 있었는데.. 요즘은 다른 의미로도 사용되고 있었다.

개발자들을 투입가능한 수준으로 가르치는 캠프?

이름이야 영어식으로 멋지게 지어놨지만…

따지고 보면 그냥 직업교육학교 아닙니까?

옛날에는 비트컴퓨터, 삼성멀티캠퍼스, 쌍용교육센터 정도가 있었고

  • 비트 http://www.bitacademy.com
  • 삼성 http://multicampus.com
  • 쌍용 http://www.sist.co.kr

학원보다는 전문대학 수준의 교육기관이지만, 얼마 못가 없어진 NHN NEXT도 있었다.
사회공헌 활동의 일환으로 시작했다고 생각했는데 폐지됐다니…
NHN 이름걸고 우수한 자원들 쓸어모아 갔었는데 걔네들 그냥 대학 가게 냅뒀으면 좋은대학 가서 잘 살텐데 뭔 물을 먹인건지 모르겠다.

위의 학원과 같은 격으로 보지는 않지만 ‘IT뱅크’도 있다. 커뮤니티에 광고를 너무 징글징글하게 해대던…
(네이버 지식인에 IT뱅크를 검색 해 주세요)

꼭 어느 학원을 지칭하는 것은 아니지만 어떤 막장 국비지원 직업교육학교는 학원생 한명 끌어올 때 마다 영업사원이 100만원씩 커미션 가져간다는 말도 있었는데 ~~

 

위는 과거의 학원들…

그리고 세대교체 된 학원들은

부트캠프

라고 리브랜딩을 해서 기존의 국비지원 직업교육학교와 차별화를 꾀하고 있다.

우수 IT인력을 양성하겠다는 조금의 사명감도 가지고~

  • 코드 스테이츠 https://codestates.com
  • 코드스쿼드 http://codesquad.kr

학원비가 꽤나 비싼데… 정부지원이 없는 것을 감안했을 때 그렇게 무지막지하지는 않다.

(국비지원을 받는 조건이 좀 있어서 이것을 채우기 위해 비용을 쓰느니 그냥 학원교육이나 잘 하자고 생각한 듯?)

성공조건

졸업생(수료생?)의 실력수준만 보증할 수 있다면, 이 종류의 학원들이 초급개발자 레벨증명? 역할을 해 줄 수도 있겠지만…

그러려면 입학/수료시 수준검증이 필요할텐데 영리활동을 하는 학원에서 그게 지속적으로 가능할지는…