Photo by Alex Motoc on Unsplash 가장 널리 쓰이는 대칭키 암호화 알고리즘중 하나인 AES(Advanced Encryption Standard)에 대해 간략히 알아보고 실제 Golang 코드를 들여다 보자 개요 비밀키 하나로 메시지를 암호화하고 다시 원래 메시지로 복호화 하는걸 대칭키(symmetric) 방식이라고 한다. 그 중에서도 현 시점 보안성과 성능을 충분히 만족하는 녀석이 AES라고 보면 되겠다. AES-128, AES-192, AES-256 그런데 AES는 비밀키(secret key)의 길이(= 비트수)로 128, 192, 256으로 나눌 수 있다. AES-128만으로도 충분히 보안이 우수하지만 AES-256이면 보안성은 더욱 나으면서도 성능도 나쁘지 않으니 성능에 매우..
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
- 독서
- Gin
- 엉클 밥
- notion
- 인텔리제이
- 2024년
- agile
- websocket
- solid
- 독서후기
- 잡학툰
- clean agile
- intellij
- ChatGPT
- folklore
- Bug
- go
- 2023
- 티스토리챌린지
- bun
- github
- strange
- 클린 애자일
- OpenAI
- 오블완
- 노션
- API
- golang
- 영화
- 체호프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |