23-01-30
안녕하세요. JetBrains 한국 총판 단군소프트입니다. 오늘의 소식, Qodana와 IntelliJ IDEA: 코드 품질 플랫폼으로 IDE 현지화 작업 간소화입니다. 사소한 일에 연연하기보다 더 건강한 삶을 추구하고 더 스마트하게 일해야겠다는 다짐이 작심삼일로 끝나지 않게 만들 방법을 고민해 본 적이 있으신가요? 심리학자들은 새해 다짐을 계속 지키는 가장 좋은 방법은 큰 목표를 작은 단계로 나누는 것이라 말합니다.
다음은 IntelliJ팀이 작업을 수행한 방식입니다.
UI를 3개 언어로 현지화하는 과정을 효율적으로 운영하기 위해 IntelliJ 팀은 현지화 가능한 모든 항목을 소스 코드에서 분리하여 별도의 프로퍼티 파일에 저장하고 이를 번역하도록 넘겼습니다.
2. 담당 개발자에게 이슈를 수정하도록 할당. 3. 현지화가 가능한 문자열의 추출 과정을 감독.
로컬라이제이션 프로젝트의 리더는 코드 검사 과정을 간소화하기 위해 Qodana를 선택하였고 프로젝트를 다음의 과정으로 나누었습니다.
IntelliJ 팀은 Qodana를 TeamCity 파이프라인하고 필요에 따라 국제화 코드 검사를 활성화하여 프로퍼티 파일로 추출되지 않은 하드 코딩된 문자열 리터럴을 강조 표시하였습니다. #2. 검사 프로파일 구성 검사 프로파일에서 팀은 검사 범위를 구성하여 플랫폼이 기존 코드, 알파벳 문자가 없는 리터럴, 공백으로만 구성된 문자열 등은 건너뛰도록 했습니다. 또한 TeamCity에서 Qodana가 검사한 모든 코드에 대해 테스트 보고서를 작성하도록 하고 문자열이 추출되지 않은 경우 테스트가 실패하도록 했습니다.
구성을 마친 후에는 Qodana가 코드를 4시간마다 검사하도록 설정했습니다. 특히 중요하게는, 검사가 누군가의 로컬 컴퓨터가 아니라 서버상에서 독립적으로 실행되도록 했습니다. 이러한 조치 덕분에 팀의 소중한 시간을 아낄 수 있었습니다.
실패한 테스트의 개요. ![]() #4. 작업 할당 테스트가 실패할 때마다 프로젝트 리더는 이를 개발자에게 할당하여 하드 코딩된 문자열을 프로퍼티 파일로 추출하게 했습니다 할당된 테스트가 TeamCity에 표시되는 방식. #5. 결과 모니터링 Qodana 검사가 완료될 때마다 TeamCity는 이전 결과를 현재 보고서와 비교했습니다. 이슈 담당 개발자가 문자열을 추출한 경우 TeamCity는 해당 테스트를 수정된 것으로 표시했습니다. 덕분에 프로젝트 리더는 테스트를 수작업으로 수정된 것으로 표시하지 않고도 진행 상황을 모니터링할 수 있었습니다. 또한 Qodana Cloud 대시보드에도 잔존하는 코드 이슈 정보가 실시간으로 업데이트되고 Qodana가 실행될 때마다 결과가 비교되어 여기에서도 진행 상황을 모니터링할 수 있었습니다. Qodana Cloud 대시보드 예시. Qodana에서는 기술 부채 섹션이라고도 하는 베이스라인에 선택된 이슈를 추가할 수도 있습니다. 이런 방식을 통해 전체 팀이 같은 이슈 목록을 보고 플랫폼에서 바로 진행 상황을 모니터링할 수 있었습니다. 아래는 작동 방식을 보여주는 예시입니다. ![]() Qodana 베이스라인 기능. 주요 결과 몇 개월 만에 실패한 테스트 수가 10,000개에서 0개로 떨어졌으며, 평균적으로 대략 175개의 테스트가 매일 수정되었습니다. 소스 코드에서 하드 코딩된 문자열 리터럴이 성공적으로 제거되어, 전체 UI가 예기치 않은 영문 요소를 포함하는 일 없이 원활하게 현지화되었습니다. IntelliJ 팀은 Qodana를 활용하여 현지화 프로세스에서 수작업을 줄일 수 있었고, 사람의 실수를 줄이면서 현지화된 빌드의 신뢰도를 높였습니다. 추가적으로 4시간마다 검사가 실행되므로 더 빠르게 이슈를 탐지할 수 있었고 작은 문제가 추후에 큰 문제로 번지는 것도 막을 수 있습니다.
|