Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6d407d1
init: 초기 환경 세팅
letskuku Dec 11, 2023
3c793ad
feat: BaseEntity 구현
letskuku Dec 14, 2023
d517cd3
feat: Url 엔티티 및 커스텀 예외 구현
letskuku Dec 14, 2023
b814cf1
feat: EncodeType enum 및 커스텀 예외 구현
letskuku Dec 14, 2023
5210ee1
feat: ExceptionController 구현
letskuku Dec 14, 2023
6f18b92
feat: ShortUrlEncoder 인터페이스 생성 및 구현체 구현
letskuku Dec 14, 2023
5d60d96
feat: UrlRepository 생성
letskuku Dec 14, 2023
97730f4
feat: EncodeType에 해당하는 encoder 생성하는 ShortUrlEncoderMapper 구현
letskuku Dec 14, 2023
a5e45ba
feat: UrlService 구현
letskuku Dec 14, 2023
e0b4b3d
feat: 계층 간 데이터 이동 담당하는 dto 구현
letskuku Dec 14, 2023
c60993b
feat: UrlRestController 구현
letskuku Dec 14, 2023
5000fd3
feat: short url 인코딩 결과 형식 수정
letskuku Dec 17, 2023
9b2a411
feat: dto에 builder 추가
letskuku Dec 17, 2023
3747840
feat: thymeleaf로 프론트 구현 및 viewController 구현
letskuku Dec 17, 2023
a118f9e
chore: ExceptionHandler 어노테이션 추가
letskuku Dec 17, 2023
9805d36
refactor: TOKENS_SIZE 상수 초기화 방식 리팩토링
letskuku Dec 17, 2023
43ed06e
refactor: UrlNotFoundException 에러 메시지 수정
letskuku Dec 17, 2023
8719af4
feat: 동일한 original Url에 대한 short Url 인코딩 요청 처리 로직 추가
letskuku Dec 17, 2023
6bfab5f
feat: url 검증 로직 추가 및 커스텀 예외 구현
letskuku Dec 17, 2023
587c537
feat: 커스텀 예외 구현 방식 변경
letskuku Dec 17, 2023
cbc13d5
chore: 필요없는 파일 삭제
letskuku Dec 17, 2023
52234fe
test: EncodeType, Url 테스트 추가
letskuku Dec 17, 2023
802b322
chore: 필요없는 주석 삭제
letskuku Dec 17, 2023
49ca73a
test: UrlService 테스트 추가
letskuku Dec 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
36 changes: 36 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '17'
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
useJUnitPlatform()
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
249 changes: 249 additions & 0 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading