끝을 보는 용기

Spring 본캠프 Day 067 - 숙련 Spring 3주차 완강, "오류의 가호가 있기를!"

writingforever162 2024. 12. 12. 23:52
package com.example.board.repository;

import com.example.board.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

// repository layer의 인터페이스(interface)
public interface MemberRepository extends JpaRepository<Member, Long> {
    Optional<Member> findById(Long id);
    /*
    [수정 전] findByIdInRepository(Long id)
    [수정 후] findById(Long id)
     */
}

어제 본 Error creating bean with name 오류는 메서드(method) 이름을 잘못 지은 데에 있었다. Spring Data JPA를 사용하는 만큼, JPA 쿼리 메서드(query method) 중에서 하나를 골라서 써야 했는데 마음대로 이름을 지어서 오류가 발생했다. 어떤 메서드가 있는지는 공식 문서에서 확인할 수 있다.

처음 스프링(Spring)을 배우고 과제를 하는 동안, 계산기와 키오스크를 만들 때보다 훨씬 더 많은 트러블슈팅(troubleshooting)을 작성했다. 도전 단계를 딱 하나 도전했을 뿐인데, 정리한 트러블슈팅이 열 편이 넘는다니까 다들 놀랐다. 특히 한 팀원은 난생처음 듣는 응원의 말을 해주었다. 

 

"오류의 가호가 있기를! 트러블슈팅의 가호가 있기를!"

 

다른 팀원은 너무 힘들면 안 되니까 딱 20개만 내기를 바란다고 얘기해주었는데, 20 나누기 8 하면 2.5개니까 사실 그렇게 큰 숫자도 아니었다. 30개만 넘지 않으면 다행이지 않을까 싶다.

 

"선배, 저 선배 마음 알 거 같아요."

 

"무슨 마음?"

 

"마지막 답사 때, 조금이라도 눈에 담으려고 한숨도 못 잤단 말."

 

이유는 모르나 문득 본캠프가 막 열렸을 때 후배와 나눈 대화가 생각났다. 몇 년 전에 함께 답사를 간 적이 있었는데, 이동 시간이 아주 길었다. 버스를 타고 이동하는 내내 대부분 잠을 잤는데, 나는 그러지 못했다. 다른 사람들과 마찬가지로 피곤했으나 잠을 청할 수 없었다. 언제 다시 올지 알 수 없었기 때문에, 계속 바깥 풍경을 눈과 핸드폰에 담았다. 후배는 그때 내가 한 말이 이번에 자신이 선배로서 후배들을 피드백해 주면서 머릿속에 맴돌았단다. TIL을 쓰는 지금은 이런 대화도 나누었다.

 

"그, 요즘 저도 학년이 학년이니까 피드백 많이 할 거잖아요."

 

"그렇지."

 

"제가 말하는 거 보는데 진짜 선배들 영향 많이 받은 느낌인데요?"

 

"그럼, 영향 많이 받았겠지."

 

"그냥 피드백하는 방식이 다 선배들 방식이야. '일단 처음에, 그래서 저 사람이 무슨 말을 듣고 싶어 할 거 같아?' 이거부터 시작하는 걸 보고서, 정말……."

 

"세상에."

 

"너무 선배 아니에요?"

 

"난 결백해."

 

대화 내용 옮겨 쓴다는 점은 후배한테 전부 허락받았다. 나의 한마디 한마디가 한 사람에게 이렇게 큰 영향을 줄 수 있다는 점에 정말 매우 놀랐다. 놀람과 동시에 스스로 의문을 던졌다. 

 

'지금의 나는 피곤하단 핑계로 무언가를 게을리하거나 소홀히 하지 않았는가?'

 

예를 들어 마음에 안 드는 변수 이름이나 다듬을 부분이 뚜렷한 리드미(README)를 못 본 체한다든지.

 

내일부터 과제를 할 때는 리드미 작성을 병행할 계획이다. 그렇게 하면 어느 방향이 시간과 체력을 관리하는 데 더 나은지 알 수 있지 않을까 싶다. 무작정 달리기보다는 꾸준히 발걸음을 내딛어야겠다.