Concept 을 제공할 수 있는 sample 및 PoC 프로젝트들이 위치하고 있습니다.
각각의 프로젝트는 의존성 없이, 독립적이며, repo 단위입니다. 아래의 구조로 관리됩니다.
/
└─[ 언어 or 생태계 or 플랫폼 ]
└─[ 라이브러리 or 프레임워크 or 분류 가능한 도메인 ]
└─{ 프로젝트 } // 목적에 맞는 가치를 전달하는 단위
원하는 프로젝트 폴더를 열어 README.md 참고하여 실행하면 됩니다.
원래 하나의 repo에서 관리되었는데 2025-08-24 이후부터 Subtree로 관리합니다.
Subtree 추가 방법: working tree가 비어있어야 합니다.
git subtree add --prefix={main repo 경로} {subtree repo 경로} {subtree repo branch 명}
git subtree add --prefix=go/gin/gin-restful-api ~/workspaces/temp/gin-restful-api mainSubtree 업데이트 방법: add가 pull 명령어로 바뀐 것 이외 동일
git subtree pull --prefix=go/gin/gin-restful-api ~/workspaces/temp/gin-restful-api main현재 있는 경로에 대한 git log만 보기
cd go/gin/gin-restful-api/
git log -- .Subtree Repo Branch로 분리 후 독립된 repo로 작업 후 main repo에 반영하는 방법:
심도있는 작업을 위해 다시 repo를 분리하고 업데이트할 때 사용
(공통). Subtree Repo Branch로 분리:
git subtree split --prefix=go/gin/gin-restful-api -b gin-restful-api-only1. main repo 생성:
깔끔한 독립 repo으로 repo에서 branch 만들면서 작업 가능
# repo 생성
mkdir gin-restful-api
cd gin-restful-api
git init
# subtree branch으로 repo 가져오기
git pull ~/workspaces/repos/concept-container gin-restful-api-only
# 작업 진행...
# Subtree Repo 업데이트
cd concept-container
git subtree pull --prefix=go/gin/gin-restful-api ../gin-restful-api main2. worktree 사용:
main repo에서 git worktree list 으로 관리할 수 있는 장점
단, branch 이름이 main이 아니라 불편
# worktree 생성
git worktree add ~/workspaces/temp/gin-restful-api gin-restful-api-only
# 독립된 repo라고 생각하고 작업 진행
cd gin-restful-api
# Subtree Repo 업데이트
cd concept-container
git subtree pull --prefix=go/gin/gin-restful-api ../gin-restful-api gin-restful-api-only
# 모두 작업 후 정리: 디렉터리 제거됩니다.
git worktree remove gin-restful-api-onlySubtree Repo remote push 하는 방법
gh repo create gin-restful-api --public
git subtree push --prefix=go/gin/gin-restful-api https://github.com/parkgang/gin-restful-api.git mainfilter-repo로 분리 후 remote push 하는 방법:
해당 방법은 main repo에서 관리된 repo를 분리하는 방법입니다. subtree로 관리된 것은 subtree 명령으로 분리해야 Git History 유지됩니다.
brew install git-filter-repo
# 분리
git filter-repo -f --path go/gin/gin-restful-api/ --path-rename go/gin/gin-restful-api/:
# Remote Push
gh repo create gin-restful-api --public
git remote add origin https://github.com/parkgang/gin-restful-api.git
git push -u origin main- 프로젝트들은 독립적으로 관리되기 때문에 아래의 내용을
README.md에 기록하여 추적성을 보장하도록 합니다.- 어떤 RunTime(i.e. Node.js) 버전을 사용하는지
- 어떤 목적의 프로젝트 인지
- 어떻게 실행하는지
repo root에서git을 관리하기 때문에 하위의 프로젝트 레벨에서는.git을 포함하지 않도록 합니다.- 하나의
컨셉에는 여러 복합적인Stack이 사용되기 때문에 완벽한 분류를 할 수 없습니다. 때문에컨셉을 기준으로 위에서 관리되는 구조로 배치하면 됩니다.- e.g.
TS+Prisma+SQL Server를 이용해서트랜잭션 격리 수준의컨셉을 정리하려고 한다면 코드에는트랜잭션 격리 수준을 위한Prisma코드도 들어갈 것이고,트랜잭션 격리 수준은DBMS에 의존적이기 때문에SQL Server에 맞게 작성될 것입니다. 크게 보면Prisma로트랜잭션 격리 수준을 핸들링하는 예제도 있지만SQL Server에서트랜잭션 격리 수준이 어떻게 동작하는가에 대해서도 나타내게 됩니다. 이런 경우Prisma로트랜잭션 격리 수준을 하는 것이 더 목적에 가깝기 때문에Prisma를 기준으로 분류하여 배치하게 될 것입니다. - e.g.
DBMS,Kafka를 예시로 본다면 이것을 어떤언어와환경으로 구성하느냐에 따라 달라질 것입니다. 순수하게 해당 플랫폼에 대해서만 서술한다면DBMS,Kafka를 하나의언어 or 생태계 or 플랫폼으로 분류할 수 있을 것입니다. 하지만 해당플랫폼을 어떠한 언어를 사용해서 만들어진컨셉은 해당 언어에 맞게 분류될 것입니다.
- e.g.