# 문제점
github에 만든 패키지를 go get으로 가져올 때 에러 메시지가 나오면서 적용이 되지 않았다.
# 에러 메시지
go: downloading github.com/YooGenie/validate-check v0.0.0-20220115172739-5c5798d0821b
go get: github.com/YooGenie/validate-check@none updating to
github.com/YooGenie/validate-check@v0.0.0-20220115172739-5c5798d0821b: parsing go.mod:
module declares its path as: validate-check
but was required as: github.com/YooGenie/validate-check
go build를 해야 한다는 말이 많아서 개발환경 설정하는 방법부터 공부를 시작했다. 그런데 main이 없어서 go build가 되지 않는 상황이었다. 다른 사람들 패키지를 보면 main이 없는데 왜 내꺼는 안될까???
go build를 해야한다는 생각에만 꽂혀서 문제점을 너무 늦게 파악했다.
그 이후 계속 정보를 찾아봤다.
https://go.dev/doc/tutorial/create-module
정보가 나와 있어서 보고 따라서 했지만...
go mod init example.com/greetings
위에 명령어를 실행하면 go.mod 파일이 생성되면서 맨 위 줄에 아래 코드가 있다.
module example.com/greetings
여기에서 example.com/greetings 이게 폴더명이라고 계속 생각했던 게 문제였다.
# 잘못된 작성 방법
go mod init validate-check
나는 위에 코드처럼 폴더명으로 작성을 했다. 그러니까 go.mod에 module validate-check
으로 표시가 돼서 에러가 계속 발생한 것이다.
다른 패키지를 보니까 다들 module 깃허브 주소가 있다는 걸 발견하고 변경했다.
# 올바른 작성 방법
go mod github.com/YooGenie/validate-check
이렇게 작성해서 go.mod를 만들었다. 그랬더니 module github.com/YooGenie/validate-check
이렇게 표시됐다!
코드에서 다이렉트로 module명을 변경해도 된다.
# 성공
다른 코드에서 내 패키지를 불렀더니 된다!!!!!!
C:\Users\bsit\go\src\Menu\study-service>go get -u github.com/YooGenie/validate-check
go: downloading github.com/YooGenie/validate-check v0.0.0-20220115173242-1491f3a382f9
go get: added github.com/YooGenie/validate-check v0.0.0-20220115173242-1491f3a382f9
+ 회고
정보를 열심히 찾았지만 내가 미처 발견하지 못했다. 그래서 나는 계속 go mod init를 할 때 폴더명을 입력했다. 그게 문제라는 걸 너무 늦게 캐치했다. 나는 main이 없어 go build가 되지 않는 게 문제라고 생각했다. 다른 패키지를 봐도 main 없는 게 많았는데... 그래서 go build 안 되는 이유를 중점을 찾았던 것이 문제였다.... github 패키지에서는 도커가 나와서 도커를 해야 하나 생각을 했지만.. 해결책은 생각보다 간단했다.
'Study > Go 언어' 카테고리의 다른 글
[golang] 글자 양쪽 공백 제거하는 방법(trim) (0) | 2022.01.30 |
---|---|
[golang] if문 대신 switch를 쓰는 이유 (0) | 2022.01.23 |
[golang] github에 패키지 배포 (0) | 2022.01.16 |
[golang] go 개발 환경설정 (0) | 2022.01.16 |
[golang] 문자열 치환하기 (replace) (0) | 2021.12.30 |