엔지니어링 매니저로서 팀원들의 승진을 돕고, 처음으로 개발자로 입사할 기회를 제공하는 것은 큰 보람입니다. 물론, 끝없는 회의가 그 보상인 것은 아니지만요. 반면, 팀에서 누군가를 내보내야 하는 불편한 순간도 경험했습니다. 어렵게 첫 개발자 직무를 얻었지만, 얼마 지나지 않아 해고된 주니어 개발자들과 이야기를 나눈 적도 있습니다. 이번 글에서는 사람들이 해고되는 가장 흔한 두 가지 이유와 이를 피하는 방법에 대해 살펴보겠습니다. 대부분의 경우, 당신의 잘못이 아닙니다아무리 좋은 코드를 작성하고 기대치를 충족하더라도 해고될 수 있습니다. 안정적인 직장은 존재하지 않습니다.구조조정, 무능한 관리자, 회사 합병, 심지어 사무실을 파괴하는 소행성(?) 같은 변수도 있습니다. 이러한 상황을 완전히 피할 수는 없지..
소프트웨어엔지니어링

마침내 리트코드에서 300개의 문제를 해결했습니다. 다음은 제가 해결한 주제의 분포와 각 주제의 수 입니다.이 여정에서 중요한 부분은 다음과 같습니다. 고급 토픽에 집중하기: 동적 프로그래밍(DP), 이진 검색, 그래프, 트리 및 우선순위 큐와 같은 주제는 인터뷰에서 자주 질문을 받으며, 익숙해 지기 위해서는 시간과 인내심이 필요하기 때문에 계속해서 집중합니다.다른 사람과 비교하지 않기: 우리는 모두 다른 개체이기 때문에, 자신의 학습곡선을 그대로 받아들이는 것이 좋습니다. 당신의 여정을 다른 사람과 비교하지 마세요.일하면서 300개의 문제를 해결하는 데 10개월이 걸렸고, 일부 사람들은 그 절반의 시간만을 투자할지도 모르지만 괜찮습니다. 그것은 저만의 여정이니 다른 사람을 생각하며 내 기분..

시스템 디자인은 복잡하고 하나의 디자인이 모든 경우에 적합한 것도 아닙니다. 아래에서 면접에서 사용할 수 있는 유용한 규칙을 공유하겠습니다. 📌 읽기가 많은 시스템의 경우- 캐시 사용을 고려 📌 쓰기가 많은 시스템의 경우 - 비동기 처리를 위해 Message Queue 사용 📌 낮은 지연시간을 요구하는 경우 - 캐시 및 CDN 사용을 고려 📌 ACID 원칙이 필요한 경우 - RDBMS/SQL DB로 이동 📌 비정형 데이터의 경우 - NoSQL DB로 이동 📌 복잡한 데이터(비디오, 이미지, 파일)의 경우 - Blob/Object 저장소로 이동 📌 복잡한 사전 계산이 필요한 경우 - Message Queue & 캐시를 이용 📌 대용량 데이터 검색 - 검색 인덱스, 트리 또는 검색 엔진을 고려 📌 SQL 데..