
개요모던 소프트웨어 엔지니어링 을 읽는데 본질적인 복잡성과 우발적인 복잡성 이야기가 나왔다. 도메인 주도 설계 관련 책을 읽으며 보았던 표현으로 기억해서, 이 참에 내 걸로 만들기위해 간단 정리해둔다.어디서 나온 말인가?“본질적 복잡성(essential complexity)” 과 “우발적 복잡성(accidental complexity)” 이라는 개념은 프레데릭 브룩스(Frederick P. Brooks) 가 1986년에 발표한 유명한 논문 「No Silver Bullet: Essence and Accidents of Software Engineering」 에서 처음 나온 개념이다. 논문은 소프트웨어 개발에 “마법 같은 획기적 해결책(silver bullet)” 은 없다고 주장한다. 다들 많이 들어본 표현..

개요최신 컴파일러는 최신 하드웨어에서 효율적으로 실행되도록 코드를 최적화하는 환상적인 작업을 수행한다. 코드가 단순하고 예측 가능할 때 최적화 기능이 뛰어나며 코드가 복잡할수록 컴파일러의 최적화 기능을 통해 얻을 수 있는 도움은 줄어든다. 대다수 컴파일러 최적화 도구는 코드 블록의 순환 복잡도cyclomatic complexity가 임겟값을 초과하면 최적화 시도를 포기한다.모던 소프트웨어 엔지니어링 p203 책을 읽다가 위 문장이 인상적이라 순혼 복잡도를 정리해본다. 코드가 단순하고 가독성이 좋은 것도 알고, 컴파일러의 최적화 기능도 알고 있었는데 이 둘이 이렇게 연결될 수 있다는 생각을 못했다. 위 문장을 다음과 같이 해석해본다.개발자가 아둥바둥 코드를 최적화하여 성능을 개선하려다 코드가 복잡해지고 가..

개요데이터베이스 인터널스를 읽고 있다. 책에서 소개되는 개념 중에서 처음 알게 되거나 명확히 알지 못했던 개념들을 하나씩 정리해본다.Belady’s Anomaly페이지 교체 알고리즘비유로 이해하기컴퓨터의 메모리는 책상 서랍, 디스크는 사물함, 페이지는 책 한 권이라고 생각해보자.학생은 서랍에 최대 3권의 책을 넣어둘 수 있다.수업 중 선생님이 말한다.“영어책 꺼내자” - 사물함에서 가져온다. 페이지 부재“수학책 꺼내자” - 사물함에서 가져온다. 페이지 부재“과학책 꺼내자” - 사물함에서 가져온다. 페이지 부재“다시 영어책 꺼내자” - 서랍에 있으니 바로 꺼낼 수 있다.“미술책 꺼내자” - 서랍에 없으니 책 한권을 사물함에 넣어두고 가져와야 한다. 페이지 부재이처럼 메모리에 없는 페이지를 디스크에서 불러오..

개요나중에 챙겨보고 싶은 유튜브를 보게되면 링크를 TickTick에 올려두고 짬이 날 때에 챙겨보고는 했었는데 이동욱님의 Slack, Gmail 의 북마크로 TickTick Task 만들기 글을 읽고 이를 자동화해보았다. Zapier를 이용하여 유튜브 좋아요를 누른 영상이 추가되면 이를 트리거로 하여 TickTick의 특정 리스트에 추가하도록 만들었다.Zapier우선은 Zapier 에 계정을 만들어둔다. 무료 요금제로 하더라도 사용에는 큰 무리가 없을 듯 싶다.Zap 을 새로 하나 생성한다.Trigger왼쪽의 15분은 15분마다 유튜브의 특정 플레이리스트에 비디오가 추가되었는지를 확인하고, 추가된 경우 trigger 된다는 것을 의미한다. 오른쪽을 보면유튜브를 트리거로 한다.트리거 이벤트는 특정 플레이리..

개요한기용(링크드인)님의 세미나에 가서 위임의 기술에 대한 말씀을 듣고 깨우친 바가 있었다. 최근의 AI 에이전트 활용에 있어도 통하는 바가 있다는 생각이 들었다. 위임의 기술은 AI 에이전트 활용에도 그대로 적용할 수 있다. 이 글에서는 위임의 핵심 원칙을 개발자의 관점에서 AI 에이전트와 연결해본다.위임의 기술한기용님의 세미나에서 배운 위임의 기술을 요약해본다.직급이 올라가면 일이 많아진다. 모든 일을 챙길 수 없고, 챙겨서도 안된다. 위임(delegate)을 통해 일을 나누어주고 본인은 좀더 중요한 일, 의사결정에 집중해야 한다. 지치지 않고 일할 수 있고, 회사에도 좋다.위임의 실패하지만 위임은 쉽지 않다. 전형적인 위임의 시도는 다음과 같다. 처음에는 위임이 잘될 거라고 생각하지만, 결국 ‘내..

개요이한결님의 인터뷰 영상을 유튜브 알고리즘의 우연으로 만나서 많이 배우고 느끼게 되어 정리해둔다.https://youtu.be/wYk_D0li8oo?si=eVASEDqaPZV-vT92유튜브 내용 요약 및 정리개요코딩을 어떻게 해야 할까를 좀더 체계적으로 잘 설명해준다.주요 주제작업을 분해하라어떻게 하면 될지 감이 왔다고 마구잡이로 코딩을 시작하면 안되고, 작은 단위로 나누고 효율적인 순서를 고민하는 시간이 필요하다.그리고 이를 머리속에 두지말고 적어둔다. 스트레스를 풀어내는 것이다.여러 일을 번갈아 하는 문맥전환(Context Switching)을 최소화 하라업무를 하다보면 여러가지 일을 동시다발로 하게 되고, 인터럽트도 많이 들어오게 된다. 이를 최소화하는 것을 목표로 하자.긴급하지 않은 메시지나 질..

개요Golang 무료 강의가 있어 입문하시는 분들께 어떨까 싶기도 하고 GoLand를 사용해볼 기회이기도 하여 강의를 들었다. 강의 사이트는 다음과 같다.사이트: https://www.bytesizego.com/무료강의: Mastering Go With GoLand수강을 완료하면 GoLand 1년 무료 라이선스도 준다 하기에 겸사겸사 잘되었다 싶었는데 수강을 다하지 않아도 마지막 강의 부분에서 라이선스를 받는 방법이 나와있다. 사이트(ByteSyzeGo)에서는 홍보, JetBrains 에서는 GoLand 이용자 확대를 위한 이벤트로 보이는데 언제까지 진행할지는 모르겠다.라이선스 받기강의를 다 듣지 않아도 마지막 강의에 리딤코드를 알려준다. 리딤코드까지 여기 공유할까 했다가 사이트와 젯브레인의 마켓팅 의도..

개요탄탄한 기술 테크 기업인 토스의 컨퍼런스에 참석한 후 받은 인상을 스케치하듯 정리해본다.행사 개요https://toss.im/slash-24일시: 2024년 9월 12일 목요일 10:00-17:00, 오전 9시 30분부터 입장 가능장소: 삼성동 COEX 그랜드볼룸아키텍처의 핵심, 카프카많은 발표에서 아키텍처를 이야기할 때에 카프카가 등장했다.아키텍처를 동기적으로 처리되는 강한 일관성(strong consistency)과 결과적, 최종적 일관성(eventual consistency)로 구분하고 최종적 일관성으로 충분한 지점의 핵심을 카프카가 담당하는 것이다.메시징 시스템은 충분히 시간을 투자하여 공부해둘 가치가 있는 영역이라 생각하고 카프카는 입문하기에 나무랄데 없는 제품이다.외화 예금 트랜잭션 아키텍..

개요프로그래밍을 하다가 터미널에게 Jira 페이지를 빠르게 열고 싶다는 생각이 들어 다음 링크를 찾아 나에 맞게 적용해두었다.배운 블로그 링크: https://wiki.yowu.dev/ko/dev/Terminal/Open-JIRA-issue-directly-from-the-terminal-to-Chrome터미널에서 Jira 빠르게 열기다음을 복사해서 터미널에서 실행하면Jira 관련 단축키 함수들을 사용자의 ~/.zshrc 파일에 추가하고,그 즉시 쉘에 적용할 수 있도록 source ~/.zshrc를 실행한다.echo '# Custom Jira shortcutsj() { open -n -a "Google Chrome" --args "--new-tab" "" }ja() { open -n -a "Google ..

사진: Unsplash의Med Badr Chemmaoui개요Interface, DIP, IoC 에 대한 이해를 돕는 비유를 해보려 한다.한 줄 정의인터페이스(Interface): 객체 간의 상호 작용을 정의하는 추상 타입으로, 구현 세부 사항을 숨기고 공통 동작을 명세한다.DIP(Dependency Inversion Principle): 고수준 모듈이 저수준 모듈에 의존하지 않고, 둘 다 추상화에 의존하도록 하는 설계 원칙이다.IoC(Inversion of Control): 객체의 생성과 의존성 주입을 외부 컨테이너나 프레임워크에 맡겨서 객체의 제어 흐름을 반전시키는 패턴이다.인터페이스(Interface)인터페이스는 채용 공고의 직무기술서(JD, Job Description)에 비유할 수 있다.회사는 “..

- Total
- Today
- Yesterday
- bun
- 클린 애자일
- backend
- intellij
- 영화
- 엉클 밥
- 잡학툰
- 클린 아키텍처
- 티스토리챌린지
- websocket
- gocore
- Gin
- go
- notion
- 독서후기
- Echo
- middleware
- clean agile
- API
- OpenAI
- ChatGPT
- postgres
- Bug
- solid
- golang
- strange
- agile
- 인텔리제이
- 독서
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |