Tech Insight/소프트웨어 엔지니어링 SE (7) 리스트형 Copilot을 쓰는 120만명 개발자가 놓치고 있는 것 사람들이 코드 생성에만 너무 집중한 나머지 LLM이 코드 분석에 유용하다는 사실을 까맣게 잊고 있다. - 자나 도간 (Github 소프트웨어 엔지니어) ITWorld 칼럼 'Copilot을 쓰는 120만 명 개발자가 놓치고 있는 것'에서는 최근 화두가 되고 있는 AI 기반 소프트웨어 개발 도구들을 '코드 작성'의 관점 보다 '코드 검토' 관점에서 더 많이 활용해야 한다는 시사점을 남기고 있습니다. 💭 소프트웨어 테스트에 대한 오해 개발자는 코드를 효과적으로 테스트할 수 있는 객관성 또는 전문성이 부족하거나 테스트가 너무 번거롭다고 생각함 단위 테스트부터 통합 테스트, 회기 테스트 등 테스트의 방법은 다양하나 많은 비용이 발생함 테스트를 함으로써 개발 속도가 느려지는 것처럼 보임 이는 단기적 관점에서 개발.. 클린 코드를 실천하는 함수 정리 방법 카카오vx 개발자 김민식님의 함수를 정리하고 클린 코드를 실천하는 방법에 대한 글입니다. 커리어리에 짧게 정리된 이 글에서는 명확한 함수 네이밍에 대한 중요성과 길어진 함수를 정리해나가는 방법에 대해 설명하고 있습니다. 그리 길지 않은 내용임에도 중요한 포인트들을 잘 설명해주어 함수 작성법에 꼭 필요한 인사이트라는 생각이 들었어요. 🫧함수 정리를 위한 중요 포인트 이 글을 한마디로 요약을 하자면, 함수 네이밍과 표현 식의 명확한 의도를 생각하고, 이를 바탕으로 정리를 해나가자는 것입니다. 먼저 함수 내 명확한 표현식을 쓰는 방법은 다음과 같습니다. ✨ 함수 내 명확한 표현식을 쓰는 법 함수 네이밍이 명확해야 표현식이 명확해짐 함수가 길어지면 표현식도 역할에 맞게 분리할 것 이 때 명확한 네이밍과 의도를 .. 코드의 재사용성에 대한 고찰 흔히 코드의 재사용성은 중복 코드를 줄이고, 유지보수 관점에서 여러 이점을 주는 것처럼 여겨집니다. 하지만 코드를 재사용하기 전, 여러 영향도를 충분히 검토하지 않는다면 오히려 설계 오버헤드와 복잡도가 증가하게 되는데요. 위시켓 아티클 '코드 재사용상을 결정하기 전 고려해야 하는 것들'이라는 글에는 바로 이런 점을 강조하면서 코드의 재사용을 많은 고민 끝에 좀 더 신중하게 결정해야 한다는 점을 이야기합니다. "... 이처럼 재사용이 간단한 개념으로 보일 수도 있지만 재사용성을 재사용으로 전환하는데 필요한 정책이나 기준이 없어, 섣불리 재사용을 시도했다가 실패할 가능성이 높다. 재사용에 실패하면 기존에 재사용성을 높여 개발한 부분이 매몰 비용으로 전환된다." (본문 중) 🌟 코드 재사용성에 대한 인사이트 .. 개발 생산성을 높이는 원자적 커밋 (Atomic Commit) 개발자로서 일하는 방식 그리고 생산성을 높일 수 있는 개발 방법론과 관련해 해외 아티클 'How atomic Git commits dramatically increased my productivity - and will increase yours too'을 소개하고자 합니다. 본문은 원자적 커밋(Atomic commit)이 무엇인지, 원자적 커밋을 작성해야 하는 이유에 대해 설명합니다. 영문으로 되어 있는 글이라 중요한 부분들을 위주로 번역하여 정리해 보았습니다. ⚛️ 원자적 커밋이란? 원자적 커밋(또는 Atomic git commit)은 커밋의 크기가 가능한 한 작다는 것을 의미합니다. 각 커밋은 간단한 문장으로 요약할 수 있는 단 하나의 간단한 작업을 수행합니다. 이때, 변경된 코드의 양은 중요하지 .. 코딩 외 개발자에게 절대적으로 필요한 스킬 5가지 개발자 소프트 스킬에 대한 킴코더 님의 글입니다. 실제로 코딩만큼이나 개발자의 소프트 스킬도 중요하다는 점에 정말 공감하는 부분인데요. 이 커리어리 글에서는 코딩만큼 중요함에도 많은 개발자가 갖추지 못한 스킬 5가지에 대해 정리되어 있습니다. (해외 아티클을 번역하신 것 같네요) 🚀개발자가 갖춰야하는 스킬 5가지 1. 학습 능력 방대한 양의 지식 습득은 필수 세상의 끊임없는 기술 변화에 대처하기 위해 소프트웨어 엔지니어는 평생 학습에 전념해야하고, 이를 위한 학습 전략을 개발해야 한다. 2. 문서화 능력 좋은 문서는 코드(또는 시스템) 기능, 사용 방법을 정확하게 설명한다. 소프트웨어 엔지니어는 현재 자신이 아닌 미래의 팀원을 위해 작성하는 것처럼 문서를 만들 것. 3. 데브옵스 DevOps 에 숙련된 .. 엔지니어링 팀을 위한 지속적 회귀 테스트 오픈소스 'Touca' 새로 알게 된 오픈소스 테스팅 도구 'Touca'을 소개합니다. Touca는 신뢰할 수 있는 버전과 변경된 소프트웨어의 동작 및 성능을 원격으로 비교하고, 그 차이를 실시간으로 시각화해주는 테스팅 자동화 도구인데요. 🪄 Touca의 특징과 차별점 특징적으로, 다양한 입력을 처리해야 되거나 예상 동작을 하드 코딩 하기 어려운 소프트웨어의 workflow를 테스트하는 데 효과적이라고 합니다. 사용 예시는 가이드 문서에서 소개되고 있으니 참고해 보시길 바랍니다. 그 밖에도, Touca에서는 다음과 같이 다른 회귀 테스트 도구와 차별화 된 점들이 있다는데요. 머신 러닝 알고리즘, 컴퓨터 비전 시스템, Back-End REST API, 명령줄 도구에 이르기까지 웹 인터페이스 없이 소프트웨어 Workflow를 효과.. 섣부르지 않은 소프트웨어 최적화 기법 컴퓨터공학 관점에서 소프트웨어의 최적화는 필수이면서도, 그것이 잘 되지 않으면 마치 문제 있는 소프트웨어처럼 여겨지는 경우가 있습니다. 하지만 섣부른 최적화는 오히려 안 하는 것만 못한 일이 될 수도 있는데요. 그렇다면 최적화를 어떻게 해야하는 것이 올바를지 좋은 사례가 있어서 정리했습니다. 바로 최적화를 위한 5가지 기법인데요, 자세한 코드 예시들이 있으니 본문을 꼼꼼히 살펴서 공부해 보시면 좋을 것 같습니다. 📌 최적화를 위한 5가지 기법 1. 동적 배열의 용량(capacity)은 미리 선언한다. 동적 배열의 용량을 늘리는 연산에는 많은 비용이 들어간다. 동적 배열 선언 시, 미리 용량을 선언하는 것만으로 4배 이상의 성능 개선 효과를 얻을 수 있다. 2. 반복문 안에서 파일 출력은 최대한 피한다. .. 이전 1 다음