괴발개발 성장기
반응형

Study/Go 언어 50

[golang] go 개발 환경설정

go시작하기 위해서 개발 환경 설정이 중요하다는 걸 이번에 느꼈다. 1) 우선 폴더 하나를 만든다. 나는 go라는 폴더 하나를 만들었다 2) go라는 폴더 안에는 반드시 bin , pkg, src 폴더를 만들어준다. src: 실제 작성한 소스 코드 pkg :패키지 폴더, 외부 패키지 저장하는 곳 bin: 바이널 소스를 컴파일해서 실행 가능 파일이 저장 (.exe 파일) 3) 시스템 환경 변수 편집에 가서 환경변수를 설정해준다 GOROOT : go가 설치된 곳 GOPATH : go폴더가 있는 곳까지 GOBIN : go폴더안에 bin 폴더로 4) 설정한 후 cmd 창에서 변경사항을 체크할 수 있다 go env

Study/Go 언어 2022.01.16

[golang] 문자열 치환하기 (replace)

# 사용법 strings.Replace(문자열,원래문자,변환문자,반복횟수) # 예시 strings.Replace("2021-12-07", "-", "", 2) - 이거 2개를 바꿔야해서 반복 횟수를 2로 설정했다. # 결과값 20211207 핸드폰번호나 날짜에서 많이 사용할 것 같다. # 또 다른 예시: 반복횟수 1번 해보기 strings.Replace("2021-12-07", "-", "", 1) # 결과값 202112-07 반복횟수를 하나만 하면 1개만 변경된다.

Study/Go 언어 2021.12.30

[Error] panic: Record map key is not string 해결방안

오류 메시지 : panic: Record map key is not string 문자열이 아니라고 해서 디버깅을 했다. DB안에 있는 no: 2가 false->2 이렇게 들어간다. 그래서 string이 아니라는 메시지가 계속 나왔다 그래서 test DB에서 no: 2 삭제 했더니 코드가 정상으로 돌아갔다. # 수정 전 - no: 2 id: password: business_registration_number: mobile: created: null updated: null deleted_at: null # 수정 후 - id: password: business_registration_number: created: null updated: null deleted_at: null ★YAML이 bool를 yes..

Study/Go 언어 2021.12.30

[golang] 핸드폰번호 암호화하는 과정에서 key 값이 0이 나와서 에러가 발생한다

func SetEncrypt(text string) string { key := config.Config.Encrypt.EncryptKey return Encrypt(key, text) } # 이슈 암호화하는 과정에서 key 값이 0이 나와서 에러가 발생한다. # 해결책 config.json에 Encryptkey가 없어서 에러가 난다고 생각했는데 컴퓨터 환경 변수에 STUDY_GENIE_ENCRYPT_KEY를 넣어준 후에 환경변수를 설정하는 코드에서 Config.Encrypt.EncryptKey = properties["STUDY_GENIE_ENCRYPT_KEY"] 이렇게 설정을 해줬다. config.json에 설정을 하지 않은 이유는 보안상의 문제이다. 우리팀은 elastic beanstalk에서 설정..

Study/Go 언어 2021.12.21

[Golang] JSON에서 원하는 값만 추출해 오기

# 배경 DB에서 Json으로 되어 있는 컬럼에서 원하는 값 추출하고 싶었다. # DB 컬럼 값 content {"name": "유지니", "id": 3954, "totalQuantity": 3, "registrationNo": "990101-2******"} # 코드 type ContentJson struct { Id int64 Content map[string]interface{} } func (contentService) ExtractValue(ctx context.Context, id int64) error { content, err := DonationDocuService().GetIssuedDonationReceipt(ctx, id) //원하는 값을 가져왔다. if err != nil { re..

Study/Go 언어 2021.12.13

[golang] Html 파일을 PDF로 변환 (go-wkhtmltopdf 사용)

엄청난 뻘짓을 했다. 정보를 찾아 찾아 코드를 짰는데... wkhtmltopdf not found 에러가 계속 났다. exe 파일 필요한 것 같은데... 모듈 말고 다른걸 설치해야한다는 생각을 못했다. 1) https://wkhtmltopdf.org/downloads.html 에 가서 OS에 따라 다운 받기 wkhtmltopdf All downloads are currently hosted via GitHub releases, so you can browse for a specific download or use the links below. Do not use wkhtmltopdf with any untrusted HTML – be sure to sanitize any user-supplied HTML..

Study/Go 언어 2021.12.08

[golang] DB안에 JSON 객체를 넣는 방법(jsonb 사용)

"a": { "aOne": "a객체안에 하나", "b": { "bOne": "a객체안에 b 객체안에 하나", "bTwoArray": [ { "name": "홍길동", "content" : "객체안에 객체안에 배열" } ] }, "aThreeArray": [ { "id": 1, "content": "객체안에 배열" }, { "id":2, "content": "객체안에 배열 2개" } ] } DB 컬럼하나에 JSON을 넣고 싶었다. 이럴 때에는 jsonb을 사용한다 xorm:"a jsonb" 이렇게 설정하면 된다 DTO type ACreate struct { A *A `json:"a" ` } type A struct { AOne string `json:"aOne" validate:"required" ` B ..

Study/Go 언어 2021.06.22

구조체

# 내부 필드 접근 : 구조체에 다른 구조체를 내부 필드로 지정하면 내부 구조체의 필드에 접근 할 수 있다. type Info struct { id int name string addressInfo Address } type Address struct { postNum string address string addressDetail string } # 구조체 값을 출력할 때 필드명과 값을 함께 출력하려면 %#v를 사용한다 fmt.Printf("%#v",V) # 구조체 임베딩 Go에는 상속이 없다. 그래서 사용자 정의 타입을 조합하여 구조체로 정의하여 객체를 재사용한다. 사용자 정의 타입을 구조체의 필드로 지정하는 것을 임베딩이라고 한다

Study/Go 언어 2021.06.14

VSCode로 코드 실행하기

1. heoll.go 파일에 코드 작성 package main import "fmt" func main() { fmt.Println("오늘부터 파이팅") } 2. Ctrl + s 저장 (GoLand는 저장 안눌러도 돼서 좋은데.....) 3. [Terminal] - [New Terminal] 클릭 하단에 생성 cd [폴더명] 입력 go mod init goproject/[폴더명] 입력 go build 입력하면 실행파일 만들어짐 .\hello.exe # 설치 방법 참고! 더보기 - go 언어 설치 2021.04.24 - [프로그램설치방법] - Go 언어 설치- Windows 버전 Go 언어 설치- Windows 버전 1) golang.org/dl/ 접속한다 2) 운영체제에 맞게 선택해서 다운을 받는다 (W..

Study/Go 언어 2021.06.07
반응형