2023. 12. 22. 21:08ㆍTIL
오늘 오후5시 부로 CourseRegistration 앱 따라만들기를 끝냈고,
이를 바탕으로 Todo 앱을 구상도 마무리했다.
일단 목표는 스텝2까지 이고 먼저 DTO 부터 제작했다.
UseCaseDiagram이 구상의 첫단추라면
DTO는 앱만들기의 첫단추같다.
DTO제작을 위해 패키지를 세분화하고
1. 원래는 User 패키지를 만들까 했지만 철회하고 마스터패스워드를 만들기로 했다.
2. TodoCard 안에 TodoList를 넣어버릴까도 생각했지만, 그냥 따로 패키지를 분리해놓고,
Response 파일안에 TodoListResponse를 불러오는 형식으로 만들기로 했다.
TodoCardResponse
data class TodoCardResponse(
val id: Long,
val user: String,
val todoList: TodoListResponse,
val date: String,
)
CreateTodoCardRequest
data class CreateTodoCardRequest(
val user: String,
val password: Long,
)
id는 사용자가 적는것이 아닌 자동으로 생성해주고, 날짜도 사용자가 적는것이 아닌 현재날짜를 받아오는것으로 결정!
UpdateTodoCardRequest
data class UpdateTodoCardRequest(
val user: String,
)
TodoList는 따로 패키지를 분리해놨기에 여기선 사용자이름만 변경가능
TodoListResponse
data class TodoListResponse(
val id: Long,
val todoTitle: String,
val todoDescription: String,
val status: String,
)
이곳에 status를 넣고 할일 마다 완료했나 안했나를 표시하려고 클래스를 분리했다.
AddTodoListRequest
data class AddTodoListRequest(
val todoTitle: String,
val todoDescription: String,
)
UpdateTodoListRequest
data class UpdateTodoListRequest(
val todoTitle: String,
val todoDescription: String,
)
UpdateTodoListStatusRequest
data class UpdateTodoListStatusRequest(
val status: String,
)
이 파일과 위에파일을 같이 합쳐서 그냥 UpdateTodoListRequest로 해둘까 고민중이다.
CommentResponse
data class CommentResponse(
val id: Long,
val user: String,
val text: String,
)
AddCommentRequest
data class AddCommentRequest(
val user: String,
val text: String,
val password: Long,
)
생성시에 비밀번호를 받는다.
UpdateCommentRequest
data class UpdateCommentRequest(
val user: String,
val text: String,
val password: Long,
)
수정 시에 생성시 비밀번호와 다르면 false를 반환할 예정
하지만 예외로 마스터비밀번호를 설정 해둘 것이다.
일단 DTO는 이정도인것 같다.
이어서 TodoCardController도 대략 만들어봤다.
package com.example.mytodoapp.domain.todocard.controller
import com.example.mytodoapp.domain.todocard.dto.CreateTodoCardRequest
import com.example.mytodoapp.domain.todocard.dto.TodoCardResponse
import com.example.mytodoapp.domain.todocard.dto.UpdateTodoCardRequest
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
@RequestMapping("/todoCards")
@RestController
class TodoCardController {
@PostMapping
fun createTodoCard(@RequestBody createTodoCardRequest: CreateTodoCardRequest)
: ResponseEntity<TodoCardResponse>{
TODO()
}
@GetMapping
fun getTodoCardList(): ResponseEntity<List<TodoCardResponse>>{
TODO()
}
@GetMapping("/{todoCardId}")
fun getTodoCard(@PathVariable todoCardId: Long): ResponseEntity<TodoCardResponse> {
TODO()
}
@PutMapping("/{todoCardId}")
fun updateTodoCard(
@PathVariable todoCardId: Long,
@RequestBody updateTodoCardRequest: UpdateTodoCardRequest
): ResponseEntity<TodoCardResponse> {
TODO()
}
@DeleteMapping("/{todoCardId}")
fun deleteTodoCard(@PathVariable todoCardId: Long): ResponseEntity<TodoCardResponse>{
TODO()
}
}
swagger가 제대로 적용됐는지도 확인겸 실행해봤는데 별다른 이상은 없는듯 하다.
오늘의 한마디 : 이 DTO를 어떻게 만들어 놓느냐에따라 앞으로 코딩진행방향이 달라질 것 같아서 조금 시간을 들여서라도 코딩해야겠다.
'TIL' 카테고리의 다른 글
20231227 (수) TodoApp 막바지 (2) | 2023.12.27 |
---|---|
20231226 (화) TodoApp 제작기 (0) | 2023.12.26 |
20231221 (목) CourseRegistration 만들기 (1) | 2023.12.21 |
20231220 (수) 스프링 TIL (2) | 2023.12.20 |
20231219 (화) 피드백 반영 코딩 (3) | 2023.12.19 |