Skip to content

Conversation

@born-A
Copy link

@born-A born-A commented Oct 1, 2023

📌 과제 설명

  • BASE62 알고리즘을 사용한 단축 url 서비스
  • 다른 알고리즘이 추가될 경우를 고려하여 인터페이스, enum(알고리즘 유형) 클래스 도입
  • url view Controller : UrlController.class / url exception handller : GlobalExceptioinHandler.class 에서 처리
  • 발생하는 예외들을 하나의 최상위 BaseException에서 ErrorCode로 취급

👩‍💻 요구 사항과 구현 내용

  • URL 입력폼 제공 및 결과 출력
  • URL Shortening Key는 8 Character 이내로 생성
  • 단축된 URL 요청시 원래 URL로 리다이렉트
  • 단축된 URL에 대한 요청 수 정보저장 (optional)
  • Shortening Key를 생성하는 알고리즘 2개 이상 제공하며 애플리케이션 실행중 동적으로 변경 가능 (optional) -> BASE62 하나만 사용

💻 프로젝트 환경

  • java 16
  • SpringBoot 2.7.16
  • H2
  • Spring Data JPA
  • Gradle
  • junit5

✅ PR 포인트 & 궁금한 점

  • 이번 프로젝트는 view를 렌더링 하는 방식으로 컨트롤러를 구성해보았는데, 이럴경우 dto 검증은 어떤식으로 해야할지 궁금합니다.
    (이전까지는 restController를 사용해서, dto 검증시에 controller test에서 mock mvc perform 의 badRequest로 검증을 했었습니다 !)
  • 프로젝트 초기 구성 시점에 프로젝트 구조 패턴에 대해서 큰 고민을 하지 않는거 같습니다.
    다양한 서적을 접하면서 관련 패턴을 배우지만 실제 적용을 하기가 쉽지 않습니다.
    혹시 멘토님들께서는 프로젝트 처음 구성 당시에 프로젝트 패턴에 대해서 많이 고민해보시고 적용하시는 편이신지 궁금합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant