본문 바로가기

전체 글175

TypeScript와 TSOA 버전 종속성 내가 뭘 한거지?    새 버전의 개발을 위해 브랜치를 따고, 오랫만에 시동을 걸었다. 잘 돌아가는지 확인차 빌드를 해본 것이다. 그런데 이게 뭐람! 에러가 난다. 지난 버전 릴리즈까지 마친 코드인데, 빌드 에러가 난다고? 내가 뭘 한거지?생각해보자!    지난 번 릴리즈 이후에 리팩토링 한답시고 이것 저것 손을 댄 것도 있고, 또 ...... 아! 테스트, 단위테스트 적용한다고 설정파일도 바꾸고 새로운 패키지도 설치하고 테스트코드도 조금 작성했었지. 아니 그런데 이게 빌드 에러가 날 일인가? 도대체 뭐가 잘못된거지? 분명 단위 테스트 실행(npm run test)했을 땐 아무런 에러가 안 났는데... 하긴 당시에 빌드는 안해봤지.자자, 그러지말고 에러코드를 자세하게 읽어보도록 하자구    메시지는 "t.. 2024. 9. 26.
TypeScript, Unit Test를 위한 환경 만들기 이전 글, TypeScript, Unit Test를 위한 폴더 구조와 설정에서     타입스크립트를 위한 단위테스트 환경구성 중 겪었던 문제에 대해서 공유한 바 있는데, 이 글에선 실제 환경구성을 위한 간단한 튜토리얼을 기록하고자 한다. 전제타입스크립트를 위한 모듈은 이미 설치돼 있고, 환경설정도 정상 동작함프로젝트는 node 런타임에서 동작하는 백엔드로 프론트엔드 서비스와 연계할 것임프론트엔드에서 vite를 사용하고 있어 단위테스트용 프레임워크로 vitest를 사용할 것임  단위테스트를 위한 모듈 설치 npm install -D vitest 단위테스트 실행을 위한 패키지 스크립트 등록(package.json) "scripts": { "start": "node ./dist/app", "bui.. 2024. 9. 7.
TypeScript, Unit Test 중 코드 커버리지 실패 원인과 해결 지난 글에서    타입스크립트를 사용한 프로젝트에 단위테스트를 적용하면서 겪은 문제와 해결방법을 소개했다. 단위테스트를 위한 기본 구성을 마친 후 실제 테스트 코드를 작성, 기본적인 테스트를 실행해서 구성을 검증했다. 단위테스트의 정량적 결과, 코드 커버리지    테스트 코드를 작성한다는 것은 쌍을 이루는 원래의 코드가 의도한대로 - 정상적으로 - 동작하는지를 검증하기 위함이다. 테스트 프레임워크는 이렇게 작성한 테스트 코드가 원래의 코드를 얼마나 검증(커버)해줬는지를 정량적인 수치로 보고해준다. 참 편리한 도구지만 이 정량적 숫자를 끌어 올리는 것은 오롯이 개발자의 몫이다.    각설하고 단위테스트를 위한 기본 구성에 코드 커버리지를 위한 추가 구성을 마치고 잘 동작하는 것을 확인한 뒤에 이 구성을 기.. 2024. 9. 4.
TypeScript, Unit Test를 위한 폴더 구조와 설정 TypeScript, 오호라!     TypeScript를 프로젝트의 주 언어로 사용한지 일 년 쯤 되어 간다. 정확히 말하자면 Node.js를 기반으로 하는 JavaScript를 사용하다가 TypeScript로 전환했다는 것이 맞겠다. 프론트엔드와 백엔드를 하나의 언어로 개발할 수 있다는 점과, 배포를 위한 런타임 구성이 간단하거나 아에 필요가 없다는 점 말고도 이유가 많았지만, 찾아보면 다 나오는 말들이니 생략하겠다. 하지만 이 말은 꼭 해야겠다. 많은 이유들 중 가장 큰 것은 JavaScript의 수퍼셋인 TypeScript는 - 자바에서는 당연한 것이었지만 - JavaScript의 type에 대한 유연함(?)이 가져다 주는 잠재적인 문제들을 상당수 해결해 줬다는 점이다. 정적분석을 통해 버그를 미.. 2024. 8. 12.
Apache Phoenix Query Server를 활용한 프론트엔드 개발환경 꾸미기 0. 들어가며 - Query Server가 필요한 이유 HBase가 처음 소개된지도 꽤나 오래다. RDBMS를 오랫동안 사용해온 수 많은 개발자들에게 HBase의 출현은 충격 그 자체였다. "정규화를 하면 안 된다고? 게다가 색인을 만들수도 없다는 것이 말이 돼?" HBase는 복잡한 코드를 단순하게 만들어주는 마법과도 같았던 SQL 조차 쓸 수 없었으니 난감할 수 밖에. 그래서 등장한 것이 Phoenix 코프로세서다. HBase에 플러긴처럼 꽂아 쓸 수 있도록 고안된 이 코프로세서는 SQL을 지원할 뿐 아니라 색인도 지원한다. NoSQL의 대명사인 HBase가 어떤 의미에선 더 이상 NoSQL이 아닌 것이 돼 버렸다. 아니 NoSQL의 장점과 RDBMS의 장점을 두루 갖춘 강력한 DBMS가 됐다고 하는.. 2020. 8. 10.
증강분석(augmented analytics)과 워크스페이스(workspaces) 일상에 인공지능이 관여하기 시작한 지 얼마 되지 않았는데도 이젠 이전으로 돌아간다는 생각을 할 수 없을 만큼 깊숙이 자리 잡고 있다. 2019년 2월, 가트너는 앞으로 몇 년 간 주목받을 기술 키워드로 증강분석, 지속적이고 설명 가능한 인공지능 등을 소개했고 이듬해 2020년엔 DSML 플랫폼이라는 용어와 함께 매직 쿼드란트의 리더그룹에 SAS, MathWorks와 함께 Databricks를 올려놨다. DSML 플랫폼의 컨셉은 필자가 몇 년 전부터 구상해 온 빅데이터 분석 플랫폼과 맞아떨어진다. 다음 그림은 필자가 구상하고 그려 본 DSML 플랫폼 아키텍처다. 증강분석이라는 용어가 의미하는 것은 전문 분석가가 아니라도 현업에서 해당 데이터를 다루고 있는 실무자라면 자신의 업무를 수행하는 데 필요한 분석을.. 2020. 6. 25.