설계 :
[ Naver API ] ← request [ Spring Boot App ] ← CRUD → [ DB ]
(단축 URL) response →
response ↓ ↑ request
[ User ]
[ ShortUrlController ]-----[ ShortUrlService ]-----[ ShortUrlDAO ]-----[ ShortUrlRepository ]
| |
[ ShortUrlServiceImpl ] [ ShortUrlDAOImpl ]
Controller 설계 (ShortUrlController) :
Field NaverClientID => property
Field NaverClientSecret => property
@Autowired ShortUrlService
Method : generateShortUrl(String url)
Method : getShortUrl(String url)
Method : updateShortUrl(String url)
Method : deleteShortUrl(String url)
Service 설계 (ShortUrlService) :
@Autowired ShortUrlDAO
Method : generateShortUrl(String NaverClientID, String NaverClientSecret, String url)
- naver api로 shorturl 요청하여 값 받음
Method : getShortUrl(String NaverClientID, String NaverClientSecret, String url)
- DB 조회 후 shorturl 리턴, DB에 값이 없다면 generateShortUrl 호출하여 값을 리턴
Method : updateShortUrl(String NaverClientID, String NaverClientSecret, String url)
Method : deleteShortUrl(String NaverClientID, String NaverClientSecret, String url)
@Autowired ShortUrlRepository
Method : saveShortUrl(ShortURLEntity shortUrlEntity)
- repository로 entity 객체를 넘겨 DB에 저장
Method : getShortUrl(String originalUrl)
- DB 조회 후 shorturl 리턴
Method : getOriginalUrl(String shortUrl)
- DB 조회 후 originalUrl 리턴
Method : updateShortUrl(String NaverClientID, String NaverClientSecret, String url)
Method : deleteShortUrl(String NaverClientID, String NaverClientSecret, String url)
Entity 설계
(ShortUrlEntity ---extends → BaseEntity) :
@Id
@GeneratedValue createdAt (생성 일시)
Field id createdBy (생성 주체)
+
@Column updatedAt (업데이트(갱신) 일시)
Field orgUrl updatedBy (업데이트(갱신) 주체)
@Column
Field shortUrl
'Spring' 카테고리의 다른 글
Servlet 프로그래밍 (동적 웹 회원가입 폼 만들기) (0) | 2023.07.01 |
---|---|
Servlet, WAS에 대한 정리 (동적 웹 프로그래밍) (0) | 2023.06.30 |
Test Coverage 노트 (0) | 2022.11.08 |
RestTemplate, TDD 노트 (0) | 2022.11.07 |
Spring Boot Exception Handling 노트 (0) | 2022.11.06 |
댓글