엘키의 주절 주절

소소한 개발 이야기

축구와 소프트웨어 개발 - 02 로테이션

개요 모든 팀 스포츠가 개발과 닮은 부분이 많다. 아직도 많은 회사가 1인 개발자인 경우가 꽤 있고, 그게 가능한 직군에 속한다지만, 보통 작은 개발팀이 4~6명, 10명 정도의 팀이 일반적인 것 같다. 개발실로 묶이는 인원을 치자면 20~100명 정도로 조직되는 경우가 많다. 균형이라는, 공정이라는 미명하에 같은 업무를 분배하는 경우를 적지 ...

유닛 테스트의 범위

개요 유닛 테스트 (단위 테스트)가 필요하다는 것은 다들 동의하고 이해하고 있다. 사실 개발 과정에 자연스레 녹여낸다면 더 할 나위 없겠지만, 그렇지 않은 경우의 팀도 꽤 많을 것이다. 나는 많은 좋은 팀들이 실천하고 있는 유닛 테스트를 개발 과정에 포함시키지 못하는 팀에서 시도 해볼만 한 유닛 테스트의 시점과 방법에 대해서 얘기해보고자 한다. ...

Edge DB

개요 RDB를 사용하면서 아쉬웠던 것은 무엇이 있었을까? 테이블 간의 관계를 생각한 대로 지정하면 성능 이슈가 생기고, 이를 막기 위한 규약들이나 정규화 수준에 대한 논의가 필요하고, 상황에 따라 쿼리 튜닝도 반 필수가 되기 십상이었다. 또한 담고 있던 데이터가 많아 질 수록, 인덱스로 인한 다양한 부작용이 발생한다. Edge DB의 특징 ...

C++의 시대는 저물고 있고, Rust는 떠오르고 있다

개요 최근 C/C++을 Legacy, Deprecated화 하자는 의견이 다양하게 나오고 있다. 심지어 그 주장이 C++의 발전의 양대 축의 하나인 Microsoft진영의 Azure CTO의 의견이라는 것이 슬프다. Azure CTO: “이제 새 프로젝트를 C/C++로 시작하는 것은 중단할 때가 되었음” - GeekNews (hada.io)...

Nullable (Feat. Kotlin, C#)

개요 Null 은 무엇인가? 없는 이란 뜻이며, 값을 보유하고 있지 않음을 의미한다. Null은 값을 담고 있지 않기에, 없는 값을 읽으려 시도할 경우 C#, Java 등의 언어는 NullPointer Exception, NullReference Exception 등의 예외를 일으킨다. 값이 있을거라고 가정하고 작성한 코드가, 값이 없을 경우엔...

자기 객관화

개요 2005년 처음 직업 개발자가 되었을 때, 작은 회사를 다녔다. 그리고 수 많은 회사를 다니게 됐는데, 그 과정에서 나는 항상 동료들에게 자극받고, 배울 포인트를 느끼고자 했다. 그런 점을 찾다보니 나도 모르게 평가를 하게 되곤 했다. 주니어가 좋은 프로그래머에 대한 기준을 얼마나 잘 잡았겠냐 싶지만, 당시에도 수많은 좋은 서적에서의 훌륭...

리더의 덕목 - 03. 과정도 중요시 여기기

개요 사실 관리자가 결과 지향적일 수 밖에 없는 것은, 본인이 그런 성향이 아니더라도, 주변에 혹은 더 상급자의 요구가 결과를 원하기 때문일 것이다. 결과라는 것은 대부분의 조직에 필요한 것이고, 이견 여지가 적은 가치관이라고 할 수 있을 것이다. 결과의 중요성을 부정하는 것은 아니지만, 과정은 그만큼이나, 아니 어쩌면 결과보다 더 중요할 수 있...

주니어를 위한 성장에 필요한 노력

개요 보통 힘든 취업 준비 기간을 지나서, 취업을 하면 모든 걸 이룬 거 같겠지만, 사실 개발자로서의 인생은 취업한 시점이 시작이다. 내가 다녔던 모 회사에서 신입 공채 합격자인 신입 사원은 수습 기간 통과 후 팀 배정 뒤 첫 회식에서, 공채 통과 했으니 열심히 일하고 싶지 않다. 이미 성공했다고 생각하며, 앞으론 열심히 보다는 즐기며 살고 싶다는...

게임 서버에서의 DB 사용 전략 - 02 NoSQL

개요 RDB는 데이터 저장소를 선택할 때, 가장 기본이 되는 선택지이다. 한국에서 가장 자주 선택되는 웹 서버 프레임 워크인 Spring만 봐도 과거에는 JDBC나 MyBatis, 지금은 JPA가 필수 기술에 포함되는 것만 봐도 알 수 있을 것이다. 살펴보기 그렇다면 NoSQL의 입지는 어떨까? 요즘은 정말 많은 채용 공고에서 MongoDB...

C# LINQ 함수들의 작동 방식 (with skeches)

최근에 읽게된 글 중에서, LINQ의 편리한 메소드들을 시각화 해 준 글이 있었다. LINQ의 함수들의 작동 방식 💡 LINQ explained with sketches Select : 특정 값을 선택 (또는 변환 역할도 가능) like Projection Where : 추출 SelectMany : 병합 Zip : 두 목...