본문 바로가기 메뉴 바로가기

just_HS

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

just_HS

검색하기 폼
  • 분류 전체보기 (276) N
    • python (5)
    • golang (89)
    • embedded (25)
    • google cloud platform (3)
    • google colaboratory (4)
    • deep learning (2)
    • blockchain (9)
    • git (14)
    • etc (13)
    • life-health (16)
    • javascript30 (19)
    • development (35) N
    • book-movie (32) N
    • til (10)
  • 방명록

go (13)
Golang: embed한 파일을 API 요청에 회신해주기

개요 1. 특정 파일 하나를 embed 하여 고객이 template으로 요구할 경우 다운로드 할 수 있도록 하고 싶다. 2. Golang echo framework 를 사용중이다. 내용 GitHub: https://github.com/nicewook/echo-serve-embedfile embed로 가져온 다음 ReadFile() 메서드로 파일을 읽어 바이트 슬라이스로 만든 다음 Content Disposition 헤더로 파일이름을 지정하고 ContentType을 명시한 다음 바이트 슬라이스를 회신한다. //go:embed static var static embed.FS func main() { e := echo.New() e.GET("/csv", func(c echo.Context) error { p,..

golang 2023. 1. 4. 15:54
Golang ORM - Bun 삽질 이야기 - timestamp 와 timestamptz

이 글은 Golang이라기 보다는 Postgres 이야기이다. 개요 Postgres는 timestamp, timestamptz 라는 데이터베이스 타입을 제공한다. 두 타입의 차이를 Golang과 bun 패키지를 이용해 확인해본다. TL;DR 두 타입은 저장시의 표현방법의 차이이지 담고있는 절대시간의 값은 같다. timestamptz 타입은 Postgres 서버 내부에 설정되어 있는 timezone 설정에 따라 저장이 된다. 나의 선택은 timestamp를 사용하여 항상 UTC 타임으로 저장하며, 사용자에게 이를 보여주는 애플리케이션에서 사용자의 컴퓨터 timezone에 맞게 변환하여 보여주도록 하는 것이다.(다른 분들의 선택, 모범 답안이 궁금하다.) 준비작업: macOS에 Postgres 설치하기 다양..

golang 2022. 12. 18. 11:35
Golang: go get으로 패키지를 최신으로 업데이트 하는 법

개요 별 생각없이 go get -u 옵션을 사용해왔었는데 회사에서 사용하는 패키지를 이용한 개발을 하다 그 의미를 이해하게 되었다. 어떤 상황이었나? go work를 이용해서 workspace 디렉토리 아래에 개발하는 애플리케이션과 패키지 디렉토리를 두고 개발한다. 이 경우 애플리케이션은 같은 workspace 아래의 패키지를 이용하기 때문에 패키지를 수정해가며 개발을 할 수 있다. 하지만, 이 경우 애플리케이션의 go.mod 에 명시한 패키지의 버전 정보가 맞지 않게 된다. 해법은 go get -u 옵션 이를 업데이트 시켜주려면 1. 패키지를 GitHub으로 git push 해 준 다음에 2. go get -u 옵션으로 다시 패키지를 가져오면 된다. 좀 더 정확히는 시멘틱 버저닝으로 보면 메이저 버전은..

golang 2022. 12. 15. 00:49
Golang ORM - Bun 삽질 이야기 - Automatic timestamp

Golang에서의 경량 ORM으로서의 bun package를 다루며 경험한 내용을 정리해둔다. Automatic timestamp 링크: https://bun.uptrace.dev/guide/models.html#automatic-timestamps INSERT 시에 생성한 시간을 자동으로 추가하도록 하는 기능이다. Example code with comment 아래 코드와 코멘트로 설명을 마무리 한다. 전체 GitHub Repo: https://github.com/nicewook/bun-orm-study Query Building Example: https://github.com/nicewook/bun-orm-study/blob/main/default-timestamp/main.go bun 태그의 의미..

golang 2022. 12. 10. 02:44
Golang ORM - Bun 삽질 이야기 - Query building

Golang에서의 경량 ORM으로서의 bun package를 다루며 경험한 내용을 정리해둔다. Query building 링크: https://bun.uptrace.dev/guide/complex-queries.html#query-generation Query를 만들면서 조건에 따라 더욱 이어붙이는 건에 대하여 q = q.Limit() 의 결과가 단순히 q.Limit()와 같은 것을 동료분이 이야기해 알게 되었다. 코드가 더욱 간결해진다. 그런데 위 링크를 보면 심지어 bun 패키지 설명도 그 차이를 모르는 것인가 싶다. Example code with comment 아래 코드와 코멘트로 설명을 마무리 한다. 전체 GitHub Repo: https://github.com/nicewook/bun-orm-s..

golang 2022. 12. 10. 01:50
Golang ORM - Bun 삽질 이야기 - ScanAndCount

Golang에서의 경량 ORM으로서의 bun package를 다루며 경험한 내용을 정리해둔다. ScanAndCount 링크: https://bun.uptrace.dev/guide/query-select.html#count-rows 데이터베이스를 다루며 query 로 리스트를 가져올 때에는 Offset, Limit 를 이용해 그 일부만을 가져와야 할 때가 많다. 그러면서도 paignation 을 위해 전체 개수를 Count 해 주어야 한다. bun 은 ScanAndCount() 기능을 제공한다. 이 매서드가 이쁜 것은 이 지점이다. Offset, Limit가 적용되면서도 Count는 그것이 적용되지 않은 전체 개수를 세어주는 것이다. Example code with comment 아래의 발췌한 코드와 코멘..

