url-shortener 입력받은 string 을 shorten string 으로 변환해주는 api 를 제공 합니다. 직관적인 예시를 위해 url 을 대상으로 합니다. 실무와 유사하도록 업무, 기능 요건 변경을 phase 로 표현 했습니다. hexagonal architecture 를 기반 합니다. local, test profile 에 대해 testcontainers 를 적용 했습니다. local mysql port: 23306, redis port: 26379 test mysql port: random, redis port: random test 코드 실행시 application test: testcontainers 가 실행 됩니다. domain test: stub 으로 대체되어 비즈니스 로직만을 검증 합니다. environment spring boot, kotlin mysql, redis testcontainers, datafaker testcode - phase 4 feature ✅ phase1 mysql 세팅 - docker multi-module 구성 api 구현 POST /shorten-url GET /shorten-url/{urlkey} 기능 구현 url 을 urlkey (shorten-url) 로 변환 생성된 urlkey 은 24 시간 동안 유효 ✅ phase2 유효기간 세분화 free: 1 day, basic: 31 day, premium: unlimited testcontainers 적용 local, test 표준 예외 처리 ✅ phase3 redis 적용 - @RedisHash 활용, ttl 24 hour ✅ phase4 redis 개선 - @Cacheable 적용 evict 테스트 api 구현