항해플러스 백엔드 5기/WIL | Weekly I Learned

[항해플러스][WIL] Week 1. 한 주 만에 잃어버린 초심

binaryJournalist 2024. 6. 22. 15:41
반응형

WIl | Weekly I Learned

"한 번의 실수는 배움이, 두 번의 실수는 실력이 된다."
   개선 사항 추적과 리마인드를 통해 동일한 문제나 같은 실수를 반복하는 결과를 만들지 않습니다.

"경험이 없다면 창조도 없다."
    경험한 것을 기록해두면 더 잘 활용하기 위한 방법으로 연결시킬 수 있습니다.

"I may be wrong."
    끊임없는 회고를 통해 자기객관화를 달성하고, 자신의 실수와 잘못을 인정할 줄 아는 용기 있는 사람이 됩니다.

 

 

1. 문제

(* 과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)

 

Spring 을 활용하는 방법을 몰라서 Test 시 의존성을 어떻게 주입해야 하는지부터 헤맸다. Mock 사용이 미숙한 것도 문제였다.

동시성 구현을 하는데 Lock에 대한 개념을 처음 알았는데 ReentrantLock, CompleteFuture 등 처음 들어본 요소들이 많았다. 잘 모르는 기술들인데 막연히 과제 제출을 위해 막 사용해도 되는지 고민이 많았다.

요구사항 정의 및 설계에 시간을 덜 들이고 테스트 코드 및 로직부터 작성하여 나중에 잘못된 부분 + 모르는 개념 등의 혼합된 문제를 맞닥뜨려 힘들었다.

 

2. 문제해결을 위한 시도

Spring 단위 테스트 및 동시성 테스트와 관련된 키워드로 구글링을 한참했던 것 같다. 과제 제출일이 가까워졌을 땐 다른 분들의 소스도 참고하고 제출 전 코드를 리뷰하면서 문제점을 파악했다. 

 

3. 해결

Spring 의존성 문제의 경우 SpringBootTest 와 관련된 의존성 문제 및 일부 테스트 코드에서 Mock 객체 구현이 빠졌다는 것을 알아 의존성 관련 어노테이션을 변경하였고 Mock 구현 부분도 추가해주었다.

동시성테스트의 경우 단위테스트가 아니라 사실상 통합테스트 범주에 들어간다는 것을 알게 되어서 단위테스트에서 격리하여 별도의 테스트 클래스에서 작성하였다.

 

4. 알게된 것

@Mock 어노테이션은 mock으로 만든 가상 객체여서 그 안의 메소드를 호출해서 사용하려면 반드시 Stubbing 해야 한다.

Stubbing을 하지 않을 시 기본값인 null, 0 등을 반환한다.

 


Keep

(* 현재 만족하고 계속 유지할 부분 )

스스로에 대해서 만족하는 점은 아직 없는데 팀원들과 소통할 수 있어 다행이었다. 다음주차에서도 팀원들이랑 다른 분들과도 계속 소통할 수 있는 시간이 많았으면 좋겠다. 그만큼 나도 출석 시간을 늘려야 하겠지만..!

 

Problem

사실상 항해플러스를 지원하게 된 점이 내 위치가 어느 정도인지 어디가 부족한지를 알고 그 부분을 메꾸는 게 목적인데 과제 제출과 주객전도되어 과제 수행도 자습 시간도 충분히 확보하지 못 했다.

그리고 요구사항 분석 및 설계 기간도 너무 짧게 갖고 바로 코드를 작성한 점도 문제였다.

 

Try

2주차 때는 Todo-list 구체적으로 만들고 수행 전에 관련 지식을 조금이라도 알고 진행해야 할 것 같다.

그리고 혼자 끙끙 거리지말고 어렵거나 힘든 부분은 다른 사람에게 조언이나 도움을 꼭 구할 것

반응형