최근 Software Engineering at Google 이라는 책을 무료 PDF로 읽고 있다. - PDF 링크: https://abseil.io/resources/swe_at_google.2.pdf 책을 읽다보니 저자중 한 명인 Hyrum Wright(하이름 정도로 발음하면 될 듯)의 이름을 딴 Hyrum's Law라는 것을 알게 되어 이를 한 번 정리해보았다. - Hyrum's Law: https://www.hyrumslaw.com/ Hyrum's Law "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your syste..
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 Markus Spiske on Unsplash 이번에는 container/heap 패키지를 이용해서 구현해보자 "요구사항만 만족해주면 원하는 heap 기능을 제공하겠다." 이렇게 한 줄 요약할 수 있겠다. (Fix, Remove 등의 기능도 있지만 이것은 생략하겠다.) 이전 포스팅한 from the scratch 구현 - https://jusths.tistory.com/215 - https://play.golang.org/p/cjYXpQjPiZY container/heap을 이용한 구현 - https://play.golang.org/p/JwU6aHNGb7k 요구사항과 제공기능 https://golang.org/pkg/container/heap/#Interface 어떠한 타입이건 sort...
Photo by Markus Spiske on Unsplash LeetCode 문제를 풀다가 min heap이 필요한 문제를 만난김에, Go는 쉽게 쓸 수 있는 패키지는 제공하지 않기에 (오히려 그 덕분에) min heap을 들여다보고 공부해보게 되었다. (참고: LeetCode problem: https://leetcode.com/contest/weekly-contest-237/problems/single-threaded-cpu/ ) Min Heap이란 무엇인가? 이진 트리인데 parent는 아래의 child 노드들보다 작은 값을 가진다. 실제 구현은 슬라이스의 형태이다. 아래 이미지는 Max Heap이지만,..
Photo by Joshua Reddekopp on Unsplash 원문링크: Five things I have learned after solving 500 Leetcode questions 원문을 기반으로 나름의 정리를 해본다 원문에도 자주 언급되는 "LeetCode 가 실무랑 무슨 상관! 다들 코딩 인터뷰를 하려고 하니 어쩔 수 없이 하는 거지! " 하는 부류가 바로 나였는데, 글 정리를 하면서 요 며칠 사이 재미가 붙어버리기도 한 LeetCode를 꾸준히 해야겠다 싶다. 참고: 보통 이렇게 둘을 비교한다. Grinding leetcode vs. creating meaningful software - LeetCode 문제 푸는 기계가되기 vs. 실제 의미있는 프로그램을 짜기 본문 정리 시작 기술 인..
Photo by Lesley Davidson on Unsplash 데이터 중심 애플리케이션 설계 라는 책을 읽고 있다. 알라딘 링크: http://aladin.kr/p/t1Nzd 책에서 설명해주는 ACID의 개념이 그동안 어렴푸시 이해했던 부분을 명확하게 밝혀주는 기분이 들어 책의 내용을 정리하며 나의 것으로 만들어보려 한다. 아래는 책의 223p-227p의 내용이다. ACID의 의미 "1983년 테오 하더(Theo Harder)와 안드레아스 로이터(Andreas Reuter)는 데이터베이스에서 내결함성 메커니즘을 나타내는 정확한 용어를 확립하기 위해 ACID를 만들었다." 223p 그런데 문제는 현실 세계에서 ACID에 대한 기준이 모호하다는 것이다. Atomicity - 원자성 클라이언트가 쓰기 작업..
유튜브를 통해 타이 로페즈라는 사람의 인터뷰를 보게 되었다. 몇몇 마음에 걸리는 부분이 있음에도 (유튜브 속 타이 로페즈의 말대로) 마음에 새겨둘 좋은 조언이 많다는 생각이 이렇게 정리해 본다. 군데군데 나의 감상과 생각도 조금 넣었다. 한글 요약 유튜브 링크: https://youtu.be/5Gty04W5lPg 오리지날 유튜브 링크: https://youtu.be/jX5eajzLJMU 아래는 한글 요약 유튜브에서 발췌한 타이 로페즈 소개글 타이 로페즈 @Tai Lopez 세계 최고 사업가들의 모임인 오라클스(The Oracles)의 멤버이며, 투자자이자 자선사업가로 유명한 백만장자. 수백만 달러에 달하는 사업체들에게 자문, 소셜 마케팅의 전문가 그의 필수 성공 철학 중 가장 중요하게 '독서'와 '멘토..
당신의 이유는 무엇입니까 꿈에도 몰랐다. 아무도 모르게 죽어 갈 남자가 2년 후의 내가 될 줄. 제7회 브런치북 출판 프로젝트 대상 수상작 답이 있다면, 알 수 있는가가 책 로 출간됐다. www.aladin.co.kr 뜨겁게 살아낸 누군가가, 자신을 적나라하게 드러낸 글을 읽으니 가슴이 뛰었다. 더 열심히 달리고, 더 뜨겁게 도전하고 싶어졌다. "상황에 나를 온통 내주고 자동으로 슬퍼하고, 자동으로 기뻐하고, 자동으로 괴로워한다. 인생의 주체가 내가 아니라 상황이 되어 버린다." 62p 내 몸안에 생성되어 있는 자동분류기에 나를 내맡긴 것이다. 이를 극복하기 위해서 "그제야 나는 스스로에게 묻는다. 그렇다면 무엇을 바꾸어야 하고, 어떻게 해야 하는가?" 64p 자동분류기의 존재를 인식하고 이를 객관적으로..
Photo by Austin Distel on Unsplash 드디어 마지막 Dependency Inversion Principle 이다. - Single Responsibility Principle - Open/Closed Principle - Liskov Substitution Principle - Interface Segregation Principle - Dependency Inversion Principle Dependency Inversion Principle "High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on de..
- Total
- Today
- Yesterday
- 영화
- Bug
- 잡학툰
- 인텔리제이
- folklore
- Gin
- 체호프
- bun
- 독서
- solid
- 노션
- ChatGPT
- 클린 애자일
- agile
- 2023
- 엉클 밥
- golang
- strange
- 독서후기
- 티스토리챌린지
- 오블완
- github
- clean agile
- intellij
- OpenAI
- go
- 2024년
- websocket
- API
- notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |