아침에 API 명세서 관련 글을 슬랙(Slack) 잡담방에 올린 다음, 무언가가 막힐 때마다 튜터님을 찾아가고 하루 종일 과제를 붙잡았더니 금세 밤이 되었다. 오늘 베이식(Basic) 반에서 진행된 보충 특강 청강까지 합치면 여섯 분께 찾아갔다. 개인 프로젝트라고는 하지만, 코드를 어떻게 짤지 구상할 때면 진짜 제품 출시를 준비하는 1인 사업가가 되곤 한다.
package com.spring.weekthree.entity;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
public class Plan {
// [1] 속성
@Setter
private Long id;
private String name;
private String password;
private String plannedDate;
private String title;
private String task;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
// [2] 생성자
public Plan(
String name,
String password,
String plannedDate,
String title,
String task
) {
this.name = name;
this.password = password;
this.plannedDate = plannedDate;
this.title = title;
this.task = task;
this.createdDate = LocalDateTime.now();
this.updatedDate = LocalDateTime.now();
}
// [3] 기능
}
예를 들어 깃 커밋 메시지(Git commit message)에도 쓰였다시피 처음에는 변수나 클래스(class)를 명명할 때 'schedule'을 썼으나 'plan'으로 바꾸었다. 'ScheduleResponseDto'라고 길이가 확 늘어나서 도저히 안 되겠다 싶었다. 여기에 한 술 더 떠서, 일정 관리 앱을 떠올렸을 때 '계획한 날짜'와 '일정을 짧게 요약한 제목' 부분이 있어야 한다고 판단했다. 이땐 몰랐지, 저 부분을 지겹도록 계속 입력해야 한다는 사실을!
package com.spring.weekthree.dto;
import com.spring.weekthree.entity.Plan;
import lombok.Getter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Getter
public class PlanResponseDto {
// [1] 속성
private long id;
private String name;
private String password;
private String plannedDate;
private String title;
private String task;
private String createdDate;
private LocalDateTime createdDateTwo;
// [2] 생성자
public PlanResponseDto(Plan plan) {
this.id = plan.getId();
this.name = plan.getName();
this.password = plan.getPassword();
this.plannedDate = plan.getPlannedDate();
this.title = plan.getTitle();
this.task = plan.getTask();
this.createdDate = plan.getCreatedDate().format(DateTimeFormatter.ofPattern("yyyy--MM--dd--HH--mm--ss--SS"));
this.createdDateTwo = plan.getCreatedDate();
}
// [3] 기능
}
연습용으로 썼기 때문에 코드가 깔끔하진 않지만, 아무튼 이제 와서 돌이킬 수도 없고 그냥 쭉 밀고 가기로 했다. 괜히 잘못 건드렸다가 빨간 줄 가득한 결과물을 보고 싶진 않아서. 이 와중에 바로 내일 숙련 Spring 강의가 나와서 이번 주 내내 달려야 한다!
'이래서 부트캠프(bootcamp)라고 하는구나!'
어제 새벽까지 팀원들과 못다 한 수다를 나눈 여파로 오늘은 하마터면 지각할 뻔했다. 운동은커녕 거북목 스트레칭조차 못했다. 이러다가 손목까지 비명 지를까 좀 겁난다. 내일은 어떻게든 이 바쁜 나날 속에서도 건강을 챙겨보련다. 과제 속의 과제를 준 튜터님께서 오늘 또 과제를 주셨다.
'VO(Value Object)와 DTO(Data Transfer Object)의 각 특징과 사용하는 이유 알아 오기'
아무래도 너무 내가 해탈한 표정이었나보다. 튜터님이 웃으시면서 몇 마디 덧붙이셨다.
"아니, 어디까지 해올 수 있나 궁금해서 자꾸 과제를 주고 싶네. 만약 못하면 안 줄 텐데 다 해 오니까. 잘하니까. 만약 받기 싫으면 못 하면 돼요."
이 얘기를 들었는데 오기가 안 생기면 그게 더 이상하지 않을까?
어제 코딩은 정말 글쓰기와 닮았다며 왜 그렇게 느꼈는지 어제 TIL에 쭉 적었으니 오늘 TIL은 이쯤 마무리하고 과제 하러 가야겠다.
'이렇게 하는 게 맞나?' 또는 '이렇게 해서 정말 개발자가 될 수 있나?' 고민할 시간에 코드를 한 번 더 생각하자.
체력도 꼭 비축하면서 좀 더 힘내보자! 아자아자!
'끝을 보는 용기' 카테고리의 다른 글
Spring 본캠프 Day 062 - 1단계 및 2단계 일정 관리 앱 만들기 중, toLocalDateTime(), toLocalDate(), getTimestamp() (0) | 2024.12.07 |
---|---|
Spring 본캠프 Day 061 - 1단계 및 2단계 일정 관리 앱 만들기 중, DTO와 VO 알아 오기 과제 통과! (0) | 2024.12.06 |
Spring 본캠프 Day 059 - '일정 관리 앱 만들기' API 명세서 작성 중, 추가 과제를 받았다! (0) | 2024.12.04 |
Spring 본캠프 Day 058 - 기초 Spring 6주차 완강, API 명세서 작성 시작 (0) | 2024.12.03 |
Spring 본캠프 Day 057 - 기초 Spring 4주차 및 5주차 완강 (0) | 2024.12.02 |