최근 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 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 - 원자성 클라이언트가 쓰기 작업..
Photo by 青 晨 on Unsplash 컴퓨터 공부를 하다보면 엔디언(Endian)이라는 개념이 나온다. 빅 엔디언, 리틀 엔디언 어원은 걸리버 여행기에 나오는 소인국들의 싸움의 원인인 달걀을 어느쪽으로 깨먹는가 하는 논쟁이다. 달걀의 뾰족한 부분이 아닌 상대적으로 넙적한 부분을 Big-end 라고 부른 것에서 나온 것이다. 그렇다면 컴퓨터에서 이야기하는 빅 엔디언, 리틀 엔디언은 무슨 의미일까? 1바이트가 넘는 타입을 메모리에 저장하는 방법 integer 4바이트 타입이 있고 이 타입의 값을 메모리에 저장한다고 생각해보자. 이 값을 16진수로 0x12345678 이라고 하자 컴퓨터 메모리는 한 바이트마다 주소값을 가진다. 4바이트를 저장해야 하니 4개의 메모리 주소에 각각 한 바이트씩 저장할 것이..
Photo by David Travis on Unsplash 6장 애자일해지기 까지만 정리하려 한다. 지금까지 애자일 프로세스를 실천하는 방법을 다 배웠다. 그런데 실전에서 제대로 해내는 조직은 드물다. 6장은 진짜 애자일한 조직으로 가는 길에 대한 이야기를 한다. 결론부터: 로버트 마틴이 말하고자 하는 애자일한 조직이 되는 방법 "나는 아직도 20년 전 생각에 변함이 없다. '너무 쉬운데? 몇 가지 단순한 규칙과 실천 방법만 지키면 되잖아, 아무것도 아니네" 188p "그러니 방법론 중 하나만 골라라. 아예 고르지 않아도 된다. 전체 생애 주기에 걸쳐 모든 규칙을 지키고 있는지 확인하라. 팀 전체의 동의를 구하라. 그리고 시작하라. 용기와 소통, 피드백, 단순함을 기억하고, 정기적으로 규칙과 행동을 조..
Photo by David Travis on Unsplash 비즈니스 실천 방법, 팀 실천 방법에 이어, 클린 애자일 5장은 마지막 동그라미인 기술 실천 방법을 이야기 한다. 기술 실천 방법이 애자일의 진짜 핵심이다. 기술 실천 방법 다음과 같다. 테스트 주도 개발(Test-Driven Development): 실패하는 테스트를 짜고, 그 다음에 테스트를 통과하는 코드를 짠다. 리팩터링(Refactoring): TDD를 통해 동작하는 코드를 짜고 나면, 이를 리팩터링 한다. 단순한 설계(Simple Design): 리팩터링 목표중의 하나이다. 최대한 단순하게 최소한의 코드로만 작성하라는 것이다. 짝 프로그래밍(Pair Programming): 두 사람이 함께 프로그래밍을 해나간다. 하나하나 자세한 설명이..
Photo by Thomas Jensen on Unsplash 회사 내부에 여러 부서가 AP를 사용하며 테스트하다 보니 때때로 설정이 꼬여서 인터넷이 안되는 경우가 많았다. 복잡한 개론을 떠나서 쉽게 풀어서 문제점과 해결 방안을 정리해 보았다. 문제는 인터넷을 사용하려면 게이트웨이를 통해서 외부로 나가야 한다. Windows 에서 아래와 같이 게이트웨이 IP를 설정하는 이유이다. (아래 그림으로 본다면) 사무실의 내 컴퓨터가 192.168.0.203 이라는 Local IP를 이용하는데 외부와 연결이 되는 게이트웨이의 정보를 명시해줘야 하는 것이다. 그런데 (우리가 흔히 공유기라 부르는) 사무실의 AP가 여러 대이고 꼼꼼히 관리를 하지 않았다면 192.168.0.1 IP를 쓰는 AP가 여러 개 존재하게 되..
Photo by David Travis on Unsplash 클린 애자일 4장은 팀 실천 방법을 다루고 있다. 팀 실천 방법은 팀원들 사이의 관계, 그리고 팀원과 제품 사이의 관계에 대한 것이다. 론 제프리즈의 삶의 순환(Circle of Life) 그림을 다시 보자. 가운데 원이 팀 실천 방법이다. 팀 실천 방법 다음과 같다. - 메타포(Metaphor): 프로젝트와 관련이 있는 모든 사람들이 공감하고 이해하며 사용할 수 있는 개념과 언어가 필요하다. - 지속 가능한 속도(Sustainable Pace): 단숨에 해치우려 하기보다 꾸준한 페이스로 개발할 수 있어야 한다. 개발은 마라톤이다. - 공동 소유(Collective Ownership): 팀원들은 모든 코드를 다루고 이해할 수 있어야 한다. - ..
Photo by David Travis on Unsplash 클린 애자일 3장은 비즈니스 실천 방법을 다루고 있다. 개발은 결국 비즈니스를 하려고 하는 것이다. "2001년 스노버드 회의 때였다. 켄트 벡은 사업 부서와 개발 부서 사이의 불화를 치유하는 것이 우리의 목표 중 하나라고 말했다. 이 목표를 달성하는데 비즈니스 실천방법이 큰 역할을 할 것이다. 이 실천 방법들을 따르면 사업 부서와 개발 부서가 단순하고 명확하게 의사소통할 수 있다. 이런 의사소통이 신뢰를 낳는다." 109p 빼거나 요약할 부분이 없어서 3장의 결론을 그대로 가져왔다. 사업 부서와 개발 부서 사이에 잘 소통하여, 비즈니스적으로 도움이 되게 하는 것. 이게 애자일에서 비즈니스 실천 방법을 쓰는 이유이다. 아래 그림은 삶의 순환(C..
- Total
- Today
- Yesterday
- folklore
- github
- golang
- 잡학툰
- intellij
- Gin
- go
- OpenAI
- agile
- 2023
- 명상
- postgres
- 인텔리제이
- Shortcut
- ORM
- 중용
- 독서후기
- 노션
- strange
- Bug
- API
- notion
- 클린 애자일
- pool
- 체호프
- ChatGPT
- bun
- websocket
- 영화
- solid
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |