"기술은 끊임없이 변화하지만, 성장의 본질은 변하지 않는다"IT 업계에서 일하면서 이런 책이 진작 있었더라면 하는 아쉬움이 들 정도로 유익한 내용들이 많았습니다. 책 목차책은 총 6부로 구성되어 있습니다:1부: 개발자 커리어의 기본 사항2부: 유능한 소프트웨어 개발자3부: 다재다능한 시니어 엔지니어4부: 실용주의 테크리드5부: 롤모델로서의 스태프 및 수석 엔지니어6부: 결론 마음에 들었던 점실용적인 조언들각종 실전 팁들이 현장감 있게 서술되어 있습니다.특히 코드 리뷰, 프로젝트 관리 부분은 바로 적용해볼 수 있는 내용들이 많았어요.균형 잡힌 시각기술적 역량과 소프트 스킬의 균형을 강조합니다.'사람'과 '기술' 사이의 조화를 잘 다루고 있어요.성장 단계별 가이드각 레벨에 맞는 기대치와 역량이 명확히 제시되..
정석'정석'이라고 하면 무엇이 먼저 떠오르시나요?저는 '수학의 정석' 책이 생각납니다.뭐랄까... 당연히 정수를 모아놓은 책이여서 좋은 책이긴 한데...개인적으로 사전(Dictionary) 같은 느낌이라 손이 쉽게 가지 않던 책이었습니다.(막상 내용은 사전은 아니였지만요) 이번에 읽은 책은 '소프트웨어 설계의 정석' 입니다.설계에 대한 책을 읽어본 적은 없었던 것 같아 도전을 하게 되었는데요.책 외관을 보았을 때 '수학의 정석'과 같이 투박한 형태는 아니여서 안심하며 책을 펼치게 되었습니다. 소프트웨어 공학책을 읽다보니 소프트웨어 설계를 어떻게 할 것이며, 어떤 방법들이 있고, 외/내부 설계 등책에서 다루는 내용들이 대학 시절 수강했던 '소프트웨어 공학' 과목과 겹쳐서 그 때 기억이 많이 났습니다...
왜 읽게 되었는가법적 용어는 언제나 어렵다.법적 이슈에 휘말려 용어를 깊게 학습한 경험은 없지만청약을 신청하면서라던지 전세 집을 알아보며 접한 주택법, 주택임대차보호법 등일반인이 읽어서 이해하기엔 쉽지 않다. 같은 한글과 한국어지만, 외국어 같달까...그럴때면 포기하고 그냥 내 멋대로 이해하곤 했는데... 만약 실제로 법적인 이슈가 있었다면?변호사 사무실에 찾아가는 등 돈을 쓰며 어떻게든 남의 힘을 빌렸을 것 같다. 그러던 중 해당 책의 제목이 눈에 띄었다. AI 변호사라니... 남의 힘이지만.... 무료잖아? (제일 중요함)더욱이 요즘 업무에서도 GPT를 잘 활용하는 나로써 미래에 법적인 문제에 대응하기 위해 GPT를 이용한 변호법을 먼저 익혀두면 좋을 것 같았다. 책의 줄거리 및 추천 대상책의 줄거리..
Topic 1. 당신의 인생이다. 개발자들의 다양한 여러 불만 → 현재 업무, 기술의 변화, 성과, 연봉, 팀 분위기 등 이에 대한 답은 한결 같다. “왜 직접 바꾸지 않는가?” 당신에게는 스스로의 행동을 직접 결정할 수 있는 힘이 있다. 필요한 사항이 있으면 요구해보기 안된다 했을 때 정말 원하는 거면 다른 곳 찾아보기 여가시간 쪼개서 재미있어 보이는 것 공부하기 이 업계는 여러분에게 놀랄 만큼 다양한 기회를 준다. 주도적으로 행동해서 그 기회를 잡아라. Topic 2. 고양이가 내 소스 코드를 삼켰어요. 실용주의 철학 중 하나 “자신과 자신의 행동에 대해 책임을 지는 것” 기술적 문제? → 정직하고 솔직해져야 한다. 실수나 무지 같은 단점도 인정해야 한다. 팀 내 신뢰 팀이 여러분을 믿고 의지할 수 ..
알림 시스템은 단순히 모바일 푸시 알림에 한정되지 않음. 책에서는 모바일 푸시 알림, SMS 메시지, 이메일 3가지로 분류함. 1단계, 문제 이해 및 설계 범위 확정 질문을 통한 설계 범위 확정 Q) 어떤 종류의 알림 ? 푸시 알림, SMS 메시지, 이메일 iOS, Android, Laptop/Desktop 지원해야 함 Q) 실시간 시스템인지? 연성 실시간 시스템 (Soft real-time) 가능한 빨리 전달되어야 하지만, 요청이 몰린 경우 약간의 딜레이 허용 Q) 사용자가 알림을 받지 않는 옵션이 존재하는지? 사용자가 알림을 허용하지 않으면 알림을 받지 않음 Q) 하루에 몇 건의 알림? 천만 건의 모바일 푸시 백만 건의 SMS 메시지 5백만 건의 이메일 2단계, 개략적 설계안 제시 및 동의 구하기 알..
분산 시스템에서 사용될 유일 ID 생성기 관계형 데이터베이스의 auto_increment 속성을 사용하면 안되나? 분산 시스템 → 데이터베이서 서버 한 대로 버틸 수 있을 것인가? 여러 데이터베이스 시스템 → 지연시간/여러 조건 불충족 등의 문제가 발생할 수 있다. 1단계, 문제 이해 및 설계 범위 확정 요구사항 ID는 유일해야 한다. ID는 숫자로만 구성되어야 한다. ID는 64비트로 표현될 수 있는 값이어야 한다. ID는 발급날짜에 따라 정렬 가능해야 한다. 초당 10,000개의 ID를 만들 수 있어야 한다. 2단계, 개략적 설계안 제시 및 동의 구하기 여러 선택지 고려 다중 마스터 복제 앞서 말했듯 데이터베이스의 auto_increment 기능을 활용하는 것 1만큼 증가시켜 얻는 것이 아닌 데이터베..
정의 처리율 제한 장치 (Rate Limiter) 클라이언트 또는 서비스가 보내는 트리팩의 처리율을 제어하기 위한 장치 정의된 임계치(Threshold)를 넘어서면 추가로 도달한 모든 호출은 처리가 중단 Ex) 사용자는 초당 2회 이상의 새 글을 올릴 수 없다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없다. 처리율 제한 장치는 왜 사용하는가? DoS(Denial of Service) 공격에 의한 자원 고갈(Resource Starvation)을 방지할 수 있다. 비용을 절감할 수 있다. 처리를 제한해 서버를 많이 두지 않고, 우선순위가 높은 API에 더 많은 자원을 할당할 수 있다. 특히 요청 당 비용이 드는 Third party API를 사용하고 있는 경우, 횟수 제한을 통해 과도한..
시스템 설계 면접 기술적 측면 이상으로 지원자가 협렵에 적합한 사람인지, 압박이 심한 상황도 잘 헤쳐나가는지, 좋은 질문을 던질 능력이 있는지 부정적인 것 설계의 순수성에 집착한 나머지 타협적 결정을 도외시하고 오버 엔지니어링을 하는 엔지니어링들이 협업에도 많다. 오버 엔지니어링의 결과로 시스템 전반의 비용이 올라간다. 상당수 회사들은 값비싼 대가를 치르고 있다. 효과적 면접을 위한 4단계 접근법 1단계: 문제 이해 및 설계 범위 확정 바로 답부터 들이밀지 말자. 속도를 늦추자. 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하자. 가장 중요한 기술 중 하나는 올바른 질문을 하는 것. 적절한 가정을 하는 것. 그리고 시스템 구축에 필요한 정보를 모으는 것. 이 단계에서는 요구사항을 이해하고 모호함을 ..
- Total
- Today
- Yesterday
- Algorithm
- c++
- 쿠버네티스
- Clean Architecture
- gradle
- 알고리즘
- Kubernetes
- HTTP
- container
- java
- 일상
- 로그
- Spring boot
- Intellij
- 비동기
- tag
- hexagonal architecture
- Istio
- Spring
- WebFlux
- 하루
- python
- k8s
- 백준
- jasync
- boj
- MySQL
- docker
- Log
- 클린 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |