오픈 소스 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
사용자 중심 기능
최종 목표
Tolgee 에는 추가적인 기능이 더 있다.
- Import, Export / 멤버 / 할 일 관리 / 자동 번역 등등
1차는 위의 기능들을 수직적으로 분석 하는 것이고, 이 후에 비슷한 기능이 프로젝트에 적용된다면, 추가로 해체해 볼 것이다.
최종 목표는 오픈 소스의Contributor가 되는 것이다.






