Skip to content

Conversation

@kcw2205
Copy link

@kcw2205 kcw2205 commented Jan 15, 2026

작업 사항

  • 비즈니스 로직 코드에 맞게 서비스 로직 변경
  • 새롭게 개선한 페이지 렌더링 구조에 맞게 뷰 핸들링 로직 마저 추가
  • 유저 업데이트 기능 구현 시 생기는 세션 불일치 문제 수정
  • 게시글 페이지 조회시 생기는 병목현상 개선

아직 해결 못한 과제

  • 인덱스 페이지 조회시 생기는 추가적 병목 해결 (String <-> byte[] 변환시 생기는 블로킹 개선 필요)
  • 아직 찾지 못한 버그 수정
  • JSON 형태로 파싱할 수 있는 로직 필요 -> 고차적인 데이터를 아직 받을 수 없음.
  • 테스트코드 작성

오늘 깨달아가는 내용

생각했던 것보다 DB 비용이 더 더 큼

  • 커넥션 여는 것 / 쿼리를 날리는 것 이 복잡한 컴포넌트 렌더링 하는 것보다 월등히 많은 블로킹과 비용을 불러일으키는 것 같다.
  • 단순히 컴포넌트 렌더링이 재귀호출이 많았어서 속도가 느린줄 알았는데 아니여서 많이 놀랐음.
    • 재귀호출을 4 뎁스까지 깊어지고 String 을 모두 Renderable 상속받은 객체로 래핑을 막하는데 불구하고 2ms 밖에 안걸림
    • 쿼리는 잘못해서 여러번 찌를 경우 로컬인데도 불구하고 최소 200ms 까지 걸림
  • 이걸해결하기 위해 DAO 단에서 직접 최적화된 쿼리를 짜도록 만들었음. 소위 말해 “한방쿼리” 인데, 커넥션 풀이 없는 지금 상태에서 최적의 기법이라고 판단했음.
    • 최소 200ms 대에서 머물던 서비스 로직 시간이 평균 100ms 로 줄여서 개선함.
    • 체감 상으로는 아직 느리진 않은데 레코드를 더 넣어보고 테스트 해봐야할 듯 하다.

- 게시글이 빈 경우의 화면도 구현
- `HtmlComponent` 에 ``setField` 를 추가하여 별도 컴포넌트 클래스는 구현하지 않는 방식으로 간소화

- 뷰 핸들러에서 뷰 관련 로직을 구현하여 렌더링할 수 있도록 데이터처리를 하도록 구성
- Auto Increment와 같은 Key 값을 모르는 상황을 위해 엔티티를 바로 저장할 수 있도록 명세 개선
- 이미지가 찌그러지는 현상 개선
- 이전글 / 다음글 비활성화 효과 표시
- 좋아요 SVG에 마우스를 올리면 클릭할 수 있도록 유도
- NOT_EXISTS 로 설정하여 중지되어도 파일로 데이베이스 레코드 보존
- ArticleDAO, ArticleDAOH2 -> 성능 개선을 위한 특수 쿼리 추가로 인한 명세 변경
- ArticleService 한번에 받아오도록 수정
@kcw2205 kcw2205 self-assigned this Jan 15, 2026
@kcw2205 kcw2205 added the 3-2 label Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant