일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- go
- react-hook-form
- satisfiles
- Chakra
- JavaSpring
- springboot
- designpatterns
- React
- 웹애플리케이션서버
- Redux
- hook
- Spring
- test
- 오블완
- javascript
- typescript
- Gin
- css
- ReactHooks
- golang
- 티스토리챌린지
- java
- tanstackquery
- RTK
- JPA
- component
- backend
- frontend
- storybook
- Today
- Total
목록google (4)
bkdragon's log
net/http를 활용한 golang 서버에서 요청을 받아서 처리하는 순서를 간단하게(디테일 X) 살펴보려고 한다.http 패키지의 HandleFunc로 request handler를 등록하고 ListenAndServe로 실행하면 요청에 맞는 handler가 실행된다.http.HandleFunc("/helloworld", helloWorldHandler)http.ListenAndServe(fmt.Sprintf(":%v", port), nil)ListenAndServe 함수는 다음과 같다.func ListenAndServe(addr string, handler Handler) error { server := &Server{Addr: addr, Handler: handler} return serv..
gin Context 에 있는 JSON 메서드는 json 응답을 빼주는 데 사용한다. 내부 구현을 살펴보자. func (c *Context) JSON(code int, obj any) { c.Render(code, render.JSON{Data: obj})}JSON 은 Render라는 메서드를 호출하는데, 상태 코드와 render.JSON을 구조체를 인자로 받는다. c.Render를 먼저 살펴보면func (c *Context) Render(code int, r render.Render) { c.Status(code) if !bodyAllowedForStatus(code) { r.WriteContentType(c.Writer) c.Writer.WriteHeaderN..
gin 의 Context 에 있는 ShouldBindJSON 메서드는 JSON 데이터를 구조체로 바꿔주는 역할을 한다. 아마 요청을 읽고 Unmarshal 하는 과정이 있지 않을까 싶은데 실제 구현이 궁금해서 코드를 좀 찾아보았다.func (c *Context) ShouldBindJSON(obj any) error { return c.ShouldBindWith(obj, binding.JSON)}func (c *Context) ShouldBindWith(obj any, b binding.Binding) error { return b.Bind(c.Request, obj)}ShouldBindJSON 는 ShouldBindWith 를 호출한다. ShouldBindWith 는 Binding 구조체와 o..
최근 golang 을 공부 중이다. 개인적인 관심도 있었고 업무에 사용할 일이 생겼기 떄문이다.io 란golang의 io 패키지는 표준 패키지로서 http 요청과 응답 , 파일, 메모리 버퍼, 네트워크 소켓 등의 입출력을 처리한다.io 패키지의 주요 인터페이스io.Reader데이터를 읽어오는 인터페이스. 데이터를 연속적인 스트림으로 처리할 수 있다. http의 request body가 io.Reader 이다.type Reader interface { Read(p []byte) (n int, err error)}Read라는 메서드를 가지고 있다. Read는 byte 슬라이스에 데이터를 읽어오고 다 읽으먄 EOF(end of file) 에러를 던진다.스트림 데이터를 이렇게 처리할 수 있다.for { ..