개발일기 - 2022-05-22

jude Kim·2022년 5월 22일
1

개발일기

목록 보기
19/28

몸상태 안 좋은지 13일째 - 정상은 아니다. 어지럼증도 (이건 잠을 못자서 인듯)

오전 ~ 오후

  • ObjectBuilder 개발

다시 책상에 앉았다.

PCRE 방식으로만 개발하다.. POSIX 방식으로 정규식 처리를 하려니 고구마 백만개 먹은 느낌이었다.

오늘의 이슈

  1. PostgreSQL 의 regexp_replace를 사용할 수 없게 되어서 코드로 변경하는 처리 -> 비교적 간단
  2. R2DBC에서 주기적으로 connection pool 이 부족하다는 메시지를 띄운다.
    Failed to obtain R2DBC Connection; nested exception is io.r2dbc.postgresql.ExceptionFactory$PostgresqlNonTransientResourceException: [53300] Sorry, too many clients already
  3. Reflection 을 사용중인데 Map to Object 의 범용적인 로직에서 Type별로 분기 처리가 필요하다. LocalDateTime일 경우 에러를 뱉는다.
  4. 1번 작업을 하면서 Json Data의 Diff 를 봐야하는데, Meld 란 프로그램이 정상적으로 동작하지 않는다. 단일라인으로 되어 있다보니 프로그램들이 WordWrap을 지원하지 않기도 하고(DiffMerge) 온라인으로 지원하는 툴들도 포지션을 제대로 짚어주지 못해서 제대로된 프로그램이 거의 없는듯 하다.

시작은 어제 마무리 못한 방식을 내가 컨트롤 할 수 있는 방식으로 변경하였다.
DB에서 replace 하는 것이 아닌 데이터를 가져와서 replace 처리하는 방식으로 변경.

잘 처리하고서 Builder 처리의 배치 로직을 수정했다.
복잡하긴해서 걱정이 좀 되는데, 최대한 쉬운 코드 스타일로 작성하려 노력했다.

그 이후엔 TimeRelationBuilder를 처리했다.
뱃지 서비스를 기반으로 Filtering 및 Decoration 처리를 진행한다.
다만, 명칭의 변경이 필요해보인다. 뱃지만을 처리하는것이 아니라 시간의 흐름에 따른 데이터 필터링 및 뱃지 데코레이션을 진행하기 때문에 BadgeService가 아니라 다른 서비스명칭으로 변경을 해야할 것 같다.

마지막으로 테스트 하려고 했더니 데이터 수정을 해야해서 날짜를 수정하는데.. 오류가 난다.
범용적으로 쓰려고, Map으로 받고 Object와 Merge 하고 그 변경사항을 체크하는 로직을 개발해서 적용했는데 LocalDateTime 에 대한 처리가 없었나보다.

String으로 비교하도록 처리를 해두긴했으나, TypeSafe하지 않아 수정이 불가피하다.

이 개발들을 진행하면서 Local PostgreSQL 서버가 이상한지 위의 too many clients already 를 내뿜는다.
Production 환경에선 발생하면 골치아픈 문제가 될듯하니 PGPool 등을 미리 설정해서 테스트를 해봐야겠다.

오늘 하루도 전쟁터 였다.

끝.

profile
씨봉봉이

0개의 댓글