Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

golang + github Permanently added the RSA host key

Language/go lang 2018. 3. 5. 20:52
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


Permanently added the RSA host key

공개키 에러인데 ..github서버에 파일을 push하려고 보니 현재 인증된게 하나도 없는 상태이다.
공개키를 github에 등록을 해주어야한다.


아래처럼 우선 공개키가 있는지 확인해보자.

공개키가 없다면..

2016/08/29 - [OS/Linux&Unix] - SSH 유용정보!



github에 id_rsa.pub 의 내용을 넣으면 된다.


잘 push  되었음을 알수가 있다.

  - 끝 -


'Language > go lang' 카테고리의 다른 글

golang 채널에 대해 알아보자!  (0) 2018.05.11
용어 - multiplexer  (0) 2018.03.16
golang + github Permanently added the RSA host key  (0) 2018.03.05
golang + github ignore setting  (0) 2018.03.05
기초) golang project 만들어보기!  (0) 2018.03.05
golang setting  (0) 2018.03.02

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

golang + github ignore setting

Language/go lang 2018. 3. 5. 20:30
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


github에 push하는데 있어서 무시해야하는 파일들은 무시하도록 설정한다. 아래 링크 참고!

2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)


https://www.gitignore.io/

에서 go와 intelij+imi를 선택한다.

복사 후 아래의 파일에 저장 시키면 된다.


다시 github을 열었을 때 imi파일들은 사라지고 아래의 커밋대상만 보이면 성공!


  - 끝 -

'Language > go lang' 카테고리의 다른 글

용어 - multiplexer  (0) 2018.03.16
golang + github Permanently added the RSA host key  (0) 2018.03.05
golang + github ignore setting  (0) 2018.03.05
기초) golang project 만들어보기!  (0) 2018.03.05
golang setting  (0) 2018.03.02
chi package  (0) 2018.03.02

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

기초) golang project 만들어보기!

Language/go lang 2018. 3. 5. 20:05
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


잘못된 예


잘된 예


아래와 같이 github.com/ace-t/golangArch로 만드는데 이렇게 하는 이유는 golang은 라이브러리 자체가 github에 올려서 공유하는 그런 형태이다.

그러므로 우리도 자기자신의 github url형식으로 프로젝트를 만들어보자!(글쓴이는 golang IDE를 사용한다.)


  - 끝 -


'Language > go lang' 카테고리의 다른 글

golang + github Permanently added the RSA host key  (0) 2018.03.05
golang + github ignore setting  (0) 2018.03.05
기초) golang project 만들어보기!  (0) 2018.03.05
golang setting  (0) 2018.03.02
chi package  (0) 2018.03.02
go lang song? zz  (0) 2018.02.20

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

golang setting

Language/go lang 2018. 3. 2. 17:36
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T




참조 : golang 셋팅

  1. Go 설치
    1. 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 만들어보기!





'Language > go lang' 카테고리의 다른 글

golang + github ignore setting  (0) 2018.03.05
기초) golang project 만들어보기!  (0) 2018.03.05
golang setting  (0) 2018.03.02
chi package  (0) 2018.03.02
go lang song? zz  (0) 2018.02.20
golang factory  (0) 2018.02.13

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

chi package

Language/go lang 2018. 3. 2. 13:21
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

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 package는 크게 Context, Middleware, Mux, Route 등으로 구성되어져있다고 보면 된다.

참고 : https://godoc.org/github.com/go-chi/ch


그 중 Type Route은 아래와 같다.

Use : Mux middleware stack에 middleware handler를 추가 한다.   
        Mux를 위한 
middleware stack은 매칭을 검색하기 전에 실행 된다.
        특정 핸들러로 route하여 조기에 응답할 수 있는 기회를 제공 한다.
        그리고 요청 실행과정을 변경하거나 요청 범위 값을 다음 http.Handler를 위해 설정 합니다. 


// Use appends a middleware handler to the Mux middleware stack.
//
// The middleware stack for any Mux will execute before searching for a matching
// route to a specific handler, which provides opportunity to respond early,
// change the course of the request execution, or set request-scoped values for
// the next http.Handler.
func (mx *Mux) Use(middlewares ...func(http.Handler) http.Handler) {
if mx.handler != nil {
panic("chi: all middlewares must be defined before routes on a mux")
}
mx.middlewares = append(mx.middlewares, middlewares...)
}


Middlewares

// Middlewares type is a slice of standard middleware handlers with methods
// to compose middleware chains and http.Handler's.
type Middlewares []func(http.Handler) http.Handler


Route : 새로운 middleware stack이 있는 새로운 Mux를 만들고 Sub Router로 패턴을 따라 마운트 한다.


// Route creates a new Mux with a fresh middleware stack and mounts it
// along the `pattern` as a subrouter. Effectively, this is a short-hand
// call to Mount. See _examples/.
func (mx *Mux) Route(pattern string, fn func(r Router)) Router {
subRouter := NewRouter()
if fn != nil {
fn(subRouter)
}
mx.Mount(pattern, subRouter)
return subRouter
}


Mount 


// Mount attaches another http.Handler or chi Router as a subrouter along a routing
// path. It's very useful to split up a large API as many independent routers and
// compose them as a single service using Mount. See _examples/.
//
// Note that Mount() simply sets a wildcard along the `pattern` that will continue
// routing at the `handler`, which in most cases is another chi.Router. As a result,
// if you define two Mount() routes on the exact same pattern the mount will panic.
func (mx *Mux) Mount(pattern string, handler http.Handler) {


Handle : http method와 일치하는 'handler' http.Handler를 실행한다.

// Handle and HandleFunc adds routes for `pattern` that matches
// all HTTP methods.
Handle(pattern string, h http.Handler)
HandleFunc(pattern string, h http.HandlerFunc)


Handler > ServeHTTP


// A Handler responds to an HTTP request.
//
// ServeHTTP should write reply headers and data to the ResponseWriter
// and then return. Returning signals that the request is finished; it
// is not valid to use the ResponseWriter or read from the
// Request.Body after or concurrently with the completion of the
// ServeHTTP call.
//
// Depending on the HTTP client software, HTTP protocol version, and
// any intermediaries between the client and the Go server, it may not
// be possible to read from the Request.Body after writing to the
// ResponseWriter. Cautious handlers should read the Request.Body
// first, and then reply.
//
// Except for reading the body, handlers should not modify the
// provided Request.
//
// If ServeHTTP panics, the server (the caller of ServeHTTP) assumes
// that the effect of the panic was isolated to the active request.
// It recovers the panic, logs a stack trace to the server error log,
// and either closes the network connection or sends an HTTP/2
// RST_STREAM, depending on the HTTP protocol. To abort a handler so
// the client sees an interrupted response but the server doesn't log
// an error, panic with the value ErrAbortHandler.
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}



참고 

type Router interface {
    http.Handler
    Routes

    // Use appends one of more middlewares onto the Router stack.
    Use(middlewares ...func(http.Handler) http.Handler)

    // With adds inline middlewares for an endpoint handler.
    With(middlewares ...func(http.Handler) http.Handler) Router

    // Group adds a new inline-Router along the current routing
    // path, with a fresh middleware stack for the inline-Router.
    Group(fn func(r Router)) Router

    // Route mounts a sub-Router along a `pattern`` string.
    Route(pattern string, fn func(r Router)) Router

    // Mount attaches another http.Handler along ./pattern/*
    Mount(pattern string, h http.Handler)

    // Handle and HandleFunc adds routes for `pattern` that matches
    // all HTTP methods.
    Handle(pattern string, h http.Handler)
    HandleFunc(pattern string, h http.HandlerFunc)

    // Method and MethodFunc adds routes for `pattern` that matches
    // the `method` HTTP method.
    Method(method, pattern string, h http.Handler)
    MethodFunc(method, pattern string, h http.HandlerFunc)

    // HTTP-method routing along `pattern`
    Connect(pattern string, h http.HandlerFunc)
    Delete(pattern string, h http.HandlerFunc)
    Get(pattern string, h http.HandlerFunc)
    Head(pattern string, h http.HandlerFunc)
    Options(pattern string, h http.HandlerFunc)
    Patch(pattern string, h http.HandlerFunc)
    Post(pattern string, h http.HandlerFunc)
    Put(pattern string, h http.HandlerFunc)
    Trace(pattern string, h http.HandlerFunc)

    // NotFound defines a handler to respond whenever a route could
    // not be found.
    NotFound(h http.HandlerFunc)

    // MethodNotAllowed defines a handler to respond whenever a method is
    // not allowed.
    MethodNotAllowed(h http.HandlerFunc)
}





'Language > go lang' 카테고리의 다른 글

기초) golang project 만들어보기!  (0) 2018.03.05
golang setting  (0) 2018.03.02
chi package  (0) 2018.03.02
go lang song? zz  (0) 2018.02.20
golang factory  (0) 2018.02.13
golang - Package json  (0) 2018.02.09

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

분양권 전매 절차 알아보기

재테크 Info/주저리 2018. 2. 21. 17:17
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


1. 분양권 전매 절차 

 : 아파트 분양 당첨 후 건설사와 분양 계약이 체결돼야 분양권 전매

   가능해짐


2. 매매계약

 : 매도자와 매수자가 지역 중개업소 또는 직거래로 계약함

매우중요!!! 호구가 되지 않고 손해를 보지 않으려면 매매계약서 작성이 매우매우 중요하다!!
중계업자를 절대 믿으면 안된다. 그리고 달콤한 말로 꼬드기는데 막상 계약하러 갔을 때 내가 알던 말과 다르면
바로 없던일로 하고 돌아오는것도 하나의 방법이다. 지속적으로 말이 달라질수 있기 때문이다. 


 이 부분이 매우 중요하다.
 개념없는 부동산 또는 나를 호구로 아는 부동산에서는 매도자인 나와 상의 없이 일을 일사천리 진행할 수 있기 때문이다.
 그렇게 되면 그것에 대한 협의를 다시 해야하니 골치 아프다-_-;;

 매매 계약서를 쓰기전에! 협의할 것은 반드시 해야한다. 부동산을 너무 믿지말라! 부동산은 매수자와 친하다?!(이후에 전세, 매매등을 더 할수 있으니깐!)
  - 협의 대상은 1원이라도 들어가는 내용이면 무조건 정하라!!
  ex) 인지세, 양도세, 중도금대출에 대한 이자!(매우중요!) 보통 매수자가 내는데 중계업자가 매도자에게 말하지 않고 그냥 넘어가고 나중에 상황이 기울어지면 대충 넘어가는 경향이 있을수 있다.
 - 계약서 특약에 들어갈 내용을 내가 미리 알아보고 넣어달라고 요구하자!
 - 계약서의 내용중에 이상한 것이 있으면 반드시 이해하고 넘어가자!
   : 거지같은 내용이 있어서...예를 들어 귀책사유로 매수자가 명의변경이 어려울경우(거의 없다 그리고 있으면 당연히 계약 못한다) 계약 파기가 가능하다 라는 문구 등등 귀책사유? 변심도 할수 있기에 이런 위험한 내용은 파기 하자! , 특히 제주도에서 이런문구가 많다.  조심!!
 -  잔금일자를 협의한 뒤에 적자고 하는 경우도 있다. 어이가 없는 경우이다..바로 날짜 픽스하고 도장 찍자!!
 - 그리고 팁으로 부동산에서 말이 안통하면 시청이나 도청등의 지적과라는 곳이 있다. 부동산 관리! 이곳을 방문하면 된다.
 - 그리고 중계업자가 많은 수수료를 제시하기도 하니 조심하자. 주변 시세를 알아보기!
 - 중계 수수료는 양도세 낼 때 가져가야한다. 현금영수증 자료. 사진으로 준다고 괜찮다고 하는데...그냥 프린트해가자!
 - 마지막 팁으로 협의가 안된 돈이 발생할 경우 계약서에 넣어버리면 그돈이 프리미엄으로 잡히게 된다.
    작은 돈일지라도 별지특약이나 차용증으로 처리하자!



* 분양권 전매 시 매매 계약서 작성에는 

   초기 분양가격이 아닌 계약금, 중도금, 발코니 확장비용, 옵션비용

   프리미엄을 포함한 실 거래 금액이 산정됨


3. 매매계약서 검인 (매도자 또는 매수자) <-- 이 부분은 한적 없는 거 같음 패스~

 : 매도자 또는 매수자 한 명만 방문 (시, 군, 구청 지적과)


4. 실거래가 신고

 : 중개업자가 부동산 거래 계약 신고서를 작성, 신고함


5. 은행대출 승계 (매도자와 매수자)

 : 매도자와 매수자가 함께 대출받은 금융기관을 방문해 중도금 

   대출의 채무를 승계함 (은행대출채무승계동의서 작성)
 : 매도자는 신분증, 분양계약서, 검인계약서, 인감도장, 대출통장

   을 준비하고 매수자는 신분증, 인감도장을 준비함


6. 명의변경 (매도자와 매수자)

 : 매도자는 인감증명서, 주민등록증, 인감도장, 신분증, 분양계약서,

   분양대금납부영수증, 은행대출채무승계동의서를 준비하며 

   매수자는 인감증명서, 인감도장, 신분증, 검인계약서를 준비해 

   건설사의 분양사무소를 방문해 분양계약서 뒷면의 매수자 명의를

   변경함

 

 7. 양도소득세 신고 (매도자의 경우 분양권 전매 시 프리미엄에 대한

    양도소득세 납부 필요) 

   - 세무서 찾아가서 작성 하면 된다.



출처: http://jbljoo.tistory.com/21 [JBL JOO]

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

'프마송-주이 편'

카테고리 없음 2018. 2. 21. 10:49
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


대세 걸그룹 모모랜드의 귀요미 주이가 참여한 프마송 영상이 전격 공개~상콤하네요 ㅎㅎ



acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

go lang song? zz

Language/go lang 2018. 2. 20. 13:23
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


Go를 홍보하는? 노래가 있다(Write in Go) (자막켜기 하면 자막 있음)

퍼옴 : https://www.youtube.com/watch?v=LJvEIjRBSDA

재밌네 ㅋㅋ

'Language > go lang' 카테고리의 다른 글

golang setting  (0) 2018.03.02
chi package  (0) 2018.03.02
go lang song? zz  (0) 2018.02.20
golang factory  (0) 2018.02.13
golang - Package json  (0) 2018.02.09
valid 시 non zero value required 오류  (0) 2018.02.02

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

golang factory

Language/go lang 2018. 2. 13. 13:18
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


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.init(dec.buf[dec.scanp : dec.scanp+n])
dec.scanp += n

// Don't save err from unmarshal into dec.err:
// the connection is still usable since we read a complete JSON
// object from it before the error happened.
err = dec.d.unmarshal(v)

// fixup token streaming state
dec.tokenValueEnd()

return err
}


위의 소스에서 Decode 함수를 보자.

err = dec.d.unmarshal(v)라는게 눈에 띈다.

아래의 Encode함수도 마찬가지로 err := e.marshal(v, encOpts{escapeHTML: enc.escapeHTML}) 이라는게 있다.

[Encode]

func (enc *Encoder) Encode(v interface{}) error {
if enc.err != nil {
return enc.err
}
e := newEncodeState()
err := e.marshal(v, encOpts{escapeHTML: enc.escapeHTML})
if err != nil {
return err
}

// Terminate each value with a newline.
// This makes the output look a little nicer
// when debugging, and some kind of space
// is required if the encoded value was a number,
// so that the reader knows there aren't more
// digits coming.
e.WriteByte('\n')

b := e.Bytes()
if enc.indentPrefix != "" || enc.indentValue != "" {
if enc.indentBuf == nil {
enc.indentBuf = new(bytes.Buffer)
}
enc.indentBuf.Reset()
err = Indent(enc.indentBuf, b, enc.indentPrefix, enc.indentValue)
if err != nil {
return err
}
b = enc.indentBuf.Bytes()
}
if _, err = enc.w.Write(b); err != nil {
enc.err = err
}
encodeStatePool.Put(e)
return err
}


아래의 링크를 타고 내용을 보면 Marshal의 값은 v를 재귀적으로 호출한다.  v는 인터페이스!  또한 발생한 값이 Marshal 인터페이스를 구현하고 nil pointer가

아닐 경우 MarshalJSON 메소드를 호출하여 JSON을 생성하는 프로세스이다. 그러므로 아래처럼 MarshalJSON메소드를 구현 해주면 그녀석이 발동 된다는 것이다.

func Marshal(v interface{}) ([]byte, error)

2018/02/09 - [Language/go lang] - golang - Package json


예를 들어 아래와 같이 메소드가 있다면 아래의 MarshalJSON()을 호출하여 그안에서 factory를 생성한다.

func (m *AceTMessage) MarshalJSON(b []byte) error {


m.Test = newFactory(m.Header.Type)


}


newFactory() 가 factory관련 소스이다.

var exFactory = map[string]func() Test{ // type에 따라 처리가 되어지는 구조.



- 끝 - 









'Language > go lang' 카테고리의 다른 글

chi package  (0) 2018.03.02
go lang song? zz  (0) 2018.02.20
golang factory  (0) 2018.02.13
golang - Package json  (0) 2018.02.09
valid 시 non zero value required 오류  (0) 2018.02.02
Review  (0) 2017.10.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

golang - Package json

Language/go lang 2018. 2. 9. 13:44
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

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 메서드를
호출하고 결과를 JSON 문자열로 인코딩합니다. 
nil 포인터 예외가 반드시 필요한 것은 아니지만 UnmarshalJSON의 동작에서 비슷하고 필요한 예외를 모방합니다.
그렇지 않은 경우, Marshal은 다음과 같은 유형 종속 기본 인코딩을 사용합니다.

부울 값은 JSON 부울 값으로 인코딩됩니다. 부동 소수점, 정수 및 숫자 값은 JSON 숫자로 인코딩됩니다.

문자열 값은 유효한 UTF-8로 강제 변환 된 JSON 문자열로 인코딩되어 유효하지 않은 바이트를 유니 코드 대체 문자로 대체합니다. 꺽쇠 괄호 "<"및 ">"는 "\ u003c"및 "\ u003e"로 이스케이프 처리되어 일부 브라우저가 JSON 출력을 HTML로 오해하지 않게합니다. 앰퍼샌드 "&"도 같은 이유로 "\ u0026"로 이스케이프됩니다. 이 이스케이프는 SetEscapeHTML (false)가 호출 된 인코더를 사용하여 비활성화 할 수 있습니다. 배열 및 슬라이스 값은 JSON 배열로 인코딩됩니다. 단, [] 바이트는 base64 인코딩 된 문자열로 인코딩되고 nil 슬라이스는 null JSON 값으로 인코딩됩니다. 구조체 값은 JSON 객체로 인코딩됩니다. 각 내보내기 된 구조체 필드는 개체 이름으로 필드 이름을 사용하여 개체의 멤버가됩니다. 필드가 아래에 나와있는 이유 중 하나로 생략되지 않는 한 각 구조체 필드의 인코딩은 구조체 필드의 태그에서 "json"키 아래에 저장된 형식 문자열을 사용하여 사용자 정의 할 수 있습니다. 형식 문자열은 필드의 이름을 제공하며 그 뒤에 쉼표로 구분 된 옵션 목록이옵니다. 기본 필드 이름을 무시하지 않고 옵션을 지정하려면 이름이 비어있을 수 있습니다.

"omitempty"옵션은 필드에 빈 값이 있거나 false, 0, nil 포인터, nil 인터페이스 값 및 빈 배열, 슬라이스, 맵 또는 문자열로 정의 된 필드가 인코딩에서 생략되어야한다고 지정합니다. ex) Field int `json:"myName,omitempty"` / Field int `json:",omitempty"`

