[Mac] Mac 패키지 관리 툴 – Homebrew + Cask

Homebrew

[공식 사이트](https://brew.sh/index_ko.html)

예전에는 Mac에서 패키지관리를 할 때 MacPort를 많이 썼는데
요새는 Homebrew진영에 주도권을 넘겨준 모양새다.

Port는 소스코드를 받아서 컴파일 후 설치를 하는데 Brew는 미리 컴파일된 파일을 다운받아 바로 설치를 하니 속도가 빠르고 오류가 적다.

설치 방법

스크립트

사용법

Homebrew Cask

[공식 사이트](https://caskroom.github.io)

기존의 Homebrew가 라이브러리, 데몬 설치에 사용됐다면
Cask는 유틸리티 설치에도 사용된다

사용법

검색은 공식사이트에서 해도 된다

https://caskroom.github.io/search

사용후기

cask 설치 실패가 나는 경우도 종종 있다.

환경때문에 그런 것 같지는 않고 자주 안 쓰는 패키지는 관리가 안되는 경우가 종종 있는 것 같다.

공식앱스토어가 아닌 이런곳에서 패키지를 설치하는게 보안상 안좋을 수도 있을 것 같다. 리포지터리나 dns가 해킹당하는 경우 아니면 패키지에 바이러스를 심어서 배포하는 경우에는 위험할 수도 있다.

괜찮겠지?

[소프트웨어] Kotlin+Java-SpringBoot 프로젝트 진행 후기

프로젝트라고 할 수준은 아니고 새로 만드는 마이크로 서비스에 꼬출린을 적용하다가 겪은 일들

사용기술 키워드

Java,Kotlin,SpringBoot,JPA,QueryDSL,RESTful API

문제상황

문법

TypeScript,Swift,Kotlin 문법이 상당히 비슷하다.

세개 언어의 합병은 불가능할까?

Reflection, Ananotation

JVM언어라 최종적으로 동일한 바이트코드가 나오는거니까 리플렉션도 동일한 형태로 나오겠지 생각했는데 아니었나보다.

리플렉션이 필요한 부분에서 오류가 나는 것 같다.

QueryDsl, jackson, Lombok(은좀다르지만)

 

생성자 선언

이건 좀 다른데.. 그냥 언어에 익숙하지 않아서 그런면도 있고

되게 편한것처럼 써있던데 막상 써보면

문법이 그리 편하지는 않다.

Lombok

Java와 혼용시 lombok 적용이 안된다.

컴파일타임 문제때문에…

같은 모듈에서 Java+Kotlin을 쓰는경우 오류가 난다.

해결방법은…(회피방법은?)

core<–web

core에 Java를 쓰고 web의 kotlin에서 가져다 쓰는건 가능하다.

근데 왜 쓰나?

그냥 한 번 써볼라고

그리고 아직 많이는 안 써봤찌만 쓰다보니 언어 자체가 조금 심플함이 좀 있다.

Vagrant berkshelf 동작이 안되는 경우

vagrant도 ruby  기반이라서 내장 ruby gem을 가지고 있다

내장 ruby gem과 rbenv/rvm/그냥설치… 된 다양한 루비환경이 분리되어있기 때문에 생기는 문제

 

운이 좋으면 두개를 겹쳐서 설치해도 되는 경우도 있다.

명령어가 있는 gem은 설치시 path를 셋팅한다.

운이 좋으면 높은 우선순위를 잡아서 실행이 될수도 있다.

 

 

 

해결하려면 다른환경에 설치된 gem을 지우고 vagrant 내장 gem을 따로 설치 해 주면 된다.

gem uninstall chef chef-zero berkshelf knife-solo

맞나? 이거 대충써놨다가 수정하려니까 기억이 안난다.

딱봐도 아닌데… 이걸 지우는게 해결책일리가 없다.

 

vagrant 내장 gem을 설치해야할 것 같은데

다음에 생각나면 다시 해봐야겠다.

 

 

Vagrant에서 .bashrc source가 먹히지 않는 문제

오류상황

vagrant shell에서 rbenv가 안먹힌다.

vagrant ssh 접속해서 보니 설치가 잘 돼 있고 path도 잡혀있는데

vagrant 설치시에 command not found가 발생

source가 안먹히는건가? 라고 생각

 

검색해보니

키워드 :

  • vagrant
  • command not found
  • source
  • not working

맘에드는 대답이 안나왔는데… 찾다보니 이런게 보인다.

https://stackoverflow.com/questions/29628635/why-is-source-home-vagrant-bashrc-not-working-in-a-vagrant-shell-provisionin

.bashrc에 인터렉티브 쉘이 아닌경우 리턴을 시키는문구가 있다고?

 

ubuntu .bashrc를 확인

.bashrc의 맨 앞에 이런게 있다.

If not running interactively, don’t do anything.
인터렉티브 쉘이 아닌경우, 아무것도 하지마.

rbenv공식 메뉴얼에는 .bashrc에 패스를 잡으라고 돼 있었는데..(메뉴얼이 바뀐건가? bash_profile에 하라고 돼있네)
어쨌든 이전 메뉴얼대로 하면 안돌아간다.

위의 검색결과에 나오는 스택오버플로우에는
.bashrc에서 return명령을 없애라고 하는데… 필요해서 해놨겠지.. 이 방법은 안쓰겠다.
대신에 .bash_profile/.profile에서 패스를 잡고 source .profile을 하면 된다.
아니면 .custom_profile을 만들어서 임포트해도 되고 .profile.d/를 써도될듯

[리뷰]Angular 앵귤러 첫걸음 – 제목에 충실하게 처음시작할 때 보면서 개념을 잡기 좋은 책

제목 : 앵귤러 첫걸음
출판일 : 20170601
저자 : 조우진
역자 :
isbn : 9788968486807
출판사 : 한빛미디어

책 소개에 앞서

먼저, 이 책을 보는 시점의 제 기술수준을 밝히면
5~6년차 Java개발자로 웹개발/백엔드개발을 주로 해왔구요. 요즘은 백앤드 개발을 주로 하고 있고
HTML,CSS,JQuery,Bootstrap.. 등등 보통 SI개발자들 많이 쓰는 기술 다 비슷하게 써 봤을 것 같습니다.
TypeScript, Angular – 아예 처음은 아니고 공식사이트에서 튜토리얼을 돌려보고 간단한 페이지를 만들어본 경험은 있는 상태.

이 책을 보게된 동기

요즘엔 동적화면구성을 많이 하다보니 화면한개에 HTML, 스타일, 스크립트까지 너무 길어서 다 만들고나면 어디에 뭐가 있는지 기억도 안 날 지경으로 코드가 망가져 버리는데
정리를 하려고 해도 스크립트 코드 특성상 디버깅/테스트도 힘들고 하다보니 모듈화를 해서 구성을 하는것도 쉽지가 않구요.
결국엔 기능만 구현 해 놓고 버리게 되는 경우가 많습니다.

이런문제를 해결하기 위한 방법 중 하나로 Angular, React .. 등의 기술에 관심을 갖고 살펴보던 와중에
한빛 도서리뷰어에 뽑혀서 이 책을 보게 됐습니다.

공식사이트 : 앵귤러 첫걸음 http://www.hanbit.co.kr/store/books/look.php?p_code=B3348481708

좋은점/아쉬운점

여기부터는 책을보면서 그때그때 메모했던 부분을 옮겨적은거라 내용이 자연스럽게 이어지지 않을 수 있습니다.

  • Angular/Vue/React… 난 무조건 Angular~ 이러는 경우가 아니라면 여러 기술을 놓고 엄청 고민을 하게된다.
    Angular가 다른기술에 비해 뭐가 좋고 왜 Angular를 선택해야 하는지 비교분석이 있었으면 좋았을 것 같은데 없어서 아쉽다.
  • Angular 프레임워크의 구조부터 설명이 되어 있어서 이해에 많은 도움이 된다.
  • 어떤 사람에게는 오히려 장점일수도 있는 부분이지만…
    좀 간단히 설명하고 넘어갔으면 싶은 부분에 대한 설명이 과도한 경우도 간혹 있었다.
  • 윈도우도 맥의 brew처럼 scoop, chocolate같은 패키지 관리자가 있는데…
  • 스타일 차이일 수도 있지만 개인적으로 1~2단원에서 프레임워크의 전체적인 구조를 설명하고 뒷쪽은 세부적인 내용을 배치하는게 좋다고 생각한다.
    이 책은 좀 무작정따라하기’ 시리즈류의 구성스타일을 가지고 있어서 … 그냥 모든 내용이 순서대로 나온다.
    공식 홈페이지에 가면 도큐먼트가 다 있지만 굳이 책을 사서 보는것은 요약집(참고서?)를 사보는 것과 비슷한거다.
    책을 다 외우는 경우도 없을거고 한번 본 책을 다시 뒤적여보는 개발자도 잘 없을거다.
    기술의 뼈대만 이해하고 책의 인덱스와 키워드만 만 머릿속에 입력하고 나머지는 검색인데
    너무 교과서적인 설명이 나와서… 보는데 시간이 오래걸리는 문제가 있다.
  • ES6와 ts 언어 자체에 대한 설명에도 좀 할당이 되어있어야 하지 않을까 싶다.
  • 책의 편집에서 아쉬운점 ex)100p

이 부분도 취향차이겠지만
텍스트로 길게 설명하는 것보다 소스에 주석처럼 설명이 붙어있는게
그리고 구조도와 설명이 함께 있는게 이해가 빨리 된다.

후기

처음 Angular를 접한 사람이 궁금해할만한 부분들을 구석구석 빠짐없이 잘 소개 해 주는 책으로
인내심을 가지고 끝까지 본다면 Angular 개발을 하는데 큰 도움이 될 것 같다.
구성/편집은 내 취향이 아니라서 좀 아쉽다.

Vagrant Base Box 만들기 – HyperV

공식문서
https://www.vagrantup.com/docs/boxes/base.html
https://www.vagrantup.com/docs/hyperv/boxes.html

용량줄이기
https://blog.asamaru.net/2015/10/14/creating-a-vagrant-base-box/sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY

그냥 이렇게만 따라했다.
정리는 나중에봐서…

완성된 박스는

https://app.vagrantup.com/archmagece/boxes/sb-ub16.04.2-hyperv
여기 올릴 생각인데

GIS 관련 정보 2017

데이터 소스

국토지리정보원 www.niii.go.kr
기상청 www.kma.go.kr
환경공간정보서비스 https://egis.me.go.kr
국가수자원관리종합정보시스템 http://www.wamis.go.kr
도로명주소안내시스템 http://www.juso.go.kr
표준노드링크 http://nodelink.its.go.kr
– 지능형 교통체계 관리 시스템
부동산 공시지가 http://www.realtyprice.kr/notice
부동산 실거래가 http://rt.molit.go.kr/
서울지도 http://gis.seoul.go.kr

학습/커뮤니티

공간정보중앙교육센터 https://necgis.go.kr
http://www.biz-gis.com/

데이터 변환

pdf to shp
cad to shp

관련툴 몰랐던거

QGIS – 지형분석
– wheel shade
– relief
– roughness index

QGIS2 3JS – 브라우저 연동

추가지식

http://www.nsdi.go.kr/?menuno=2926
http://www.dcvelocity.com/articles/20111128top_10_reasons_for_implementing_wms_wfm_together/

Provisioning Tool

Chef
Vagrant
Puppet
Ansible

https://cloud.google.com/solutions/google-compute-engine-management-puppet-chef-salt-ansible

https://brunch.co.kr/@jiseon3169ubie/2

https://xebialabs.com/the-ultimate-devops-tool-chest/provisioning-config-management/

웹개발시 인프라 구성

다음과 같이 환경을 구성하고
여기에 맞춰서 devops 구성을 하면 된다.

1. dev

개발환경
Vagrant, Docker등 활용해서 환경구성

1-1 dev-local

각자 DB, MQ 구동

1-2 dev-remote

동일 DB, MQ 구동

2. real

idc, cloud 환경

2-1 real-stage

product 배포전 테스트
확인 후 인스턴스 종료

2-2 real-product

product실제서버 batch인스턴스 이외에는 항상동작