golang 2022. 12. 9. 22:39
Golang: gorilla/websocket chatting 예제 분석

Photo by Christopher Robin Ebbinghaus on Unsplash Websocket의 대표적인 사용처는 채팅이 아닐까? 지금까지 살펴본 websocket의 동작이 실제 애플리케이션에서 어떻게 구현되고 활용되는지를 gorilla/websocket 패키지에서 제공하는 채팅 예제의 서버쪽 코드로 알아보겠다. websocket connection이 이루어지고 나서 message를 주고 받는 것은 서버와 클라이언트에 차이가 없기 때문이다. 구글링 해보면 이 예제에 대한 분석과 설명은 꽤나 많다. GitHub: https://github.com/gorilla/websocket/tree/master/examples/chat Websocket connection 클라이언트가 서버의 /ws end..

golang 2021. 12. 13. 16:57
Golang Gin Gonic - 5. Middleware

간단한 API 서버를 제외하고는 웹서비스의 전형적인 HTTP API server를 실무에서 개발한 적이 없다. 유튜브에서 Golang의 대표적인 web framework인 Gin을 이용한 좋은 강좌를 만나 이를 하나씩 따라하려고 한다. 다섯 번째로 미들웨어에 대해 알아본다. Playlist: Rest API in Golang using Gin Gonic: https://bit.ly/3hsZKbv YouTube. Grouping Rest API's in Golang using Gin: https://youtu.be/sh80Do4yIqA 구현해본 GitHub repo: https://github.com/nicewook/gin-gonic-study 이번 블로그 포스팅 소스코드: https://github.co..

golang 2021. 10. 5. 16:48
Golang Gin Gonic - 3. Post files to API server

간단한 API 서버를 제외하고는 웹서비스의 전형적인 HTTP API server를 실무에서 개발한 적이 없다. 유튜브에서 Golang의 대표적인 web framework인 Gin을 이용한 좋은 강좌를 만나 이를 하나씩 따라하려고 한다. 세 번째로 사용자의 아바타 파일을 올리면 그것을 저장할 수 있도록 하면서, uri와 form도 복습을 해보겠다 Playlist: Rest API in Golang using Gin Gonic: https://bit.ly/3hsZKbv YouTube: Post files to API server using Gin in Golang: https://youtu.be/M5KhqwOrBGc 구현해본 GitHub repo: https://github.com/nicewook/gin-g..

golang 2021. 10. 1. 15:58
Golang: TLS version and Cipher suites

Photo by Alex Motoc on Unsplash HTTPS server를 운영할 때에 보안과 관련한 설정에 있어서 TLS version과 Cipher suite에 대해 정리해본다. 지나치게 깊이 들어가지는 않으면서도 전체적인 개념이해가 되는 방향으로 하였다. 큰 개념의 이해후에 각자가 필요한 만큼 좀더 파고들어갈 수 있겠다. 거친 개념정리 - HTTPS로 일단 연결이 되면 중간에 내용을 가로챈다 하여도 안전하다. 이 보안을 담당하는 녀석이 TLS이다. - 현재 시점(2021-09-27) TLSv1.3을 권장하며, 최소 TLSv1.2 이상을 사용하자. (다만 TLSv1.3은 모니터링에 제약이 있을 수 있다.) - HTTPS로 보안연결을 하는 작업이 TLS handshake이며 server와 cli..

golang 2021. 9. 27. 17:08
이전 1 2 다음
이전 다음
반응형
공지사항
최근에 올라온 글
  • 테니스 이너게임을 읽고
  • 임백준님의 "개발자의 평생공부" 칼럼을 읽고
  • 이토록 뜻밖의 뇌과학을 읽고
  • Golang: embed한 파일을 API 요청에 ⋯
최근에 달린 댓글
  • 한 눈에 알아보시는군요. 시간이 되면 책 이후의 내⋯
  • 이론편이 깔끔하게 정리되었군요!
  • 깔끔하고 눈에 확 들어오게 정리해주셨네요 !!
  • 약간의 오해가 있으신 듯 합니다. 1. bcrypt⋯
Total
387,615
Today
31
Yesterday
139
링크
TAG
  • 하드씽
  • gorilla/websocket
  • docker
  • min heap
  • timestamp
  • agile
  • 자아
  • websocket
  • 클린 애자일
  • postgres
  • additional data
  • 2022
  • ORM
  • golang
  • powershell
  • branch
  • solid
  • AES
  • 독서후기
  • gcm
  • 명상
  • 로젠버그
  • install
  • heap
  • 마셜
  • go
  • Gin
  • Handshake
  • bun
  • 비폭력대화
more
«   2023/02   »
일 월 화 수 목 금 토
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
글 보관함
  • 2023/02 (2)
  • 2023/01 (2)
  • 2022/12 (17)
  • 2022/11 (5)

Blog is powered by Tistory / Designed by Tistory

티스토리툴바