특수한 경우 필드 태그가 "-"인 경우 필드는 항상 생략됩니다. ex) Field int `json:"-"`

이름이 "-"인 필드는 여전히 "-"태그를 사용하여 생성 할 수 있습니다. ex) Field int `json:"-,"`

유니 코드 문자, 숫자 및 ASCII 구두점 (인용 부호, 백 슬래시 및 쉼표 제외)으로 구성된 비어 있지 않은 문자열 인 경우 키 이름이 사용됩니다.

익명 구조체 필드는 일반적으로 내부 내보내기 필드가 외부 구조체의 필드 인 것처럼 마샬링되며 다음 단락에서 설명하는대로 일반적인 Go 가시성 규칙이 수정됩니다. JSON 태그에 주어진 이름을 가진 익명 구조체 필드는 익명이 아닌 해당 이름을 가진 것으로 취급됩니다. 인터페이스 유형의 익명 구조체 필드는 익명이 아닌 이름으로 해당 유형을 갖는 것과 동일하게 취급됩니다.

마샬링 또는 언 마샬링 할 필드를 결정할 때 구조체 필드에 대한 가시성 규칙이 JSON에 맞게 수정되었습니다. 같은 레벨에 여러 개의 필드가 있고 해당 레벨이 가장 작은 중첩 된 경우 (따라서 일반 Go 규칙에 의해 선택된 중첩 레벨이 됨) 다음과 같은 추가 규칙이 적용됩니다.
1) 이러한 필드 중 JSON 태그가 있는 경우 태그가없는 필드가 여러 개있는 경우에도 태그가있는 필드만 고려됩니다.
2) 정확히 하나의 필드 (첫 번째 규칙에 따라 태그가 지정 되었는지 여부)가 선택되면 해당 필드가 선택됩니다.

3) 그렇지 않으면 여러 필드가 있으며 모두 무시됩니다. 오류가 발생하지 않습니다.

익명 구조체 필드의 처리는 Go 1.1에서 새로 추가되었습니다. Go 1.1 이전에는 익명 구조체 필드가 ​​무시되었습니다. 현재 버전과 이전 버전의 익명 구조체 필드를 강제로 무시하려면 해당 필드에 "-"JSON 태그를 지정하십시오.

예제)

func Unmarshal(data []byte, v interface{}) error

Unmarshal은 JSON으로 인코딩 된 데이터를 구문 분석하고 결과가 v가 가리키는 값에 저장합니다. v가 nil이거나 포인터가 아닌 경우 Unmarshal은 InvalidUnmarshalError를 반환합니다.

Unmarshal은 마샬러가 사용하는 인코딩의 역함수를 사용하여 필요에 따라 maps, slices 및 포인터를 할당하고 다음과 같은 추가 규칙을 사용합니다.

Unmarshal은 JSON을 포인터로 unmarshal하기 위해 먼저 JSON 리터럴 null 인 JSON의 대소문자를 처리합니다. 이 경우 Unmarshal은 포인터를 nil로 설정합니다. 그렇지 않으면, Unmarshal은 JSON을 포인터가 가리키는 값으로 unmarshal합니다. 포인터가 nil이면 Unmarshal은 포인터가 가리키는 새 값을 할당합니다.

JSON을 Unmarshaler 인터페이스를 구현하는 값으로 unmarshal하기 위해 Unmarshal은 입력 값이 JSON null 인 경우를 포함하여 해당 값의 UnmarshalJSON 메서드를 호출 합니다. 그렇지 않은 경우 값이 encoding.TextUnmarshaler를 구현하고 입력 값이 JSON 인용 문자열이면 Unmarshal은 해당 값의 UnmarshalText 메소드를 인용되지 않은 문자열 형식으로 호출합니다.

JSON을 구조체로 unmarshal하려면 Unmarshal이 들어오는 객체 키를 marshal(구조체 필드 이름 또는 해당 태그)에서 사용하는 키와 일치 시키며 정확히 일치하는 것을 선호하지만 대 / 소문자를 구분하지 않는 일치를 허용합니다. Unmarshal은 구조체의 내 보낸 필드 만 설정합니다.

JSON 배열을 Go 배열로 unmarshal하기 위해 Unmarshal은 JSON 배열 요소를 해당 Go 배열 요소로 디코딩합니다. Go 배열이 JSON 배열보다 작은 경우 추가 JSON 배열 요소가 삭제됩니다. JSON 배열이 Go 배열보다 작은 경우 추가 Go 배열 요소는 0 값으로 설정됩니다.

.








'Language > go lang' 카테고리의 다른 글

go lang song? zz  (0) 2018.02.20
golang factory  (0) 2018.02.13
golang - Package json  (0) 2018.02.09
valid 시 non zero value required 오류  (0) 2018.02.02
Review  (0) 2017.10.24
test code..반성!  (0) 2017.10.13

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

valid 시 non zero value required 오류

Language/go lang 2018. 2. 2. 14:20
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


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"]; fieldsRequiredByDefault && !isOptional {
return false, Error{t.Name, fmt.Errorf("All fields are required to at least have one validation defined"), false}
}
// not required and empty is valid
return true, nil
}


위의 validator.go 소스를 살펴보자.

requried면 value를 가지고 체킹을 하게 된다.

즉, 값이 0이 들어오는데 required를 사용하게 된다면 false인 것이다. 즉 valid가 유효하지 못하다.

제거를 해주면 0이나 "" 이 들어와도 값이 없는 것으로 간주하지는 않을 것이다.

golang ref : 

 - https://godoc.org/

 - https://play.golang.org/


열공 열공~!

'Language > go lang' 카테고리의 다른 글

golang factory  (0) 2018.02.13
golang - Package json  (0) 2018.02.09
valid 시 non zero value required 오류  (0) 2018.02.02
Review  (0) 2017.10.24
test code..반성!  (0) 2017.10.13
golang Context란?  (0) 2017.09.07

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Aho corasick 알고리즘

Architecture/algorithm 2018. 1. 5. 17:32
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



읽어보도록 하자.

논문 : https://pdfs.semanticscholar.org/3547/ac839d02f6efe3f6f76a8289738a22528442.pdf

문제 풀이 : https://www.acmicpc.net/problem/9250

참고 : 슬라이드쉐어 ( https://www.slideshare.net/ssuser81b91b/ahocorasick-algorithm )

'Architecture > algorithm' 카테고리의 다른 글

Aho corasick 알고리즘  (0) 2018.01.05
Aho–Corasick string matching algorithm란?  (0) 2016.03.30

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

농구~작성중..

Life of AceT/Good Helth 2017. 11. 16. 18:44
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

https://www.youtube.com/watch?v=vlhzwH_kQkw&t=4s


1. 포스트 자리 잡기

  See  Feel Move

-  빅맨들의 안좋은 버릇 : 기다린다. 기다리지 말자.


'Life of AceT > Good Helth' 카테고리의 다른 글

2018년 5월5일 토요 농구~  (0) 2018.05.05
2018년04월28일 토요농구  (0) 2018.04.29
농구~작성중..  (0) 2017.11.16
2016 NIKE UNLIMITED KOREA  (0) 2016.08.05
교정치과 선정!  (0) 2016.08.01
닭가슴살 주문!!!  (2) 2016.04.19

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

스팸전화 모음

Life of AceT/Good Info 2017. 11. 1. 15:48
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

전화 하지마~~~ㅋㅋ

02-6978-7534  ok 저축은행 대출  됐다고 하면 그냥 끈어버림ㅋㅋ 

02-6978-7555  딱봐도 저축은행 같아서 안받음-_-ㅋㅋ

02-6978-7582 부재중으로...-_- 전화좀 하지마라...

02-6367-0129 ok 저축 은행~

02-361-0446 ok 저축 은행~

02-3704-4923  city 은행 대출...

02-3704-4931  city 은행 대출...

02-3704-4973  city 은행 대출...

02-3704-4991 city....

02-3671-5412 city..전번을 바꿨나보다-_-

070-7739-2582 city...

070-4769-8210 ...

031-5183-9848 신용어쩌구 대출-_- 괜찮다고 하니 바로 끈어버림..담에 오면 걍 내가 먼저 끈을테다..ㅠㅠ

031-5183-9851  zzz 전화 못받음 하지만..딱 보니 대출전화군..-_-ㅋㅋ

031-995-5667  sk어쩌구..암보험...ㅠㅠ 전화 노노~

031-995-5670 -_-;; 

02-6233-4819  sk어쩌구 치아보장보험 어쩌구..

010-9280-0964  알바천국 

02-6930-3407  부재중..뭔가 스팸 냄시가 난다..

02-6930-2180 또 부재중 ㅋㅋ 장난치나 어이~6930~

010-8231-2343 카지노-_- 뭐야 왜 이런데서 오는거야 

02-2136-8029 OK 대출론 -_- 대출 필요하면 내가 찾아서 연락하마..연락좀 하지마라..

02-6975-9282 나눔 어쩌구 대출..-_- 기대출 있어도 더해준다고? 무기한 무이자 아니면 전화하지 마라-_- 

02-6975-9006 

031-995-5662 sk m&m? s? 무튼 보험 가입하라고 함..됐다고 했는데도 랩을 하심..

'Life of AceT > Good Info' 카테고리의 다른 글

최강두산) 2018년 4월 경기 일정  (0) 2018.04.03
2018년 두산베어스 3월 경기일정  (0) 2018.03.28
스팸전화 모음  (0) 2017.11.01
카드포인트 통합조회 사이트!  (0) 2016.11.21
투표 완료!  (0) 2016.04.13
크롬 대박 기능 ㅋㅋㅋ  (0) 2015.02.04

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Review

Language/go lang 2017. 10. 24. 19:33
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



java 말고 golang

input / output은 동일하게 / export되지 않는 함수면 소문자로 SetValue (X) setValue(O)

acet.EntityInfo = setValue(acet.EntityInfo)

interface conversion

switch문을 사용할 수 있다. 해당 case의 타입이 들어오면 맞는 case 구문을 타게 된다.

ex) Body가 인터페이스 형태  

switch acet.Body.(type) {

case *xxx.xxxx:

case *aaa.xxxx:

default :

}







'Language > go lang' 카테고리의 다른 글

golang - Package json  (0) 2018.02.09
valid 시 non zero value required 오류  (0) 2018.02.02
Review  (0) 2017.10.24
test code..반성!  (0) 2017.10.13
golang Context란?  (0) 2017.09.07
go lang - Map  (0) 2017.07.05

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

test code..반성!

Language/go lang 2017. 10. 13. 14:05
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

java나 go lang이나 테스트 코드가 있다.

테스트 주도 개발이 좋다고 책에서 많이 보았다. 하지만 정작 그러한 책들을 보았음에도 불구하고..

간만에 코드를 짜게 되었는데..(그동안 서버 발주부터 셋팅, ACL 신청 등등 이러한 일들을 했다.)

테스트 코드를 짜야겠다는 생각을 하지 않은채 코드를 짰고, 테스트도 리퀘스트 부분만 잘들어가는지 대충 확인하고 다되었다고 PR을 날렸다.

리뷰의 결과는 창피했다.

왜 나는 꼼꼼하게 테스트 코드를 짜면서 테스트를 하지 않았을까?

당연..테스트 코드를 짜기가 부담스러웠나보다..또는 단순하게만 테스트 코드를 짜왔을지도 모른다.

막상 하려고보니..멍~하다. 

자..그럼 이제 무엇을 해야할까?

1) 앞으로 계속 두려워하며 쫄아서 피할것인가?

                   OR

2) 두려움을 극복하려고 노력할 것인가?


당연히 2번인가? 그렇다면 어떻게 노력할 것인가? 이게 가장 중요한 포인트 이다.

지금 이렇게 포스팅을 하는 이유도 노력의 시작의 일부임에는 틀림없다.

이제 시작되었으니 제대로 파악해서 제대로 사용해보자.

화이팅!



'Language > go lang' 카테고리의 다른 글

valid 시 non zero value required 오류  (0) 2018.02.02
Review  (0) 2017.10.24
test code..반성!  (0) 2017.10.13
golang Context란?  (0) 2017.09.07
go lang - Map  (0) 2017.07.05
golang 정리  (0) 2017.05.18

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

mac os에서 kafka-console-consumer 사용하기

OpenSource 2017. 9. 13. 14:23
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



kafka install

brew로 인스톨 해준다.
brew install kafka

명령어를 날리려는데 셋팅 된 위치를 모르겠다..ㅋㅋ

위치는 요기!!
/usr/local/Cellar/kafka/0.11.0.0/bin


명령은!

./kafka-console-consumer --zookeeper xxx.xxx.com:1111/acet-kafka --topic ace-taeha


끝~

'OpenSource' 카테고리의 다른 글

mac os에서 kafka-console-consumer 사용하기  (0) 2017.09.13
mesosphere  (0) 2017.04.28

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

