This Month What I Learned 5

주영택·2021년 5월 6일
0

This Month What I Learned

목록 보기
5/24

Gleam

erlang 기반의 모던 프로그래밍 언어로 rust 로 제작되어 있다.

let description =
  case True {
    True -> "It's true!"
    False -> "It's not true."
  }

description  // => "It's true!"

프론트엔드에는 rescript 로 백엔드에는 gleam 으로 가면 재밌겠다.

커밋 로그를 살리고 저장소를 병합하자

새로운 저장소(C 라고 하겠습니다)에 두 저장소(A 와 B 로 정의)의 특정 폴더만 통합하고 싶은데 커밋 히스토리까지 유지하고 싶은 경우 다음과 같은 방법을 사용합니다.

  1. gnu 버전의 sed 가 사용 가능한 환경을 준비
  2. A 저장소에서 남길 폴더를 제외하고 filter-branch 명령을 통해 제거
  3. 제거된 저장소의 root 폴더에 있는 파일을 특정 폴더로 이동 (나중에 병합하는 대상의 모양을 맞추기 위해)
  4. C 저장소에서 A 저장소를 remote 로 추가
  5. A 저장소의 대상 브랜치를 C 저장소에 rebase, 또는 merge
  6. B 에 대해서도 동일하게 반복

사용한 명령은 아래와 같습니다. sed 에 - 같은 문자는 escape 해주셔야 합니다.

git clone git@github.com:account/repo-a
git filter-branch --subdirectory-filter folder1 develop
git filter-branch -f --index-filter 'git ls-files -s | sed "s-\t\"*-&folder1/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD

A 저장소를 정리했습니다.같은 방법으로 B 저장소를 정리해 주세요.

git clone git@github.com:account/repo-b
git filter-branch --subdirectory-filter folder2 develop
git filter-branch -f --index-filter 'git ls-files -s | sed "s-\t\"*-&folder2/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD

C 저장소를 생성합니다.

g init -b develop repo-c

A 와 B 저장소를 remote 로 추가하고 커밋을 병합합니다.

g remote add repo-a ../repo-a
g fetch repo-a develop
g rebase repo-a/develop

g remote add repo-b ../repo-b
g fetch repo-b develop
g rebase repo-b/develop

sed 관련 링크는 아래를 참고해주세요.

https://stackoverflow.com/questions/9519863/git-filter-branch-leave-directory-structure-unchanged

브라우저는 가상 머신

wasm 과 wasi 로 인해 브라우저는 완전한 가상머신처럼 사용된다.

브라우저에서 돌아가는 애플리케이션은 이제 진짜 애플리케이션처럼 동작하는 날이 머지 않았다. (이미 vim 같은 거 포팅되긴 했지만...)

주문 결제 시스템 구성

cart → checkout → order(sheet) → order_transaction → payment 로 구성된다.

링크들

profile
NodeJS 백엔드 웹 개발자입니다.

0개의 댓글