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 아래는 벤 호로위츠가 팀원인 제품관리자들을 교육하기 위해 좋은 제품관리자에 대한 자신의 생각을 정리한 글이다. 이 글은 두 가지 측면에서 나에게 큰 의미로 다가왔다. 좀 더 머리속에 새겨두고 싶어 애써 책의 내용을 일일이 타이핑하고, 원문도 찾아서 타이핑하였다. 첫째. 리더로서 팀원에게 바라는 것이 있..
.PHONY가 어떤 상황에서 어떤 용도로 쓰이는지 한 번 찾아보고 간단히 정리해본다. GNU 참고 링크: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html 간결한 예제 링크: https://sodocumentation.net/makefile/topic/5542/-phony-target TL;DR 1. 실제 파일명과 target 이름의 충돌문제를 해결한다. 2. 성능을 향상시킨다. .PHONY를 쓰는 첫번째 이유: 실제 파일이름과의 충돌을 해결 Phony는 가짜라는 의미이며 phony target 이란 실제 파일이름이 아닌 target을 의미한다. make 명령이 실행되는 디렉토리에 Makefile의 target과 같은 이름의 파일..
Photo by Darran Shen on Unsplash "Life is struggle" - Karl Marx 책을 사놓고 보니 CEO로써 회사를 경영했던, 그야말로 날 것 그대로의 경험을 풀어놓은 것이었다. 흥미로운 이야기일 수는 있겠지만 개발자에게 무슨 의미가 있을까 생각이 우선 들었다. 하지만, 읽을 수록 나 자신을 돌아보고 생각을 하게 만드는 내용들이 많았다. 많이 부끄러웠고 많이 배웠다. 알라딘 링크: http://aladin.kr/p/oydFd 인상적이었던 문장들을 가져오며 나의 감상도 곁들여 보았다. "'만약 회사가 파산한다면 나는 무엇을 하면 좋을까?' 그러자 스스로도 놀랄 만한 답이 입 밖으로 나왔다." 60p 비슷한 이야기를 어디에선가 읽었었는데 기억이 나지 않는다. 최악의 상황을 ..
Photo by Andrei Slobtsov on Unsplash 전송되어 온 JSON byte array의 정확한 구조를 안다면 Unmarshaling을 하면 되겠지만 구조를 모르는 상황에서 JSON을 알아보기 쉽게 출력하여 분석하려고 한다. 참고 링크: https://stackoverflow.com/a/29046984/3382699 예제 링크: https://pkg.go.dev/encoding/json#example-Indent 플레이그라운드(약간 변형): https://play.golang.org/p/T6PQ6PBQCTO 예제 간단 분석 1) 도로의 이름과 번호를 담는 구조체 Road가 있다. 2) Road 타입의 인스턴스 roads를 생성한 다음 3) json.Marshal()로 byte arra..
- Total
- Today
- Yesterday
- bun
- 노션
- Bug
- 클린 애자일
- ORM
- 2023
- OpenAI
- websocket
- 영화
- ChatGPT
- 인텔리제이
- Gin
- 명상
- folklore
- API
- notion
- strange
- golang
- go
- postgres
- 중용
- Shortcut
- solid
- pool
- 독서후기
- github
- 체호프
- agile
- 잡학툰
- intellij
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |