NAS,홈오피스 – OS,솔루션

NAS 솔루션

  • NextCloud
  • https://www.openmediavault.org
  • http://rockstor.com
  • https://www.amahi.org
  • https://lime-technology.com

NAS 인프라, NAS 서비스 섞여있음

OS

  • www.nas4free.org
  • FreeNAS https://www.freenas.org
  • http://rockstor.com/

홈오피스

  • www.zentyal.org
  • NethServer https://www.nethserver.org

Media

  • https://www.amahi.org/

인프라

  • https://www.pfsense.org/

데이터 아키텍처 전문가가 되는 방법 – 최수진

DA(데이터 아키텍처) 컨설턴트에 관한 얇은 책

2021년 이후에는 조금 맞지 않을
그리고 DA편향적인 생각이 많이 적혀있다.
개발자 다음단계를 준비한다던가…

DBA,DevOps,DA,Frontend,Backend…는 직군이 되서는 안되고 직책이 되야한다.
SoftwareEngineer는 보통 이 교집합을 수행한다.
DA만 하는 IT컨설턴트가 존재 하지 않는게 최선이다.

컨설턴트의 강점은 실력이 아니다.
권한이다.
검찰이 경찰보다 뛰어난건 지능이나 개개인의 능력이 아니라
지역의 이해관계에 얽히지 않은 벽을 뛰어넘는 권한이다.
컨설턴트도 마찬가지
대기업의 특정 부서나 직급에 상관없이
궁금한 것을 물어보고 잘못된 것을 지적할 수 있는 권한이다
제 3자이고 곧 떠날 사람이기 때문에 가능한 부분이다.

LG에서 휴대폰 사업이 잘못나가고 있는것을 누가 지적할 수 있었을까
구성원 하나하나다 다 개붕신이라 문제점을 인식하지 못하고 있었을리는 없다
좆지 직원들도 갤럭시,아이폰을 좋아하니까

  • DA
  • DBA
  • BA
  • AA
  • TA
  • ISP : Information Strategy Planning

고객의 업무에 맞는 데이터 모델
vs
개발하기 쉬운 데이터 모델

보통은 개발하기 어려운 데이터 모델은 잘못된 설계의 결과물이다
기존에 잘못된 업무를 그대로 따라서 모델링을 하면 이런 결과가 나온다
1 보통은 업무 자체가 변경되어야 하는 경우
2 상태값 설계가 제대로 안 된 경우

프로젝트 시작전에 처리되서 문서화되어야 할 것들

  • 일정
  • 설계
  • 용어정의

보통 이런것들은 무시되고 바로 프로젝트가 시작된다
프로젝트 진행과정에서 지속적으로 오버헤드를 발생시키는 문제들

개발자: SI-SM
DA: 모델링-튜닝

Ktor web framework – kotlin

kotlin web framework인데…
간단하게 rest api 만들기 좋다.
간단한 rest api가 필요한가??
프로토타이핑 정도 하는거라면 모를까
그냥 스프링 쓰는게 나을 것 같다

뭔가 많이 부족하다

추가기능 – 만들거. 있음좋을거

  1. API route에서
    route 이름, 주소URI 가져오기
  2. 공통파라미터 상위에서 선언한거 하위에서 같이 쓰기
    route (/game)
      val user_id = Header
      get {
      user_id
    }
    post {
    user_id
    }

언어 구조 때문에 만들기 힘들 것 같다

실용주의 프그래머The Pragmatic Programmer,

자기계발서 읽는 느낌이다
다 맞는 말인데
머리에 남는건 별로 없는

  • 이미 하고 있는 것들
  • 하면 좋은 것들
  • 해야만 하는 것들
  • 할 수 없는 것들

이렇게 분류 해 볼 수 있을까

그냥 한번 읽어보고 넘어가면 될 것 같다
잠재의식 속에 남아있겠지

커맨드라인

find . -name '*.c' -newer Makefile -print
zip archive.zip *.h *.c
tar cvf archive.tar *.h *.c
find . -name '*.java' -mtime +7 -print
find . -name '*.java' -mtime +7 -print | xargs grep 'java.awt'
grep '^import '*.java |
  sed -e's/.*import *//' -e's/;.*$//' |
  sort -u > list

여기서 할 줄 아는게……압축하는거

IAM/SSO 관련기술

