개요 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 예민하게 세상을 지켜보고, 그것을 정성스레 갈고 닦은 문..
개요 링크의 Slice trick 들을 따라가 보며 정리해보았다. 링크: Slice Tricks: https://github.com/golang/go/wiki/SliceTricks append() 와 copy() 의 탄생 buiit-in 함수인 append() 와 copy() 가 제공되면서 container/vector 패키지는 더 이상 쓸 필요가 없다. Append - 뒤에 이어서 붙여넣기 a = append(a, b...) a 라는 슬라이스에 b 라는 녀석(들)을 뒤에 붙여준다. Copy - 복사하기 1) not perfect b = make([]T, len(a)) copy(b, a) 2) not perfect b = append([]T(nil), a...) 3) perfect b = append(a..
개요 아주 작은 습관의 힘국내도서저자 : 제임스 클리어(James Clear) / 이한이역출판 : 비즈니스북스 2019.02.26상세보기 엄청난 책은 아니다 좋은 경험과 깨달음을 얻고, 관련한 책을 읽고 공부하였으며, 잘 정리한 것은 맞지만 흔한 자기계발 책이다. 동시대 유사한 책들 가져다 붙인 부분들도 보이며, 순간 순간 제법 인사이트 있는 부분이 있지만 반대로 억지로 쥐어짜내어 책의 분량과 구색을 맞춘 부분도 보인다. 그럼에도 불구하고… 내가 책을 읽고 얻어갈 부분을 찾아서 나의 것으로 만들면 가치가 있다. 머리 속 정리 아래의 정리까지 마친 상황에서 머리속의 생각을 정리해보자 습관은 100 일정도는 꾸준히 유지해줘야 한다. 특정한 숫자의 목표를 달성하려 하지말고, 특정한 정체성의 사람이 되도록 하자..
Photo by Max Nelson on Unsplash 책 링크: http://www.acornpub.co.kr/book/clean-coder#toc알라딘: http://aladin.kr/p/MJJw1 최대한 간결하게 감상을 적어보자 개발자로서 프로다운 모습, 장인의 면모를 갖추자는 것이다. 할 만큼 했다는 식은 프로답지 못하다. 하라는 데로 하겠지만 얼마나 잘되지 보자는 심보는 최악이다. (수동적 공격성: passive-aggressive) 프로는 지식을 쌓아야 하고 그것을 책임있게 행동으로 옮긴다. 테스트하기 쉽게 코드를 짜야 한다. 구조가 좋아야 코드를 쉽게 변경할 수 있다. 아닌건 아니라고 말할 수 있는 용기가 있어야 한다. 몰입은 좋은게 아니다. 큰 그림을 놓치게 되고, 다른 사람과의 협업을 ..
개요 지난 포스팅에서는 https://jusths.tistory.com/151 1) Local PC 에서 돌아가는 HTTP Server 를 구현하여 2) (serveo.net 서비스를 이용해) Port forwarding 하여2) Slack App 에서 오는 HTTP Reqeust 를 받아 처리하고 회신하게 구현했었다. 이번에는 Google Cloud Functions 로/tz, /tzn, /tns 명령이 HTTP Reqeust 를 보내는 세 개의 endpoint 를 처리하게 해보자. - 하나의 Cloud function 으로 세 endpoint 를 처리하지 못하고, 세 개의 Cloud functions 를 만들어야 했다. 참고 링크 GitHub 구현코드 링크: https://github.com/nice..
개요 Slack 에서 다른 timezone 의 팀원과 대화를 나누는 경우, 업무시간이 지났는데 말을 거는건 아닌가 싶어서 팀원의 현재시간이 궁금할때가 많았다. 이때 간단한 Slack Slash Command 로 해당 timezone 의 현재시간을 확인할 수 있도록 구현해 본다. 목표 1./tz [zoneName or Time] 입력을 받으면 정규식으로 변환해서 찾아내기 - 예를 들어 시드니의 현재 시간을 알고 싶으면 /tz syd 만 치면 되도록 한다. 2./tzn, /tzs 뉴욕시간, 서울시간 바로 나타내기3. 월-금 업무시간인지 여부를 색깔로 표시하기 - 국가별 공휴일과 근무시간까지 체크하는 건 너무 오버인듯 하여 월-금, 9 to 6 만 체크한다. 참고 링크 Timezone database name..
5부. 아키텍처 구분 내용 및 생각 15장. 아키텍처란? "소프트웨어 아키텍트는 최고의 프로그래머이며, 앞으로도 계속 프로그래밍 작업을 맡을 뿐 아니라 동시에 나머지 팀원들이 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어 준다." 소프트웨어 시스템 아키텍처 - "그 모양은 시스템을 컴포턴트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다." - "그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수 되도록 만들어진다." "시스템 아키텍처는 시스템의 동작 여부와는 거의 관련이 없다." - 개판인 아키텍처도 동작하게 구현할 수 있다. "좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하..
- Total
- Today
- Yesterday
- 엉클 밥
- 노션
- OpenAI
- 독서후기
- 영화
- Gin
- clean agile
- solid
- notion
- 오블완
- API
- websocket
- folklore
- 클린 애자일
- agile
- github
- golang
- 인텔리제이
- ChatGPT
- strange
- Bug
- 잡학툰
- 2023
- bun
- 독서
- 체호프
- go
- 2024년
- 티스토리챌린지
- 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 |