전체 글
-
[string] longest palindromic substringAlgorithm/LeetCode 2025. 1. 19. 13:26
✅ Problemhttps://leetcode.com/problems/longest-palindromic-substring/description/ ✅ Approach & Solution방식)더보기투 포인터 방식을 사용한다.offset, limit 사용 (아래 코드에서 left가 offset, maxLen이 limit이 됨)팰린드롬이 될 수 있는 최소 길이(1 초과)의 값을 기준으로 양 옆으로 확장해나간다.최소 길이 : 2 or 3ex) aa, abaclass Solution { int left, maxLen; public String longestPalindrome(String s) { // 문자 길이 저장 int len = s.length(); /..
-
[string] group anagramsAlgorithm/LeetCode 2025. 1. 18. 14:36
✅ Problemhttps://leetcode.com/problems/group-anagrams/description/ ✅ Approach & Solution방식1)더보기주어진 문자열 하나씩 비교한다.이중 for문 형태이미 그룹에 포함된 문자열은 이후 비교할 때 제외한다.두 문자열이 애너그램인지 어떻게 확인할까?문자열의 길이가 다른 경우 애너그램이 아니다.문자열의 길이가 같은 경우철자가 동일한지 확인한다.방안1) 알파벳 등장 횟수 비교 : Map 사용방안2) 문자열 사전식 정렬 후 두 문자열이 동일한지 확인class Solution { public List> groupAnagrams(String[] strs) { List> result = new ArrayList(); in..
-
[번역 서비스] 개선 - 번역 실패 모니터링 및 재처리Work 2025. 1. 9. 10:06
문제점 정의번역 로직 플로우는 아래와 같다. 현재 구조는 아래 3가지 문제점을 가지고 있다.모든 번역 실패 케이스에 대한 수동 재처리 필요일시적인 네트워크 에러 등 일정시간 이후 복구가 가능한 경우 자동 재처리 적용 가능함번역 요청 유실 가능성처리 중 서버가 다운되었을 때 에러 로깅조차 남길 수 없음번역 미완료 건을 확인하는 로직이 없어 서버 재시작 이후에도 번역을 다시 수행할 수 없음번역 결과 콜백 미수신 모니터링 불가능번역 콜백 미수신 확인 로직이 없어 모니터링 불가능함 개선 방향성번역 자동 재처리를 통해 수동 조치의 비효율성을 개선한다.정해진 재처리 횟수를 초과한 경우 원인을 파악하고 번역을 수동으로 생성한다.유실되는 번역 요청이 없도록 한다.번역 결과 콜백 미수신 모니터링이 가능하도록 한다. 작업..
-
[번역 서비스] 개선 - 번역 실패 모니터링 아키텍처Work 2025. 1. 8. 23:48
개요번역 실패 모니터링을 위한 아키텍처를 설계한 과정에 대한 문서이다. 구성 방안1) 번역 실패 모니터링 스케줄러1대의 스케줄러가 게시글을 조회하고 번역 재처리를 수행하는 구조 문제점번역 실패 게시글이 많아질 경우 번역 처리 서버에 부담을 줄 수 있음 (다음 스케줄링 시간 전까지 작업이 완료되지 않을 수 있음)번역 재시도 횟수 기준 번역 재처리를 위한 추가 구조가 필요함 2) 여러 대의 스케줄러 기반 아키텍처여러 대의 스케줄러를 두어 번역 실패 재처리를 나눠서 수행하는 구조 문제점여러 대의 스케줄러가 동일한 DB를 조회하므로 중복 조회하지 않도록 조회 분기 처리가 필수적임여러 대의 스케줄러가 동시에 번역 요청을 하게 되면 번역 서비스에 부담을 줄 수 있음번역 재시도 횟수 기준 번역 재처리를 위한 추가 구..