정신없이 바쁜거보니 정신없는 한 해가 예상되는 ..
에세이
- 2022 CTO 회고 (2023/01/02)
- 인프런 CTO 이동욱(jojoldu) 님의 2022년 CTO 회고 글
- 개인적으로 존경하고 응원하는 개발자라 꾸준히 피드 트래킹을 했었는데 최근엔 피드를 많이 안읽다가 다시 읽기 시작하니 “여전히 꾸준히 열심히 살고 계시구나” 생각 하게되고, 매니저(CTO) 겸 개발자의 입장으로 성장중인 스타업의 개발 생태계나 고민들이 담겨있는 글이라 읽으면서 내내 새롭고 재밌었다
개발 관련
- 2022년도 개발자 에코시스템 현황 (2023/01/17)
- 매년 JetBrains 에서 발표하고 있는 개발자 생태계 현황
- COVID-19 팬데믹으로 변경된 업무 방식의 변화가 눈에 띄고, 떨어질줄 모르던 자바8의 인기가 (당연하지만) 점점 다음 버전으로 마이그레이션중이며, 신기한건 같은 LTS인 11보다 17 버전의 급격한 사용량 상승이 올랐으며 (사용자 수를 반영한 결과가 정확히 어떤 의미인지는 잘 모르지만) Kotlin 은 여전히 “고려되고있는언어”중 하나라는것이다 .. (흥해라 코틀린)
- 2022 Developer Survey (영어)
- Stackoverflow 에서 발표한 2022 개발자 현황
- 2022년이 끝나면서 많은 플랫폼들에서 2022 통계현황을 발표중이고, 흥미로운점(?)은 각 플랫폼별 성격이나 사용자의 성격이 반영되는 탓인지, 통계 수치의 일부나 개발 방법론, 트렌드가 조금씩 다른점이 재밌다
- 적정기술 딜레마 (2023/01/12)
- 카카오엔터프라이즈 FE 서현우님의 “목이 마르고 배고픈 아이에게 필요한건 스마트폰이 아니라 맑은 물과빵이듯 프로그래밍에도 적정 기술이 존재하며, 서비스의 요구사항과 기술 도입간의 적정기술 딜레마에 대한 고민” 글
- 글 자체는 프론트엔드의 상황을 예시로 들어주셨지만, 분야를 막론하고 “새로운 기술의 도입 vs 기존 구성원들의 러닝커브+프로젝트 배포일정” 등 비즈니스적으로 생각했을때 양보하고 선택하지 않으면 안되는 상황들을 고민해야하는 시기가 분명히 오게되고, 이는 단순히 “코딩”을 하는 코더가 아닌, 비즈니스 전반부를 이해하고 Domain 자체를 이해하기 시작하는 개발자의 순간부터 함께 오는 것 같다. 실제로 나도 “레거시는 악이다” 라고 생각했었으나 (지금도 심각한 레거시는 잘 이해를 못하지만..) 언제부턴가 “이건 팀이나 회사에 적용하긴 힘들지 않을까?” 혹은 “이 기술은 아직 익지 않아서 뒤에 추가적인 고민들로 시간을 잡아먹진 않을까?” 하는 고민들을 하게되는 것 같다
- 코드 커버리지 모범 사례 (2022/07/24)
- 김용균 · Edward Kim 님의 코드 커버리지에 대한 Carlos Arguelles, Marko Ivanković, and Adam Bender의 Code Coverage Best Practices 번역 글
- 실제로 나도 테스트코드에 광적으로 집착했던 시기가 있었고 (이때는 커버리지를 많은 수치적 증거로 활용했으며, 적어도 90% 의 커버리지를 넘지 못하는 코드는 이른바 “불안정한 상태” 라고 생각했었다), 따라서 해당 글의 많은 부분들에 공감이 되었으며 “높은 코드 커버리지 퍼센트는 테스트 범위의 고품질을 보장한다는 의미가 아닙니다.” 에 대한 내용은 오히려 지나치게 코드의 수정을 어렵게 만들고 테스트 커버리지를 위한 테스트코드를 작성하는 등의 부작용을 겪어봐서 특히 공감됐다.
- 동시성, 병렬, 비동기, 논블럭킹과 컨셉들 (2022/06/03)
- 컴퓨터공학에서 사용되는 “동시성”, “동기 비동기” “블럭킹 논블럭킹”, “Input Output” 등 많은 개념들을 이미지와 설명으로 설명한 글
- 동기와 비동기, 블럭킹과 논블럭킹은 생각보다 면접에도 자주나오고 어떤 언어를 하던 마주할 수 있는 개념들이라 듣기는 많이 들어봤지만 대부분 설명이 너무 장황하거나 or 설명이 너무 부실하거나 (필자도 잘 모르거나) or 설명은 알아듣겠는데 실제로 감이안오는 경우가 많았는데 이미지나 표로 잘 도식화 되어있고 설명도 어렵지않게 잘 정리되어있어서 종종 까먹었을때 들를 것 같은 글 (피드 자체가 다루는 내용이 좀 많아서 장황해보이는 느낌은 있다)
- TCP의 헤더에는 어떤 정보들이 담겨있는걸까? (2019/11/10)
- TCP 헤더 구조를 이해하기위해 왜 만들어졌는가에 대한 히스토리와 내부 컨셉이나 동작방식, 구성에 대한 설명을 담고있는 문동욱 님의 글
- 평소에 넌지시 알고있었던 개념들을 디테일하게 설명해주거나 히스토리(이게 왜 생겼는가에 대한 이해가 선행되면 자연스레 그 기술의 발전 방향과 개선점을 알 수 있게되므로)를 중요하게 생각하고 주절먹 하는 편이라, 이렇게 오래전에 쓰여진 글인지 몰랐지만 “봐야지” 하고 한참을 안보다가 피드정리를 다시 하면서 보게된 글이고 TCP 의 컨셉과 동작을 잘 이해하려면 관련 포스팅들도 함께 도움이 되는 글
- Promise는 왜 취소가 안 될까? (2023/01/11)
- 자바스크립트의 Promise 를 사용하며 생긴 궁금증 “왜 Promise 에는 취소 기능이 없지?” 에 대한 고민과 딥다이브하고 정리한 글
- 최근에 화면개발쪽에 관심이 생겨서 자바스크립트를 조금씩 배워보고 있는데, 계속해서 나오는 Promise 나 async await, 등의 주제들에 눈길이 가서 읽었고 내가 생각한 내용보다 더 딥해서 모든 내용이 이해된건 아니지만, 내용 자체도 깔끔하고 재밌었던 글
- 편리한 객체 간 매핑을 위한 MapStruct 적용기 (feat. SENS) (2022/12/15)
- 네이버클라우드플랫폼에서 SENS 서비스를 개발하며 마주한 “객체간의 매핑 문제”를 MapStruct 를 적용하며 해결한 과정을 공유한 글
- API 를 외부로 만들면서 거의 대부분의 시스템에는 이제 Entity 를 던지기보다 DTO 를 최대한 활용하고 있고(이게맞으니까), 나 또한 DTO 의 매핑문제를 가지고 이리저리 고민해봤었으나 명확한 답을 얻을 순 없고, 회사에선 MapStruct 같은 매퍼라이브러리를 사용하자니 팀에 러닝커브가 발생하니까.. 울며겨자먹기로 그냥 “깔끔하고 통일성있게만 작성하자” 라고 살던 중 더 구조화된 프로젝트 (그리고 SENS 에선 API endpoint 에서 넘어온 객체를 내부에서 다시 사용하기 위한 DTO 를 새로만들어서 사용하는거같은데.. 이런 내가 상상만 했던 코드를 ..) 에 적용되었을때를 간접체험해서 꽤 도움이 된 글
- also see: https://www.inflearn.com/questions/15292/dto-변환-시-우아한형제들은-어떻게-처리하시나요
기타 주제
- Text to Diagram
- terrastruct 이 Text to Diagram tool 인 d2lang을 공개하며 현재는 1버전도 나오지않았지만, 이전에 PlantUML 로 프로젝트 문서를 작성했던 기억이 있어서 나중에 사용하겠지 하고 저장해뒀다
- (이 정보 자체도 어디 뉴스에서 알게된건데 그 출처는 까먹었다..)