본문 바로가기
반응형

Language/go lang23

http dump log.WithField("dump=", "start").Debug("auth start") dump, err := httputil.DumpResponse(resp, true) if err != nil { log.Fatal(err) } log.WithField("dump??", string(dump[:])).Debug("auth dump") // fmt.Printf("DUMP => %q", dump) 참고 : https://golang.org/pkg/net/http/httputil/ 2018. 8. 30.
golang 채널에 대해 알아보자! golang 채널이란?1. 데이터를 주고 받는 통로. 2. make를 통해 미리 생성. 3. 채널 연산자 별도의 lock을 걸지 않고 데이터를 동기화 하는데 사용 한다. 채널 만들기1. ch := make(chan int) // 정수형 채널이 생성. 채널 송수신1. 채널로 데이터를 보낼 때 채널 2018. 5. 11.
용어 - multiplexer // Mux is a simple HTTP route multiplexer that parses a request path, // records any URL params, and executes an end handler. It implements // the http.Handler interface and is friendly with the standard library. // // Mux is designed to be fast, minimal and offer a powerful API for building // modular and composable HTTP services with a large set of handlers. It's // particularly useful for wri.. 2018. 3. 16.
golang code 구조 살펴보기 보호되어 있는 글 입니다. 2018. 3. 15.
golang + github Permanently added the RSA host key Permanently added the RSA host key공개키 에러인데 ..github서버에 파일을 push하려고 보니 현재 인증된게 하나도 없는 상태이다. 공개키를 github에 등록을 해주어야한다. 아래처럼 우선 공개키가 있는지 확인해보자.공개키가 없다면..2016/08/29 - [OS/Linux&Unix] - SSH 유용정보! github에 id_rsa.pub 의 내용을 넣으면 된다. 잘 push 되었음을 알수가 있다. - 끝 - 2018. 3. 5.
golang + github ignore setting github에 push하는데 있어서 무시해야하는 파일들은 무시하도록 설정한다. 아래 링크 참고!2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기) https://www.gitignore.io/에서 go와 intelij+imi를 선택한다. 복사 후 아래의 파일에 저장 시키면 된다. 다시 github을 열었을 때 imi파일들은 사라지고 아래의 커밋대상만 보이면 성공! - 끝 - 2018. 3. 5.
기초) golang project 만들어보기! 잘못된 예 잘된 예 아래와 같이 github.com/ace-t/golangArch로 만드는데 이렇게 하는 이유는 golang은 라이브러리 자체가 github에 올려서 공유하는 그런 형태이다.그러므로 우리도 자기자신의 github url형식으로 프로젝트를 만들어보자!(글쓴이는 golang IDE를 사용한다.) - 끝 - 2018. 3. 5.
golang setting 참조 : golang 셋팅Go 설치https://golang.org/dl/ B. goland 사용 workspace에는 src와 더불어 bin, pkg 서브 폴더를 만들어준다. go env를 통해 GOROOT와 GOPATH를 확인한다. GoLand를 사용이제 재미난 코딩과 함께~아키텍처구조를 잡아보자^0^ 2017/04/26 - [Language/go lang] - go land에서 formatting 설정하기위의 프로젝트가 조금 잘못 만든거 같다.프로젝트는 아래의 링크를 보도록 하자.2018/03/05 - [Language/go lang] - 기초) golang project 만들어보기! 2018. 3. 2.
chi package HTTP Service를 구현할 때 사용한다.Go 1.7이나 그 이상에서 사용이 가능하다.package main import ( "net/http" "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" ) func main() { r := chi.NewRouter() r.Use(middleware.Logger) r.Use(middleware.Recoverer) r.Get("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("root.")) }) http.ListenAndServe(":3333", r) }여러가지 함수들이 다양하기 때문에 가지고 놀아봐야 제대로 알듯 하다.chi packa.. 2018. 3. 2.
go lang song? zz Go를 홍보하는? 노래가 있다(Write in Go) (자막켜기 하면 자막 있음)퍼옴 : https://www.youtube.com/watch?v=LJvEIjRBSDA재밌네 ㅋㅋ 2018. 2. 20.
golang factory golang factory? [ 호출부]json.NewDecoder(reader).Decode(&msg) [Decode]func (dec *Decoder) Decode(v interface{}) error { if dec.err != nil { return dec.err } if err := dec.tokenPrepareForDecode(); err != nil { return err } if !dec.tokenValueAllowed() { return &SyntaxError{msg: "not at beginning of value"} } // Read whole value into buffer. n, err := dec.readValue() if err != nil { return err } dec.d.. 2018. 2. 13.
golang - Package json import "encoding/json"json 패키지는 RFC 4627에 정의 된 JSON의 인코딩 및 디코딩을 구현합니다. JSON 및 Go 값 간의 매핑은 marshal 및 unmarshal 함수에 대한 설명서에 설명되어 있습니다.func Marshal(v interface{}) ([]byte, error)Marshal은 v의 JSON 인코딩을 반환합니다. Marshal은 값 v를 재귀적으로 호출한다. 발생한 값이 Marshal 인터페이스를 구현하고 nil 포인터가 아닌 경우 MarshalJSON 메서드를 호출하여 JSON을 생성합니다. MarshalJSON 메서드가 없지만 값이 encoding.TextMarshaler를 대신 구현하면 Marshal은 해당 MarshalText 메서드를 호출하고 결.. 2018. 2. 9.
valid 시 non zero value required 오류 func checkRequired(v reflect.Value, t reflect.StructField, options tagOptionsMap) (bool, error) { if requiredOption, isRequired := options["required"]; isRequired { if len(requiredOption) > 0 { return false, Error{t.Name, fmt.Errorf(requiredOption), true} } return false, Error{t.Name, fmt.Errorf("non zero value required"), false} } else if _, isOptional := options["optional"]; fieldsRequiredByDe.. 2018. 2. 2.
Review java 말고 golanginput / output은 동일하게 / export되지 않는 함수면 소문자로 SetValue (X) setValue(O)acet.EntityInfo = setValue(acet.EntityInfo)interface conversionswitch문을 사용할 수 있다. 해당 case의 타입이 들어오면 맞는 case 구문을 타게 된다.ex) Body가 인터페이스 형태 switch acet.Body.(type) {case *xxx.xxxx:case *aaa.xxxx:default : } 2017. 10. 24.
test code..반성! java나 go lang이나 테스트 코드가 있다.테스트 주도 개발이 좋다고 책에서 많이 보았다. 하지만 정작 그러한 책들을 보았음에도 불구하고..간만에 코드를 짜게 되었는데..(그동안 서버 발주부터 셋팅, ACL 신청 등등 이러한 일들을 했다.)테스트 코드를 짜야겠다는 생각을 하지 않은채 코드를 짰고, 테스트도 리퀘스트 부분만 잘들어가는지 대충 확인하고 다되었다고 PR을 날렸다.리뷰의 결과는 창피했다.왜 나는 꼼꼼하게 테스트 코드를 짜면서 테스트를 하지 않았을까?당연..테스트 코드를 짜기가 부담스러웠나보다..또는 단순하게만 테스트 코드를 짜왔을지도 모른다.막상 하려고보니..멍~하다. 자..그럼 이제 무엇을 해야할까?1) 앞으로 계속 두려워하며 쫄아서 피할것인가? OR2) 두려움을 극복하려고 노력할 것인가.. 2017. 10. 13.
golang Context란? https://golang.org/pkg/context/ or https://godoc.org/golang.org/x/net/contextPackage context는 마감 시간, 취소 신호 및 기타 요청 범위 값을 API 경계와 프로세스간에 전달하는 컨텍스트 유형을 정의합니다.서버에 들어오는 요청은 컨텍스트를 만들어야하며 서버로 나가는 호출은 컨텍스트를 받아 들여야합니다. 이들 사이의 함수 호출 체인은 컨텍스트를 전파해야하며 선택적으로 WithCancel, WithDeadline, WithTimeout 또는 WithValue를 사용하여 생성 된 파생 된 컨텍스트로 대체해야합니다. 컨텍스트가 취소되면 그 컨텍스트도 파생됩니다. 작성 중~ 2017. 9. 7.
go lang - Map go는 변수명 다음에 자료형이 온다. ex) var acet string java는 반대이다. ex) String acet; Map go var 맵명 map[키 자료형]값 자료형 ex) var acet map[string]int 할당은 make 사용! 예제는 아래에 있음. java는 HashMap acet = new HashMap 코드를 보자! 아래의 사이트에서 바로 테스트 해보면 된다. https://tour.golang.org/moretypes/19 package main import "fmt" func main() { // 자바에서는 new가 있다면 go에서는 make로 map을 할당한다. var acet map[string]string = make(map[string]string) acet = m.. 2017. 7. 5.
golang 정리 https://golang.org/pkg/net/http/ func NewRequest(method, urlStr string, body io.Reader) (*Request, error) { NewRequest는 메소드, URL 및 선택적 본문에 대해 새 Request를 반환합니다. 제공된 본문이 io.Closer 인 경우 반환되는 Request.Body가 body로 설정되고 클라이언트에 의해 닫힙니다. 메소드 Do, Post, PostForm, Transport.RoundTrip.NewRequest는 Client.Do와 함께 사용하기에 적합한 Request를 반환하거나 Transport.RoundTrip. 테스트에 사용할 요청을 만들려면 Server Handler는 다음과 같이 NewRequest 함.. 2017. 5. 18.
GOROOT와 GOPATH https://github.com/golang/go/wiki/GOPATH GOPATH 환경 변수는 Go 프로젝트 및 해당 바이너리 소스를 포함하는 $ GOROOT 외부의 디렉토리를 지정하는 데 사용됩니다.GO Lang은 아래와 같은 구조로 강제성을 가진다.terrypark@MacBook-Pro:~/go$ ll -rw-r--r--@ 1 terrypark staff 6148 4 26 13:41 .DS_Store drwxr-xr-x 19 terrypark staff 646 4 4 17:21 bin drwxr-xr-x 3 terrypark staff 102 2 2 11:13 pkg drwxr-xr-x 9 terrypark staff 306 3 2 14:20 src /Users/terrypark/go/src/gi.. 2017. 4. 27.
go land에서 formatting 설정하기 go land에서 formatting 설정하기 1. Preferences.. > Plugins 에서 File Watchers를 install 합니다. 2. File Watchers > gofmt 설정. go bin에 gofmt가 없다면 goimports로 해도 된다.Arguments: -w $FilePath$ 2017. 4. 26.
go lang Tip. tip_1 ) Test를 하고 싶다면?아래와 같은 사이트가 있는데 이녀석은 테스트에서 사용 되어진다고 한다. 아직 사용해본적은 없지만 사용하게 되면 포스팅 하도록 하겠다.http://goconvey.co/ tip_2) Mac에서 짠 뒤에 리눅스에서 동작하게 하려면?build를 할 디렉토리에서 아래와 같이 env GOOS=linux라고 지정!ex) env GOOS=linux go build tip_3) go에서 패키지 관리는 어떻게 할까?Java에 Maven같은게 있다면 Go는 glide라는 것이 있습니다.https://github.com/Masterminds/glide활용은 https://glide.sh/ 를 참조 또는 아래를 참조!$ glide create # Start a new workspace -.. 2017. 2. 15.
반응형