golang Context란?

Language/go lang 2017. 9. 7. 16:33
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


https://golang.org/pkg/context/   or https://godoc.org/golang.org/x/net/context

Package context는 마감 시간, 취소 신호 및 기타 요청 범위 값을 API 경계와 프로세스간에 전달하는 컨텍스트 유형을 정의합니다.

서버에 들어오는 요청은 컨텍스트를 만들어야하며 서버로 나가는 호출은 컨텍스트를 받아 들여야합니다. 이들 사이의 함수 호출 체인은 컨텍스트를 전파해야하며 선택적으로 WithCancel, WithDeadline, WithTimeout 또는 WithValue를 사용하여 생성 된 파생 된 컨텍스트로 대체해야합니다. 컨텍스트가 취소되면 그 컨텍스트도 파생됩니다.


작성 중~

'Language > go lang' 카테고리의 다른 글

Review  (0) 2017.10.24
test code..반성!  (0) 2017.10.13
golang Context란?  (0) 2017.09.07
go lang - Map  (0) 2017.07.05
golang 정리  (0) 2017.05.18
GOROOT와 GOPATH  (0) 2017.04.27

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

kibana 잘 안띄워 진다면? 확인해보면 좋다!

OpenSource/ElasticSearch 2017. 8. 28. 16:55
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


로컬이 아닌 서버에 kibana를 다운 받고 run을 한 뒤!

웹브라우저로 접근을 하려는데..접근이 fail...

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.

# The default is 'localhost', which usually means remote machines will not be able to connect.

# To allow connections from remote users, set this parameter to a non-loopback address.

server.host: "0.0.0.0" 

원인은 server.host가 주석처리가 되어있었는데 default가 localhost라서..접근이 안되었던 것!!!

docker image와는 다른 default~!!

엄청나게 쉽게 될 줄 알았는데 삽질 함..-_-;;

다른분들은 금방 해결 되길 바라며..포스팅~촤촤촤! ㅎㅎ


acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

go lang - Map

Language/go lang 2017. 7. 5. 17:09
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

go는 변수명 다음에 자료형이 온다.
ex) var acet string 

java는 반대이다.
ex) String acet;

Map
go
var 맵명 map[키 자료형]값 자료형
ex) var acet map[string]int 
할당은 make 사용! 예제는 아래에 있음.

java는 
HashMap<String, int> acet = new HashMap<String, int>


코드를 보자!
아래의 사이트에서 바로 테스트 해보면 된다.
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 = map[string]string{"a":"aaaa"}    
    fmt.Println(acet["a"])
    
     var mae = make(map[string]string)
     mae = map[string]string{"mae":"bbbb"}
     fmt.Println(mae["mae"])
    
     lov := make(map[string]string)
     lov = map[string]string{  // 뉴라인으로 하려면 마지막에 콤마(,)가 필요함.
         "haha":"cccc",
         "hoho":"dddd",
     }
     fmt.Println(lov["haha"])    
    
     // key가 없는지 알수 있는 방법은 리턴값 두번째를 이용. 없으면 false 리턴!
     solaSystem := make(map[string]string)
     solaSystem["earth"] ="my galaxy"
     // 자바는 put 사용. solaSystem.put("earth", "my galaxy");
     solaSystem["earth2"] ="goood~"
     fmt.Println(solaSystem["earth"])
     // 자바는 get 사용. solaSystem.get("earth");
    
     value, ok := solaSystem["mars"]
     fmt.Println(value, ok)
    
     // java와 달리 if구문에 괄호가 없다! 아래와 같이 요상하게 보일만한 문법을 자주 사용!
     // 리턴도 2개 이상..깜놀;
     // 자바에서는 키가 있는지 확인은 solaSystem.containsKey("earth2");를 사용.
     if value, ok := solaSystem["earth2"]; ok {
         fmt.Println(value)
    
     }
    
     // 맵 순회 -> for 키, 값 := range 맵{}
     for key, value := range solaSystem {
         fmt.Println(key, value)    
     }
    
     // value를 사용하고 싶지 않다면 언더바(_) 사용..허허~
     for key, _ := range solaSystem {
         fmt.Println(key, value)    
     }
    
     //맵에서 데이터 삭제!
     // 자바에서는 solaSystem.remove("earth"); 를 사용.
     delete(solaSystem, "earth")
     _, isOk := solaSystem["earth"]
     fmt.Println(isOk)
    
    
}

결과




'Language > go lang' 카테고리의 다른 글

test code..반성!  (0) 2017.10.13
golang Context란?  (0) 2017.09.07
go lang - Map  (0) 2017.07.05
golang 정리  (0) 2017.05.18
GOROOT와 GOPATH  (0) 2017.04.27
go land에서 formatting 설정하기  (0) 2017.04.26

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::