Flutter 프로젝트에서 폴더 구조를, 아키텍처를 기반으로 만들기 해서, 하나의 도메인을 만들 땐 해당 도메인 폴더 밑으로 application, data, domain, presentation 폴더를 만들기로 했어요.
그런데 이걸 매번 할 때마다 번거로우니 스크립트가 있으면 좋겠다고 생각했어요. 찾아보니 VS Code에는 Tasks라는 기능을 제공하고 있어요.
저는 이걸 사용해서 원하는 도메인 이름을 넣으면 lib/src/features 하위 폴더에 도메인 이름을 가진 폴더와 application, data, domain, presentation 폴더가 만들어지게끔 했어요.
명령 팔레트(⇧ + ⌘ + p)를 실행시키고 tasks를 입력해 주시면 여러 가지 옵션이 나와요.
이번에 해야 할 것은 .vscode/tasks.json 파일이 없는 경우 이 파일을 만들어야 해요.
파일을 직접 만들기보다는 명령 팔레트를 이용하는 것이 편하니 이렇게 진행할게요.
저희는 task를 만들 거니깐, 여기서 Tasks: Configure Task를 선택해 주세요.
그러면 뭘 또 선택하라고 나오는데요. 거기서 아무거나 선택해 주세요. 저는 Flutter 기반 프로젝트라 Flutter 관련 명령어가 뜨지만, 저는 shell을 기반으로 한 task를 만들 것이기 때문에 지울 예정입니다.
아무거나 선택하시면 tasks.json에 뭔가 채워진 상태로 만들어졌을 거예요.
저는 입력을 받은 뒤, 입력값이 도메인 폴더명으로 만들어지게끔 할 예정이라 아래와 같이 작성했어요.
{
"version": "2.0.0",
"tasks": [
{
"label": "Create directories By domain",
"type": "shell",
"command": "mkdir -p ${workspaceFolder}/lib/src/features/${input:echoPrompt}/application ${workspaceFolder}/lib/src/features/${input:echoPrompt}/data ${workspaceFolder}/lib/src/features/${input:echoPrompt}/domain ${workspaceFolder}/lib/src/features/${input:echoPrompt}/presentation",
"args": [],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
},
"problemMatcher": []
},
],
"inputs":[
{
"id": "echoPrompt",
"description": "Please enter a value",
"default": "calendar",
"type": "promptString",
}
],
}
만들어진 task를 실행하기 위해선 다시 명령 팔레트(⇧ + ⌘ + p)를 실행해주세요.
이번에는 Tasks:Run Task 선택할게요. 그러면 tasks[0].label의 값인 "Create directories By domain"을 목록에서 보실 수 있을 거예요.
tasks.json에서 inputs[0].default의 기본값을 "calendar"로 해놨기 때문에 이미 기본값이 들어가 있게 표시돼요.
원하는 도메인명을 입력하고 엔터를 누르면 아래와 같은 결과가 만들어질 거예요!
이제 사용법을 알았으니 필요한 여러 가지 task를 만들어서 더욱 편한 개발이 될 수 있을 것 같아요.
It all depends on how we look at things, and not how they are in themselves.
— Carl Jung