Post

오픈 소스 Tolgee 분석기_1

오픈 소스 Tolgee 분석기_1

오픈 소스 Tolgee 분석기 1 일차

오픈 소스 분석을 하게 된 이유?

프로젝트를 진행하면서, 직접 코딩을 하고 이를 AI에게 리뷰 받는 방식에서 얘가 제대로 리뷰를 해주고 있나? 라는 생각이 들기 시작했다.

하지만, 내 기본기는 생각보다 좋지 못했고 코드 리뷰를 멘토님에게 매일 부탁드릴 수 없는 상황에서 그러면 잘 짜여진 best practice를 공부해볼까?라는 생각에서 오픈 소스 분석기(해체기)를 시작하게 됐다.

처음 프로젝트를 봤을 때, 너무 큰 프로젝트 볼륨에 어떻게 시작할지 막막했지만 API 요청 하나를 기준으로 수직적으로 공부해보는 방식으로 해체해야 겠다고 생각했다.

글 작성 기준은 API 하나 수직 해체가 끝날 때마다 작성할 예정이며, 주당 2회 작성을 목표로 할 예정이다.

왜 Tolgee를 선택하게 되었는가?

Tolgee는 프로젝트에서 사용자에게 보여줄 메시지(문자열)를 코드에서 분리해 중앙에서 관리하고, 여러 언어로 번역,검수,배포까지 한 곳에서 처리하게 해주는 오픈소스 번역 관리 서비스이다.

Tolgee 오픈 소스를 고른 가장 큰 이유는 현재 진행중인 프로젝트와 기술 스택이 가장 비슷하다는 점이다.

사용중인 기술 스택

  • 언어, 프레임워크: Kotlin + SpringBoot
  • ORM: JPA (Hibernate)
  • 인증, 인가: JWT
  • 배치 작업: Spring Batch
  • 실시간 작업: Web Socket(STOMP)

서버 / 웹 띄우기

서버 실행

./gradlew server-app:bootRun

내가 실행한 방법 : ./gradlew server-app:bootRun --args='--spring.profiles.active=dev'

  • 기본 application.yaml에는 tolgee.authentication.enabled: false로 되어 있어서, 프로필 없이 띄우면 로그인 없이 누구나 관리자가 되는 모드로 뜬다.
  • 로그인/권한 같은 실제 서비스 동작을 보려면 인증을 켠 설정이 필요했고 --spring.profiles.active=dev를 주면 Spring이 application.yaml을 먼저 읽고, 그 위에 application-dev.yaml을 덮어씌운다.
  • Spring Boot에서 자주 사용하는 외부화 설정 패턴을 알 수 있었다.
    • 우리 프로젝트는 현재 application.yaml으로 프로젝트를 공통 설정하게 되는데, 위와 같이 각자 설정을 따로 추가 할 수 있는 방법을 도입해봐도 좋을 것 같다고 생각했다.
      • SQL 로그 보기, logging.level을 개인화 하기? 등, 여러 정보를 개인화 할 수 있을 것 같다고 생각했다.

웹 실행

cd webapp && npm ci && npm run start

실행 화면

사용자 중심 기능

  1. 로그인 로그인 화면
  2. 프로젝트 생성 프로젝트 생성 화면
  3. 변역 (키-값) 키 추가 키 추가 화면
  4. 변역할 언어 목록 목록 화면
  5. 변역 추가 번역 화면
  6. 변역 상태 변경 변역 상태 변경
  7. 대시 보드 대시 보드 화면

최종 목표

Tolgee 에는 추가적인 기능이 더 있다.

  • Import, Export / 멤버 / 할 일 관리 / 자동 번역 등등

1차는 위의 기능들을 수직적으로 분석 하는 것이고, 이 후에 비슷한 기능이 프로젝트에 적용된다면, 추가로 해체해 볼 것이다.

최종 목표는 오픈 소스의 Contributor가 되는 것이다.

This post is licensed under CC BY 4.0 by the author.