완제품

  • Keycloak
    https://github.com/keycloak/keycloak
  • Gluu
    https://gluu.org/docs/gluu-server/4.1/installation-guide/install-docker/
  • OpenAM, OpenDJ
    https://github.com/OpenIdentityPlatform/OpenAM
  • JOSSO
    http://www.josso.org/
    https://github.com/atricore/josso2
  • LemonLDAP
    https://lemonldap-ng.org/welcome/
    https://github.com/LemonLDAPNG/lemonldap-ng-docker
  • Shibbolet ldp
    https://wiki.shibboleth.net/confluence/display/DEV/Source+Code+Access
    https://github.com/Unicon/shibboleth-idp-dockerized
  • 389 Directory Server
  • GLAuth
  • RazDC
  • FreeIPA
    https://www.freeipa.org/page/Main_Page

라이브러리

  • CAS
  • https://github.com/spring-projects/spring-security-saml
  • https://github.com/spring-projects/spring-security-oauth
  • https://github.com/spring-projects/spring-security-kerberos
  • https://github.com/samitpal/simple-sso
  • https://github.com/go-oauth2/oauth2
  • Apache Shiro
  • https://github.com/jcasbin/shiro-casbin
  • pac4j
  • Apache CFX https://cxf.apache.org/
  • Apache Fortress
  • geronimo.apache.org
  • https://casbin.org/
  • https://github.com/casbin/jcasbin
  • https://github.com/casbin/casbin
  • https://github.com/OpenConext/Mujina
  • https://github.com/pac4j/spring-webmvc-pac4j
  • https://github.com/Neloop/jaclp

프로토콜

  • OAuth
  • JWT
  • SAML
  • Kerberos
  • Radius
  • CAS
  • Session
  • BasicAuth
  • LDAP
  • OpenID

REF

  • https://www.getkisi.com/blog/authentication-protocols-overview
  • https://en.wikipedia.org/wiki/Authentication_protocol
  • https://www.geeksforgeeks.org/types-of-authentication-protocols
  • https://developer.okta.com/docs/concepts/saml

맨먼스 미신The Mythical Man-Month, 프레더릭 브룩스

내용

  • Prototype – 두 번째 시스템
    : 첫번째 시스템은 프로토타입이다
  • 1:10 업무효율
    : 같은 조직내에서 비슷한 급여를 받는 살마들 사이에도 업무능력 차이는 10배
  • 일정 늘어짐
    : 일정은 항상 늘어진다. 일정을 너무 루즈하게 잡은게 아니라면. 돌발상황에 대비해 조금 타이트하게 업무처리
  • 문서화
    : 워크북. 요즘은 위키를 주로 사용
  • 급하다고 많은 인원 투입
    : 의사소통 비용 증가
  • 소수정예
    : 큰 프로젝트 불가
  • 핵심개발인력과 보조인력 구조
    : 아키텍트와 모듈분할
  • 구체적인 마일스톤의 정의
  • 프로젝트 관리자는 의사 결정이 아닌 의사 소통

대상

오히려 개발자보다
한국에서의 특이직군인 기획자, PM
그리고 스타트업 대표, PO, 원청업체담당자가 봐야 할 책

읽고나서

소프트웨어 공학을 모를 때도
개발 업무를 하면서 맞딱뜨리게 되는 불편한 점들과 개선점을 생각했었는데
내가 찾아낸 최선의 방법의 핵심은 빠른 프로토타이핑과 작은 개선의 반복이었다.

이 책에서는 이것을 포함해서 그리고 더 다양한 상황에서의 대응법이 잘 정리가 되어 있다. 현업을 겪어보지 못했다면 그렇구나.. 하면서 감흥없이 넘어갔을 것 같다. 어차피 한번 겪어보고 다시 읽어야 됐었겠지
소프트웨어 개발 싸이클틀 겪어 본 사람이라면 이 책을 읽으면서 자기가 겪었던 문제점이 그대로 다 써 있다는데 놀라지 않을까

1975년 초판이라는데
아직도 그대로라니

개발에 필요한 Data SEED 종류

개발을 할 때 상황에 따라 다른 초기 데이터가 필요하다

init seed

데이터베이스 초기화

  • db schema

시스템 구동에 필수적인 데이터

거래소 개발인 경우라고 가정하고

  • 코인 메타데이터
    • BTC
    • ETH

faker seed

UI를 확인하기 위한 데이터

SNS에서 친구 프로필 목록 화면인 경우

  • 이름
  • 전화번호
  • 이메일
  • 주소
  • 회사

replica seed

실제 환경에서 테스트를 하는 경우

production -> 데이터 복제 후 민감정보 제거

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연구소도 좀