저번학기부터 우리 학교 학술동아리 BCSD
에 지원해서 6개월간의 비기너
과정을 거쳐 레귤러
로 전환에 성공했다.
하지만 이 실력으로 프로젝트에 바로 투입되기에는 부족한 점이 많았고 레귤러
전환에 성공한 인원들에게 초록 스터디
를 해볼 기회가 있어서 참여하게 되었다.
6개월 동안 진행한 비기너
교육에서 springboot
로 교육을 받고 회고 프로젝트
또한 springboot
로 진행해서 처음 써보는 것은 아니었다. 그래도 아직 모르는 것이 많아서 열심히 참여해보기로 했다.
그렇게 1주차가 시작되고 첫번째 미션을 받았다. 1주차 미션은 Spring MVC
에 관한 미션이었다.
위의 3개에 자료에는 길지 않은 설명들이 적혀있다. 설명들은 한 번 읽고 넘어가고 학습 테스트
를 진행했다.
보통 나는 공부를 할 때 막히거나 궁금한 점들이 있으면 구글에 검색을 해서 찾아본다.
이 때 다른 사람들이 써 놓은 블로그 글들을 보고 참고해서 코드를 짜곤 했다. 공식문서라는 선택지도 있지만, 내가 원하는 내용이 어디에 있는지 찾기가 쉽지 않았다.
하지만 초록 스터디
의 학습 테스트
를 보면 어떠한 문제를 주고 그 문제를 해결하기 위해 참고해야할 공식문서 페이지를 참고자료로 제공해준다.
어떤 문제를 맞닥뜨렸을 때 검색을 하는데에 시간을 많이 쓰는데 이렇게 관련 자료를 그것도 공식문서로 제공해주니까 좋았다. 물론 영어라 읽기가 어렵긴 하지만 그래도 공식문서에 익숙해져야해서 좋았다.
이런식으로 여러개의 학습 테스트
를 주고 그 테스트를 통과하는 방식으로 해당 키워드들에 익숙해지도록 한다.
나는 이번 학습 테스트
에서 Http Status Code
를 반환하는 방법을 알게 되었다.
@DeleteMapping("/members/{id}")
public ResponseEntity<Void> delete(@PathVariable("id") Long id) {
// TODO: url 상의 id 정보를 받아 member를 삭제한다.
Member member = members.stream()
.filter(it -> Objects.equals(it.getId(), id))
.findFirst()
.orElseThrow(RuntimeException::new);
members.remove(member);
return ResponseEntity.noContent().build();
}
이런식으로 ResponseEntity.noContent().build()
를 통해 상황에 맞는 Http Status Code
를 반환해서 전달할 수 있다는 것을 배웠다.
학습 테스트
를 진행하고 나면 주어지는 미션을 해결해야 한다.
이 미션들은 부담되지 않을 정도로 나뉘어져 있고, 앞서 학습한 내용을 바탕으로 해결할 수 있는 수준이다.
총 10단계로 이루어져 있는데 1주차는 1,2,3,4단계만 진행한다.
주어지는 테스트 코드를 통과하면 미션통과이다.
RestAssured
를 사용한 테스트 코드는 처음 봤다. RestAssured
는 Http
관련 테스트를 할 수 있도록 도와주는 테스트 라이브러리인데 나중에 써먹을 수 있을 것 같다.
그리고 thymeleaf
를 통해 직접 페이지를 찍어보면서 눈에 보이는 작업을 해보는 것도 좋았다.
기존에 동아리 회고 프로젝트를 진행할 때 데이터들만 보여서 아쉬웠던 기억이 있다. 하지만 이 스터디는 html 코드를 제공해줘서 내가 짜는 코드들이 어떤 방식으로 보일 지 알 수 있어서 좋았다.
이 과정에서 @Controller
와 RestController
의 차이도 공부했다.
이렇게 테스트를 통과하고 끝나는 것이 아니다. 페어
와 리뷰어
를 지정해줘서 소통할 기회를 만들어준다.
혼자 코드를 짜다보면 내가 짠 코드가 맞는지 생각이 들때가 많은데 이렇게 페어
와는 함께 코드를 짜보면서, 리뷰어
와는 코드에 대한 의견을 리뷰 형태로 주고 받으면서 다양한 의견을 들을 수 있어서 좋은 것 같다.
이제 1주차가 지났는데 앞으로 남은 주차들이 얼마나 나를 성장시킬지 기대된다!
열심히 해보자
화이팅~!