Skip to content
Ok JaeOok edited this page Jul 15, 2024 · 9 revisions

분리ㅅㄱ

분리배출 도우미 사전 4차

문서 PDF

기간

2024.03.15 ~ 2024.05.06

작업인원

1인 개발

주요 기능

  • 사전 조회
  • 게시판

What's new?

V1(2021)

  • Spring(maven) + JSP + Mybatis 동적 웹앱입니다.
  • 환경부로부터 가이드라인 문서를 받아 직접 데이터를 만들었습니다.

V2,V3(2022)

  • SpringBoot(gradle) + Thymeleaf(SSR) + JPA 으로 변경하였습니다.
  • 레이어드 아키텍처로 설계하였습니다.
  • 게시판 미디어 파일 업로드를 할 수 있습니다.
  • OAuth2 + Security 연계 및 Snyk 취약점 모니터링을 통해 보안을 강화했습니다.
  • mapstruct 모델 매핑으로 안티패턴을 줄였습니다.
  • 데이터를 유연하게 조회하기 위해 조인, 그룹, 프로젝션, 윈도우 함수까지 이용했습니다.
  • 홈 배경화면, 폐기물 인지도 정기 갱신을 위해 스케줄러를 이용했습니다.
  • 장기 운영 목적으로 Docker를 이용하여 PaaS플랫폼에 배포하였습니다.
  • 이전 데이터를 Flyway를 통해 마이그레이션하였습니다.
  • 프로젝트를 컨테이너로 관리합니다.
  • 이미지 압축 + 확장자를 변경했습니다(png -> webp)

V4(2024)

  • ERD를 재설계했습니다(보안 정책 변경).
  • 헥사고날 아키텍처를 참고하여 멀티모듈 프로젝트로 변경했습니다.
  • 인가기반(OAuth2)에서 인증기반(OIDC) 보안으로 변경했습니다.
  • CQS를 반영하여 side-effect를 몰아서 관리하도록 하였습니다.
  • Session, Cache를 Redis에 관리하여 내부 메모리 및 DB 부하를 줄이려 했습니다.
  • 게시판 파일 관리 정책을 설정했습니다(Cloudinary).
  • JPA 기술적 종속을 피하고자 연관관계를 끊고, 엔티티와 도메인을 분리했습니다.
  • 레이아웃에 fragment를 적용하여 htmx를 통해 레이아웃을 부분 렌더링 할 수 있게 바꾸었습니다.
  • 인프라 운영 환경을 개선했습니다(비용 절감 + 서비스 모니터링).
  • 공격에 대응할 수 있도록 설정했습니다(Cloudflare).
  • 게시판 이미지 렌더링 전략을 변경했습니다(standard -> progressive).
  • 테스트 코드를 작성했습니다.
Clone this wiki locally