간단한 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..
사진 출처: http://www.dapsa.kr/blog/?p=55193 당시일백수 - 라는 책을 읽으며 한시의 아름다움에 흠뻑 빠져있다. 송재소님이 학자로서 마음을 다해 정리하고 해설을 달아 한글로 옮겨주신게 느껴진다. 알라딘 링크: http://aladin.kr/p/HPzwk 두보를 시성, 이백을 시선이라 한다면 시불이라 불린 사람이 왕유 (자: 마힐)이다. 왕유의 절창으로 유명한 송원이사안서(送元二使安西)는 다음과 같다. 양관삼첩, 위성곡 으로도 불린다 渭城朝雨浥輕塵 (위성조우읍경진) 客舍青青柳色新 (객사청청류색신) 勸君更進一杯酒 (권군갱진일배주) 西出陽關無故人 (서출양관무고인) 책 96페이지의 한국어로 옮긴 부분은 다음과 같다 위성의 아침 비가 가벼운 먼지 적시니 객사는 푸르고 버들 빛은 싱그럽네..
Photo by Mitchell Griest on Unsplash 명상이 좋다는 말을 많이 들어서 불교, 명상과 관련한 책도 읽어보고, 유튜브를 통해 짧게나마 따라해보기도 했었는데 이번에 "나는 왜 내가 힘들까" https://jusths.tistory.com/231 를 읽으니 명확해지는 부분이 있어, 이해의 지점을 정리해두어 내 것으로 만들려 이 글을 쓴다. 세 줄 정리 인류가 진화하면서 생겨난 "자아"때문에 많은 이점을 가지게 되었지만, 현대사회에서는 "자아"의 지나친 간섭으로 삶의 전반이 휘둘리게 되었다. 명상은 이러한 "자아"를 다스리는 법을 훈련하는 것이다. 자아는 무엇인가? 그리고, 왜 문제가 되었는가? "나"라는 연속된 무언가가 있다고 "상상"하고 "나"의 과거를 돌아보고 미래를 준비하는 것..
Photo by Alex Motoc on Unsplash AES-GSM 알고리즘을 이용할 때에 nonce를 포함시키거나 aditional data를 추가시키는 경우를 알아보았다. 블로그 포스팅 링크: https://jusths.tistory.com/232 그 중에서 additional data를 활용하여 보안을 강화시키는 방법 하나를 공유해 본다. 더욱 널리쓰이는 활용법이 있는지 모르겠으나 (있다면 알려주시면 많은 공부가 되겠습니다). 렇게 사용할 수도 있다는 예로서 보면 되겠다. additional data를 쓰지 않는 상황 Device A에서 data를 만들었는데 Device B에서도 쓰고 싶다. 하지만 보안상 안전해야 한다. 상황: 서버와 디바이스들 사이에는 HTTPS(TLS)를 이용하여 통신상의 ..
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 Mitchell Griest on Unsplash 알라딘 링크: http://aladin.kr/p/5PPdm 책을 통해 자아에 대해 좀 더 알게 되었고, 명상이란게 무엇을 의미하는지 좀 더 과학적으로 이해하게 되었다. 다음과 같이 정리해본다 - 자아란 무엇인가 - 자아는 왜 문제가 되는가 - 자아의 개입을 막자 - 종교가 바라본 자아 - 자아와 자기통제 - 자기통제의 최적화 자아란 무엇인가 거칠게 말하면 인간만이 자아를 가지고 있다. 자아란 사람들이 존재한다고 믿는 "나"이다. 우리는 언제 태어나서 어떻게 자라나고 어떤 성격을 가졌고 어제는 무엇을 먹었던, "연속된" 그 어떤 존재가 있다고 믿는다. 그것이 자아이다. 인간에게는 이러한 연속된 나라는 존재가 있다고 생각할 수 있는 능력이 있..
Photo by Yancy Min on Unsplash Git을 사용하다 보면 여러가지 유용한 기능들을 만나게 되지만 한번에 모든 것을 다 외우고 쓰는 것은 익숙해지기 어렵다. 이참에 Git에서의 branch name을 대신하는 '-' (hyphen)의 사용법을 익혀보자. 이해하기도 쉽고 실제 git cli에서 버전 관리시에도 사용할 일이 많다. 실제 상황을 간단히 시뮬레이션 해보았다. 1. 디렉토리를 만들고 git을 초기화 한다. 2. init.txt 파일을 생성하고 git에 add 하고 commit 한다. (cm 이라는 alias를 commit 대신 설정해두었다.) 3. 그리고는 feature/a 라는 branch를 생성하고 (cb 는 commit -b의 alias) 4. a.txt 파일을 생성, g..
Photo by K15 Photos on Unsplash 쓰레드를 생성하는 pthread_create()의 함수 시그니처는 아래와 같다. int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); 그런데 빌드시에 파라미터로 들어가는 start_routine() 함수에서 warning이 뜬다. 분명 리턴값이 void 인데 왜 warning이 뜰까? warning: Control reaches end of non-void function [-Wreturn-type] 별거 아니다. 쓰레드 함수의 리턴값은 아래와 같이 해주어야 한다. pthread_exit(NULL); 참고 ..
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 Darran Shen on Unsplash 넷스케이프에서 서버 제품관리를 책임지고 있을 당시, 나는 팀원들 전부가 자신의 업무에 대해 저마다 다른 관점과 접근법을 갖고 있는 모습을 보고 답답하기 그지없었다. 그러던 어느 날 이런 생각이 불현듯 들었다. 이제껏 이 업계의 그 누구도 제품관리라는 업무에 관해 명확한 정의를 내린 적이 없었다! 그래서 내가 그 정의를 내려봤다. - 하드씽 175p 아래는 벤 호로위츠가 팀원인 제품관리자들을 교육하기 위해 좋은 제품관리자에 대한 자신의 생각을 정리한 글이다. 이 글은 두 가지 측면에서 나에게 큰 의미로 다가왔다. 좀 더 머리속에 새겨두고 싶어 애써 책의 내용을 일일이 타이핑하고, 원문도 찾아서 타이핑하였다. 첫째. 리더로서 팀원에게 바라는 것이 있..
- Total
- Today
- Yesterday
- 2023
- golang
- OpenAI
- bun
- 독서후기
- 제이펍
- Bug
- 티스토리챌린지
- 클린 애자일
- 체호프
- github
- strange
- folklore
- 영화
- 오블완
- 독서
- intellij
- notion
- websocket
- go
- 인텔리제이
- clean agile
- 잡학툰
- solid
- agile
- 노션
- 엉클 밥
- ChatGPT
- Gin
- API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |