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에서의 경량 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 아래의 발췌한 코드와 코멘..
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..
간단한 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..
간단한 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..
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..
간단한 API 서버를 제외하고는 웹서비스의 전형적인 HTTP API server를 실무에서 개발한 적이 없다. 유튜브에서 Golang의 대표적인 web framework인 Gin을 이용한 좋은 강좌를 만나 이를 하나씩 따라하려고 한다. 첫 번째는 간단한 REST API 작성이다. Handler를 테스트하는 방법을 곁들였다. - 전체 Playlist: Rest API in Golang using Gin Gonic: https://bit.ly/3hsZKbv - 이번 포스팅 YouTube. Create basic rest API using Gin Gonic framework in Golang: https://youtu.be/xJ8ryXFobGA - Test를 위해 참고한 링크: https://kpat.io/2..
Photo by Markus Spiske on Unsplash Go언어로 HTTP API server를 만들어보려 한다. 두 개의 endpoint를 가지는데 /signup은 사용자 추가, /signin은 로그인 시도에 사용한다. 포스팅의 핵심 의도는 bcrypt 알고리즘을 이용해서 안전하게 password를 저장하고, 로그인을 할때에 password가 맞는지 확인하는 것을 정리하는 것이기에 사용자 추가시 이미 사용중인 username인지 등등 세부적인 구현은 생략하였다. Bcrypt란 참고링크: https://jusths.tistory.com/158 비밀번호를 위해 특화된 해시 알고리즘중의 하나이며 가장 보편적으로 쓰이는 알고리즘이다. 비밀번호용 해시 알고리즘의 특징은, 일반적인 SHA2 등에 비해서 해..
Photo by Jean-Louis Paulin on Unsplash LeetCode 문제를 푸는데 풀기가 쉽지 않았다. discuss를 보니 next permutation을 계산하는 것 자체는 기본으로 알고 있는 것으로 하고 넘어가고 있었고, 어떤 언어는 기본으로 제공하는 함수였다. 그럼에도 자괴감을 힘겹게 극복하고 next permutation을 이해해보고 Go로 구현해보았다. 개념 이해 개념 이해 링크: https://bit.ly/3bvWZmu 우리가 구현하려는 것은 다음과 같다. 정수 슬라이스가 있다고 할때에 그 슬라이스 순서대로 하나의 수라고 생각해보자. 그러면 이 수의 각각의 자릿수의 순서만을 바꿔서 그 다음 큰 수를 찾는 것이다. 예를 들어 12345 라는 숫자가 있다면, 1, 2, 3, 4..
- Total
- Today
- Yesterday
- 인텔리제이
- notion
- 영화
- strange
- github
- OpenAI
- solid
- ChatGPT
- 클린 애자일
- 엉클 밥
- 독서후기
- clean agile
- 오블완
- 독서
- websocket
- golang
- agile
- bun
- 2023
- 2024년
- API
- intellij
- 체호프
- 잡학툰
- go
- Gin
- 티스토리챌린지
- 노션
- Bug
- folklore
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |