SaaS 기반 협업툴 관리자 모듈 개발
1. 관리자 모듈 레거시 제거, 리팩토링
- 절차지향 기반 레거시 코드의 MVC 패턴화를 통한 리팩토링으로 코드 가독성 및 효율 증대
- 서비스 기획에 불필요한 코드 제거 및 수정을 통한 기획/코드 일원화
2. 관리자 모듈 성능 최적화
- tree 구조 형태의 조직도 복잡도 개선 : O(M^N) --> O(N)
- DB I/O 최소화 : O(N) --> O(1) 로, 다수의 서비스에서 for loop 내에서 DB I/O 하던 부분을 한번에 처리하게 수정
- 서비스 콜 최소화 및 단건 레코드 처리 방식 로직을 다량 레코드 처리 방식으로 수정 : 30%의 처리시간 감소
3. 트러블 슈팅
- 기존 로직 중, 요청이 무시되는 경우가 간헐적으로 발생했는데, 자사 프레임워크 특성 상, 트랜잭션을 동기 콜하면서 내부적으로 async call 을 했을 때 thread 가 모두 사용중이라 timeout 에 의해 요청이 무시되는 것을 파악하고 이를 수정
- 프론트엔드 버그로 인해 동시에 여러 번 서비스가 호출이 되며 동시성 문제가 발생해, ConcurrentHashMap 을 Singleton 패턴을 사용해 key, value 형태로 추가하고자 하는 데이터를 저장하고, 추가 되면 삭제하는 방식을 사용해 해결
4. 사용한 기술 스택
- ProObject (자사 프레임워크), Mybatis, Tibero, Spring Boot, JPA
협업툴 WAPL 아키텍처 재설계
현재 서비스 중인 협업툴 WAPL의 프레임워크를 변경하면서, 기존 아키텍처를 신규 아키텍처로 수정
더보기