개요 reflection 이라는 개념이 처음에는 참 어려웠다. Rob Pike 의 글을 따라가며 좀더 체계적으로 접근하며 이해해본다. - 링크: https://blog.golang.org/laws-of-reflection- 번역본 링크: https://johngrib.github.io/wiki/golang-the-laws-of-reflection/ Types and interfaces 예제 링크: https://play.golang.org/p/lcztLbvaUJj 간단히 몸을 풀어가자. MyInt 타입이 실제 int 값을 담더라도 MyInt 와 int 는 엄연히 다른 타입이다. - 따라서 두 타입의 변수간에는 할당, 비교등의 연산이 불가능하다. - type casting 을 해줘야만 연산이 가능해진다. ..
개요 Russ Cox 의 인터페이스 글을 기반으로 Interface 에 대해 좀 더 깊이 들여다 본다. 링크: https://research.swtch.com/interfaces 사용법 예제 링크: https://play.golang.org/p/AEHmlYtqkAy 1) ReadCloser 라는 인터페이스를 정의했다. - Read() 와 Close() 라는 메쏘드를 가진 type 이기만 하면 - ReadCloser 인터페이스를 만족한다. - 회사가 구인 광고에 워드와 엑셀을 할 수 있는 사람 이라고 올렸을때 - 내가 워드, 엑셀, 파워포인트, 포토샵을 할 수 있으면 지원이 가능한 것이다. 2) ReadAndClose() 라는 함수는 ReadCloser 인터페이스를 만족하는 타입을 파라미터로 받는다. 그리..
개요 사용자의 비밀번호를 그대로 보관하는 것은 위험하다. 비밀번호 보관에 특화된 bcrypt 를 알아보자. 참고링크 - 링크: https://auth0.com/blog/hashing-in-action-understanding-bcrypt/- 링크: https://d2.naver.com/helloworld/318732 TL;DR - 빠르게, 보안도 신경썼다는 티를 내면서 구현하려면 bcrypt 를 사용하자- 보안에 좀더 민감한 곳이라면 scrypt 를 쓰자 - 현 시점 비밀번호 저장의 끝판왕은 Argon2id 이다. 비밀번호를 보관하자. 1) Plaintext 를 저장한다면 데이터베이스가 털리면 바로 끝이다. - 이녀석 비밀번호는 asdf1234 이구나. 2) Hashing 을 한번 해주고 그걸 저장하면 ..
단도직입 언제 아래처럼 쓰고 if err := f(); err != nil { 언제 아래처럼 쓸 것인가? if err != nil { 규칙1. 가능하다면 if err := f(); err != nil { 를 써라. - Go 에서는 이렇게 하나로 묶어 쓰는걸 권장한다. - 아래 예시에서는 json.Unmarshal() 함수에서 이렇게 쓴다. - 이때 사용되는 err 변수는 if 문 안에서만 (= 빨간 테두리) 쓰인다. 규칙2. 리턴되는 값을 if 문 바깥에서도 쓰고 싶다면 if err != nil { 을 따로 쓴다. - 아래 예시에서는 json.Marshal() 함수에서 쓴다. - 이렇게 하면 bytes 변수의 범위 (scope) 가 if 문 바깥에서도 쓸 수 있다.
개요 전반기 정리의 독서 부분을 포함한 독서 27권에 대한 후기를 작성해본다. 읽었던 책들을 복기해보며, 다시 읽고 싶은 책들, 추천하고 싶은 책을 적어본다. 1월 - 7월 독서 15권 퀀텀스토리: 별 3.8 뒤로가니 너무 어렵게 느껴져 포기했지만 그래도 양자역학에 대해 많은 걸 알게 되었음Discovery Go: 별 3.8 조금 읽고 묵혀뒀던 책을 다시 처음부터 독파함. 고수의 풍모가 느껴지는 책남자의 뱃살: 별 2.7 먹는 것을 조절하여 체중을 줄이려던 시기에 참고 자료로 선택. 내용은 별로지만 원하는 것은 얻었음생각에 관한 생각: 별 4.5 읽은 사람은 인간을 조금은 더 이해하게 된다. 바로 재독까지 했으며, 현대인의 필독서팔코너: 별 4.5 예민하게 세상을 지켜보고, 그것을 정성스레 갈고 닦은 문..
- Total
- Today
- Yesterday
- bun
- 독서후기
- agile
- 노션
- strange
- postgres
- notion
- 잡학툰
- ChatGPT
- 명상
- pool
- 영화
- golang
- 클린 애자일
- 체호프
- github
- API
- ORM
- folklore
- OpenAI
- go
- Bug
- 인텔리제이
- 중용
- solid
- Shortcut
- websocket
- Gin
- intellij
- 2023
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |