go-arch-lint
GoLang architecture linter (checker) tool. Will check all project import path and compare with arch rules defined in yml file. Useful for hexagonal / onion / ddd / mvc and other architectural patterns. Tool can by used in your CI
파일 탐색기
최종 버전 다운로드 (.zip)- pr.yml
- release.yml
- README.md
- add-linter-steps.png
- check-example.png
- graph-di-c.png
- graph-example.png
- graph-flow-c-focus.png
- graph-flow-c.png
- graph-flow-v.png
- how-is-working.png
- layout_example.png
- logo.png
- README.md
- README.md
- cnt_glue.go
- cnt_utils.go
- container.go
- container_cmd.go
- container_cmd_check.go
- container_cmd_graph.go
- container_cmd_mapping.go
- container_cmd_schema.go
- container_cmd_self_inspect.go
- container_cmd_version.go
- build_consts.go
- cli.go
- spec.go
- project_info.go
- reference.go
- reference_referable.go
- reference_test.go
- errors.go
- flags.go
- global.go
- opr_check.go
- opr_error.go
- opr_graph.go
- opr_mapping.go
- opr_schema.go
- opr_self_inspect.go
- opr_version.go
- resolved_file.go
- utils_path.go
- operation.go
- types.go
- operation.go
- types.go
- operation.go
- types.go
- operation.go
- types.go
- operation.go
- types.go
- operation.go
- 1_basic.go
- 0_ast_should_work.go
- 1_basic_constructor.go
- 2_public_private.go
- 3_receiver.go
- 4_chan.go
- 5_maps.go
- 6_shared.go
- 7_anon_interface.go
- mem.go
- interfaces.go
- go.mod
- go.sum
- main.go
- utils.go
- go.mod
- main.go
- project_test.go
- ast_utils.go
- criteria.go
- models.go
- searcher.go
- searcher_find_implementations.go
- searcher_parse_methods.go
- utils.go
- checker_composite.go
- checker_deepscan.go
- checker_imports.go
- checker_imports_test.go
- results.go
- types.go
- utils.go
- glob.go
- resolver.go
- resolver.go
- holder.go
- holder_test.go
- assembler.go
- resolver.go
- transformer.go
- types.go
- scanner.go
- scanner_test.go
- line_count.go
- line_count_test.go
- reader.go
- render.go
- render_test.go
- types.go
- color_printer.go
- ascii_functions.go
- ascii_processor.go
- colorize.go
- renderer.go
- types.go
- provider.go
- v1.json
- v2.json
- v3.json
- allowed_project_imports.go
- allowed_vendor_imports.go
- assembler.go
- assembler_ac_allow.go
- assembler_ac_components.go
- assembler_ac_exclude.go
- assembler_ac_exclude_file_matcher.go
- assembler_ac_workdir.go
- assembler_composite.go
- referable.go
- resolver.go
- types.go
- decoder.go
- decoder_doc.go
- decoder_doc_v1.go
- decoder_doc_v2.go
- decoder_doc_v3.go
- decoder_utils.go
- decoder_yaml.go
- json_scheme.go
- json_scheme_test.go
- types.go
- types.go
- utils.go
- validator.go
- validator_common_components.go
- validator_common_vendors.go
- validator_components.go
- validator_deps.go
- validator_deps_components.go
- validator_deps_vendors.go
- validator_exclude_files.go
- validator_vendors.go
- validator_version.go
- validator_workdir.go
- document.go
- templates.go
- view_check.gohtml
- view_error.gohtml
- view_graph.gohtml
- view_mapping.gohtml
- view_schema.gohtml
- view_self_inspect.gohtml
- view_version.gohtml
- aa1.go
- a1.go
- b1.go
- b1_test.go
- c1nc.go
- c1.go
- bar.go
- c1.go
- a.go
- b.go
- not_covered.go
- e1.go
- e1.go
- e1.go
- nc.go
- error.go
- server.go
- arch1_invalid_spec.yml
- arch1_invalid_spec_type_err.yml
- arch1_invalid_spec_unsupported_version.yml
- arch1_nested_glob.yml
- arch1_ok.yml
- arch1_warnings.yml
- arch2_ok_fallback.yml
- arch2_ok_vendor_any.yml
- arch2_ok_vendor_in_list.yml
- arch2_ok_vendor_in_str.yml
- arch2_ok_workdir.yml
- arch3_ignore_not_found_components.yml
- arch3_variadic.yml
- go.mod
- arch1_invalid_spec.ct
- arch1_invalid_spec_type_err.ct
- arch1_invalid_spec_unsupported_version.ct
- arch1_nested_glob.ct
- arch1_ok.ct
- arch1_ok_json.ct
- arch1_warnings.ct
- arch1_warnings_json.ct
- arch2_ok_fallback.ct
- arch2_ok_vendor_any.ct
- arch2_ok_vendor_in_list.ct
- arch2_ok_vendor_in_str.ct
- arch2_ok_workdir.ct
- arch3_ignore_not_found_components.ct
- arch3_variadic.ct
- help.ct
- selftest.ct
- selftest_json.ct
- d2.ct
- help.ct
- json.ct
- arch1_ascii_grouped_ok.ct
- arch1_ascii_grouped_warnings.ct
- arch1_ascii_list_ok.ct
- arch1_ascii_list_warnings.ct
- arch1_colored_grouped.ct
- arch1_colored_list.ct
- arch1_json_ok.ct
- arch1_json_warnings.ct
- arch2_ascii_grouped_ok_workdir.ct
- arch2_ascii_list_ok_fallback.ct
- arch2_ascii_list_ok_workdir.ct
- help.ct
- schema_json.ct
- schema_v1.ct
- schema_v2.ct
- schema_v3.ct
- arch1_invalid_spec.ct
- arch1_ok.ct
- ascii.ct
- ascii.ct
- colored.ct
- help.ct
- json.ct
- json_fmt.ct
- help.ct
- invalid_cmd.ct
- panic.ct
- panic_json.ct
- .gitattributes
- .gitignore
- .go-arch-lint.yml
- .golangci.yml
- .goreleaser.yml
- .pre-commit-hooks.yaml
- CONTRIBUTING.md
- Dockerfile
- go.mod
- go.sum
- LICENSE
- main.go
- main_test.go
- Makefile
- README.md
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/fe3dback/go-arch-lint
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd go-arch-lint
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. 공식 설치 스크립트
쉬움 추천사전 준비물
- Go go install 명령어를 쓰려면 Go가 필요합니다.
go install github.com/fe3dback/go-arch-lint@latest
지정된 버전을 바로 다운로드해서 설치합니다. 레포를 직접 클론할 필요가 없습니다.
설치 후 새 터미널을 열고, 프로그램의 버전 확인 명령(예: --version)으로 정상 설치됐는지 확인하세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Docker
쉬움사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker run --rm -v ${PWD}:/app fe3dback/go-arch-lint:latest-stable-release check --project-path /app
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
4. Go
보통go install github.com/fe3dback/go-arch-lint@latest
지정된 버전을 바로 다운로드해서 설치합니다. 레포를 직접 클론할 필요가 없습니다.
빌드가 에러 없이 끝나면 성공입니다. go run . 을 썼다면 터미널 출력을 확인하세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
5. Make
보통사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Make Linux/macOS는 보통 기본 설치되어 있습니다. Windows는 별도 설치(예: MSYS2, WSL)가 필요합니다.
make
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
에러 없이 끝나면 성공입니다. 생성된 실행 파일을 직접 실행해보세요.
// repository documentation
Was this content helpful?
(0 ratings)
