728x90
반응형
source-code
- 소프트웨어 장인 정신 이야기 (2) 2024.05.07 - [source-code/software] - 소프트웨어 장인 정신 이야기 (1)3장. 고급 테스트 주도 개발단계마다 테스트는 더욱더 제한적이고 구체적으로 바뀌는 반면, 제품 코드는 점점 더 일반화된다. 이 과정은 제품 코드가 너무 일반적이어서 실패하는 테스트를 더 이상 생각해 낼 수 없을 때까지 계속된다. 그러면 문제가 모두 풀린 것이다. 복잡한 문제일 수록, 단순한 공리(실패하는 테스트 코드)에서 출발해야 한다.한 번에 한 단계씩, 제품 코드를 구현하고, 리팩터링 하고, 다음 테스트 케이스를 작성해야 한다. 하지만... 모든 경우에 이러한 주기를 적용하는 게 어렵지 않을까?가장 대표적인 예시가 → 요구사항이 너무 복잡해서, 한 번에 모든 구현을 작성하지 않으면 테스트 케이스가 통.. 2024.05.09
- 소프트웨어 장인 정신 이야기 (1) 1장. 장인 정신...이 연대표를 항공학 연대표와 비교해 보자. 비슷한 점을 찾을 수 있는가? 이론의 단계적인 발전, 마니아들이 성급한 도전과 실패, 역량의 단계적인 발전이 보이는가? 우리가 무엇을 하는지도 몰랐던 수십 년의 기간이 보이는가?...오늘날의 항공기 조종사들만큼이나 자기 기술을 깊이 이해하는 프로그래머를 양성해 왔는가? 분명히 장인이 필요한데 우리에게는 장인이 있는가? 항공학 역사를 소개하며, 장인 정신의 필요성을 강조한 구문이 굉장히 인상 깊었다. 프로그래밍 역시 (항공학과 유사하게) 인류의 삶에 밀접하게 연관되어 있으며빠른 속도로 발전했고명확한 장인 정신이 구축되지 않은 상태로 사용되었으며이로 인해 불필요한 시행착오들이 반복되고 있다 는 것!즉... 오늘날의 항공학이 '안전하게 비행기를 .. 2024.05.07
- [Github Actions] release assets에 build 결과물 zip 업로드하기 Background현재 chrome extension 서비스는 아래와 같은 과정을 거쳐 스토어 업데이트를 진행하고 있습니다.production branch 병합개발자 local 환경 build생성된 build 결과 파일 스토어 업데이트그런데 이 중 3) 개발자 local 환경 build 로 인해원격 source code와 관계없이, 당시 개발자의 local 환경에 따라 build 결과물이 달라진단 문제가 발생했습니다. 실제로 담당 인원의 실수로, 스토어에 staging 환경에 코드가 업로드 되어스토어 재심사가 완료될 때까지 서비스를 이용할 수 없었던 적도 있었기 때문에... 해당 과정의 자동화가 반드시 이뤄져야 한다고 생각했습니다. Solutions담당 개발자 local 환경이 아닌, 원격 환경에서 번들.. 2024.05.05
- [jest] jest dom을 통한 DOM 객체 동작 테스트 하기 Backgrounds 현재 개발 중인 서비스에서는 사용자가 생성한 데이터를 통해 웹 페이지에서 특정 요소(HTMLElement)를 조회하는 기능을 제공하고 있습니다. 이때 해당 요소를 찾는 알고리즘이 제법 복잡하고 예외 케이스가 많이 발생해, 코드를 수정할 때마다 고객사 페이지에 직접 접속해 정상 동작 여부를 확인하는 불편함이 존재했습니다. 그리고 이로 인해 1) 개발 소요 시간 증대 2) 적극적인 리팩토링 어려움 (수정이 발생하면, 기존 잘 되던 케이스가 안될 것이라는 두려움) 과 같은 문제들이 발생했습니다. Solutions 최선의 방안은 모든 고객사 페이지를 자동으로 크롤링하면서, 로직이 정상 동작하는지 확인하는 것이겠으나... 하루아침에 이 정도의 자동화 테스트를 도입하기엔 현실적인 무리가 있었습.. 2024.04.10
lean
- 24.05.06~24.05.12 업무DB 구조 재설계B사와의 POC를 진행하면서, 기존 데이터 구조로는 구현이 어렵거나, 불가능한 기능들이 발생했다.POC 당시에는 DB 구조를 다시 설계할만한 시간적 여유가 없었기 때문에기능 구현만을 위한 별도 column을 추가하거나, 기능 자체를 축소하는 식으로 해결했다. 지난주를 기점으로 POC가 1차적으로 마무리되었고B사에서 원했던 기능들을 구현하기 위해, DB 구조를 새롭게 설계하는 작업을 진행했다. 유비쿼터스 언어POC를 진행하며 직군 별로, 상황 별로 사용하는 언어가 제각각인 문제가 발생했다. 동일한 개념을 각기 다른 단어로 얘기한다던가,같은 단어를 각기 다른 개념으로 이해하는 경우가 종종 발생했고이로 인해 상대방이 사용한 단어가 정확히 어떤 의미인지 번역해야 하는 불필요한 과정이 계속해서..
- 24.04.29~24.05.05 업무외부 가이드 개선O팀에게 제공하는 외부 가이드에 대한 개선 및 버그 픽스를 진행했다. 요소 조회 알고리즘 내 find option 구현현재 온보딩 실행 시, 각 step에 대한 target 요소를 조회하는 알고리즘이 동작한다. 해당 알고리즘의 핵심은, 사용자가 지정한 target 값을 정확히 찾아가는 것이며이때 '정확히 찾는다'는 1) 똑같은 요소가 있다면, 조회2) 비슷한 요소가 있다면, 조회3) 모든 요소들이 같지도, 비슷하지도 않다면 조회하지 않음 을 의미한다. 여기서 문제는 2)와 3), 즉 비슷한 요소와 아예 다른 요소를 어떻게 구분하는가인데...(POC를 진행하며 가장 골치 아팠던 부분도 바로 여기였다) 몇 주간 알고리즘을 개선하고 보강했지만특정 사이트나 사용 사례 별로 논리 자체가 상충되..
- 24.04.21~24.04.28 업무Publish 방법 변경 및 기능 개발 및 배포지난주부터 개발했던 O팀의 요구 사항을 위한 기능!기존 publish 기능의 구조를 변경, 각 실행 조건별 배포가 이뤄질 수 있도록 수정했다. 기존 publish 및 링크 공유 기능을 수정했고,이에 따라 API, script, extension, admin web에 변경사항을 반영했다.→ QA 및 production에 반영한 뒤 O팀의 피드백까지 완료! O팀 QA 사항 반영가장 긴장했던 업무!O팀 내부 QA에서 나온 버그 및 수정 사항들을 반영했다. 외부 가이드 도중 페이지 이동 정책 변경,AWS 외부 가이드 관련 버그 수정,진행 중 Step 관련 정책 변경,target element 조회 불가 관련 버그 수정 등의 작업을 진행했다. 목요일 오후, 최종 ..
728x90
반응형