VSCODE ssiba

터미널과 진짜 터미널의 환경변수가 다르다

아래 명령으로 확인

echo $PATH

command+shift+p – Preferences: Open Settings (JSON)

"terminal.integrated.env.osx": {
  "PATH": "$PATH"
}

REF

  • https://stackoverflow.com/questions/43983718/set-global-path-environment-variable-in-vs-code

UNIX 유닉스의 탄생

그냥 옛날이야기나 써 있을 줄 알았는데
기술서적이었다

유닉스 계열을 많이 경험 해 보지 않은 사람이 보면 대부분 내용은 그냥 넘어가야 하지 않을까
awk, sed, grep, … 을 한 번도 써 보지 않았다면 내용에 몰입하기 힘들 것 같다.

자주 사용하던 기술들이 어떻게 만들어졌고 왜 생겼는지를 알게 되는것으로도
기술을 이해하는데 도움이 되니
유닉스계열(리눅스)를 자주 사용하는 사람이라면 한번 보면 좋을 것 같다

미국의 벨 연구소

kt연구소랑 비슷한 분위기일 것 같다
독점기업의 지원금에 돈 걱정없고
빡빡한 듯 하지만 자유롭고
연구 좀 실패해도 아무도 뭐라 안 하고

KT연구소도 좀

바이든 대통령님 초거대기업 MS의 자회사 Github의 횡포를 막아주세요.

바이든 대통령님, 안녕하십니까.

저는 빌드배포산업 협회원이며 해당 산업에 종사하고 있는 영세 자영업자입니다.

근래 거대기업 MS가 막대한 자본력을 바탕으로 개발자의 성지인 Github서비스를 인수하는 사태가 발생하였읍니다. 오픈소스 정신으로 무장한 개발자들의 공동체가 거대 자본의 발밑에 들어가 버린 사건으로 저와 저희 협회 그리고 전세계 개발자들이 많은 걱정을 하였읍니다. 하지만 한동안 MS는 별다른 행보를 취하지 않은 상태로 Github를 기존처럼 운영하는 척을 하였읍니다. 하지만 Github Action이라는 기능이 추가되면서 사건은 급전직하 되어 버리고 말았읍니다.

Github Action이라는 기능은 기존에 기술자들이 배쉬 쉘스크립트를 활용해 한줄한줄씩 한달에 거쳐 만들던 빌드배포 기능을 와이엠엘 형태로 선언적으로 쉽게 만들수 있게 해 버리면서 많은 빌드배포 개발자들의 일자리를 빼앗아 가고 있읍니다. 이는 AI보다 더욱 목전에 닥친 일자리 위협으로 저희 빌드배포 개발자들은 생명의 위기를 느끼고 있는 상태입니다.
 또한 비슷한 혁신을 꿈꾸며 사업을 키워나가던 Travis, CircleCI 등의 회사는 꿈을 펴기도 전에 위기에 빠져 버렸습니다. Github Action은 기존 Travis, CircleCI가 개발한 와이엠엘형태 선언방식을 그대로 따라한 아류작이지만 MS의 초거대자본을 등에업은 Github의 독점력을 바탕으로 급격하게 시장을 탈취 해 가고 있읍니다. 기존 서비스를 모방했지만 선언방식을 조금 더 쉽게 개선하고 다양한 샘플과 풍부한 도큐먼트를 제공하여 기존 업체들은 경쟁이 불가능하도록 전방위 압박을 받고 있습니다. 고사위기에 처한 영세 스타트업과 영구적 실업위기에 빠진 빌드배포개발자들은 한숨속에 잠을 못 이루고 있읍니다.

 빌드배포산업은 소프트웨어 뿌리산업으로 웹개발 업계를 지탱하고 있읍니다. 저희가 무너지는 것은 괜찮지만 저희 업계가 무너지는 것은 소프트웨어 업계의 몰락을 뜻합니다. 저희 협회원 뿐 아니라 인접산업군 그리고 그 가족들과 그 친척들과 그 친구들까지 10억명의 생계와 친목이 걸려 있는 중대한 사아님을 말씀 드립니다.

빌드배포산업 종사자의 한 명으로써
저희 산업협회의 입장을 전달 드리겠읍니다.

첫째, 빌드배포산업협회는 해당 산업을 중소기업 적합업종으로 지정하여 자본금 1000억원 이상의 업체들이 진출하지 못하게 막아 줄 것을 요구하는 바입니다. 이는 저희 협회뿐만 아니라 인접산업에도 해당되는 문제로 MS는 운영체제와 클라우드 이외의 산업에 진출하는 것을 영구적으로 막는 규정을 미국 연방의 재수정헌법에 명시해 주실 것을 요청 드립니다.
둘째, 저희 빌드배포산업협회는 MS 윈도우즈엑스피의 소스공개를 요청하는 바입니다. MS는 해당 오에스의 업데이트를 임의로 중지시키고 업데이트를 해 주지 않아 사용자들의 오에스 선택권을 심각하게 침해하고 있는 상태입니다. 윈도우즈10을 강매하는 것과 동일한 행위로 엠에스의 독점적 영향력을 통한 시장 교란행위에 해당합니다. 윈도우즈 엑스피의 소스코드를 공개하여 사용자들이 스스로 보안문제를 해결하면서 사용할 수 있게 만들어 주실 것을 요청 드립니다.

해당 요구사항이 받아들여 지지 않을 경우 저희는 협회 차원에서 MS불매운동과 더불어 바이든 대통령 탄핵 평화촛불 네트워크를 가동시키기로 내부적으로 협의된 바 있읍니다.

실력행사를 할 일이 없길 바라며

서울에서 빌드배포협회 배상

CAS – 로컬실행/개발환경 만들기

뭔가 괜찮은 것 같으면서도 애매한 오픈소스 프로젝트…
복잡함 때문에 몇 번 사용하려다가 포기 했는데 이번에 인증서비스를 만들면서 다시 사용하려고 한다.

jasig CAS일 때 보고 apereo로 바뀐거 보고… 세번째 정도인 것 같다.
이전에는 기능을 축소해서 직접 개발했었는데

복합인증을 구현하려면 쓰는게 나을 것 같다

경쟁제품

유료 무료 다 포함해서 대강

무료

  • Keycloak
  • CAS
  • JOSSO
  • LemonLDAP
  • Shibbolet ldP
  • OpenAM
  • Gluu
  • https://freeradius.org/

유료

  • Auth0
  • AWS Cognito

기타

  • https://gist.github.com/bmaupin/6878fae9abcb63ef43f8ac9b9de8fafd
  • https://www.gluu.org/blog/gluu-versus-keycloak/

조금씩 특성이 다르긴 하다.

CAS 특징

  • 프로젝트가 굉장히 잘게 나눠져 있다.
    모듈형으로 가져다가 사용하라는 것 같은데…
    의존성이 복잡해서 그렇게 쓸 수가 없다
    도큐먼트는 사용법에 관한 것만 있고
  • 설치형으로 사용하려고 보면…
    cas-overlay-template 라는게 있기는 한데
    기본으로 지원되는 부분을 제외하면 설치형으로 쓸 수 있는건 아니고 거의 소스레벨에서 수정해서 써야만 한다.
  • 스프링을 매우 잘 쓴다. 나도 스프링 꽤 써봤다고 생각했는데 처음보는게 조금씩 보인다
  • Springboot autoconfigure 사이의 엄청난 충돌이 발생
    실행형으로 만들게 아니라면 그냥 없애야 하지 않을까

어쨌든 소스레벨에서 분석해서 사용해야 하고
필요한 부분만 뽑아쓰긴 힘들어 보인다

설치방법

소스

docker 컨테이너를 제공 해 주면 좋겠는데…. 커스텀을 해서 쓰라는 철학을 가지고 있는 애들이라 그런지 통짜로 제공 해 주지는 않는다.
그래도 쓰기 편하게 템플릿이 제공된다.

https://github.com/apereo/cas-overlay-template

이런것도 제공 해 주고 많이 발전했다.

아래 순서대로 치다보면 뭐가 뭔지 알 수 있을거다. README.md와 비슷하지만 약간 다르다.

git clone https://github.com/apereo/cas-overlay-template cas-server
cd cas-server
./gradlew clean build
./gradlew downloadShell runShell
./gradlew allDependencies

설정파일 수정

docker-compose 실행테스트를 해야되서 설정파일을 수정 해 준다

# /etc/cas/config/cas.properties

logging.config=file:/etc/cas/config/log4j2.xml

server.port=8080
server.ssl.enabled=false

실행

docker-compose up

화면수정

수정가능 항목의 목록을 얻는 명령어

./gradlew listTemplateViews

템플릿을 소스코드로 가져오는 명령어

./gradlew getResource -PresourceName=[여기뭐가들어갈까]

기능수정

이쪽 철학이 그런가보다. 디비를 직접 관리하거나 하지 않는다.
그럴거면 jpa 연동하기 쉽게 인터페이스를 달아주던가 하면 좋을텐데 그런건 또 안해놨다.

트리거 설정

각 기능이 실행될 때 마다 앞뒤로 트리거를 달 수 있다.
인터셉터
groovy

아직 안해봐서잘 모르겠지만 할 수 있다.

배포

리버스 프록시 사용

요즘 리버스 프록시 안쓰는 경우가 더 드물지 않을까

cas.server.name=https://domain.tld
cas.server.prefix=/

server.port=8080
server.ssl.enabled=false
cas.server.http.enabled=false
cas.server.httpProxy.enabled=true
cas.server.httpProxy.secure=true
cas.server.httpProxy.scheme=https
cas.server.httpProxy.protocol=HTTP/1.1

결론

overlay template 설치하려면 keycloak, gluu 등 다른 쉬운걸 쓰는게 나을것으로 보인다
인증방식은 어차피 다 표준프로토콜이 있어서 한두개 빼고는 다 비슷하게 제공된다

소스레벨에서 사용하려면 cas를 쓰는게 나을까… 그냥 만드는게 나을까
아직 시작단계라 정확하지는 않지만
이걸 쓰기보다는 필요한 부분 소스만 참고해서 따로 만들게 될 것 같다

REF

  • https://apereo.github.io/2019/01/07/cas61-gettingstarted-overlay/
  • https://apereo.github.io/cas/6.3.x/configuration/Configuration-Server-Management.html
  • https://apereo.github.io/2018/01/05/cas-deployment-with-proxy/

Error – docker 내부에서 자꾸 다른 서버를 찾아

local dns
dockerhub local proxy를 설정했는데
redis 캐시에서 자꾸 다른 서버의 ip를 찾고있다.
docker 컨테이너 ip면 172.x.x.x라야하는데
192.168.0.x을 찾는다

????설정이 잘못됐나??? 않인데
container insptection
컨테이너 내부 /etc/hosts를 봐도 이상없음

문제

nslookup를 실행했더니 data-redis.polypia.net을 찾고 있다

local dns에 *.polypia.net 을 설정했더니

docker registry에서 data-redis를 찾을 때
*.polypia.net를 찾는다
일반적으로는 이상이 없을텐데
/etc/hosts를 우선적으로 참고할테니까
docker registry에서만 발생

docker registry 소스에서도 별거 사용된게 안보인다
좆같은 뉴트리아 언어 특성상 /etc/hosts를 보지 않는 모양

https://github.com/golang/go/issues/22846

뉴트리아 잘못 쓰다가 네트워크에 dns하나 심으면 아주 통째로 털어먹히겠네

[나중에 AI가 깔끔하게 정리해줄 문서]