
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..

Photo by Honey Fangs on Unsplash 아주 잡다한 테스트이다. 정수를 역정렬하는 방법은 크게 두 개가 떠오르는데 둘 중 어느게 더 빠른지 알고 싶었다. 전체 테스트코드 링크: https://github.com/nicewook/golang-sort-reverse-test 첫 번째 방법은 sort.Reverse()를 활용하는 것이고, 두 번째 방법은 sort.Slice()를 이용하는 것이다. 첫 인상은 두 번째 방법이 빠를 것 같았다. 첫 번째 방법은 뭔가 세 번이나 감싸잖아? 하는 선입견이 컸다. func sortReverse1(a []int) { sort.Sort(sort.Reverse(sort.IntSlice(a))) } func sortReverse2(a []int) { sort..
Photo by Arian Darvishi on Unsplash 개요 Go modules 에 대해서 확인해보고, 나아가 vendor 쪽을 확실히 이해해보고 싶어서 아예 깨끗한 환경에서 Go 를 깔아보려 했는데 이왕 하는김에 윈도우의 WSL2 에 설치하고 간단히 개발할 수 있는 환경을 구축해보면 좋겠다 싶었다. 준비상황 WSL2 는 이미 사용할 준비가 되어 있고 zsh 및 oh my zsh 를 설치한 상태이며 Windows 에서는 VSCode 가 설치되어 있다. 참고 링크 - https://medium.com/@betakuang/setup-go-development-environment-with-vs-code-and-wsl-on-windows-62bd4625c6a7 - https://sal.as/post/..

- Total
- Today
- Yesterday
- postgres
- 클린 애자일
- 잡학툰
- strange
- Gin
- clean agile
- 클린 아키텍처
- ChatGPT
- golang
- 독서
- middleware
- solid
- OpenAI
- websocket
- backend
- 티스토리챌린지
- agile
- 영화
- intellij
- API
- Bug
- Echo
- go
- 오블완
- gocore
- notion
- 엉클 밥
- 독서후기
- bun
- 인텔리제이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |