레벨 2 - 장바구니 (웹) 회고

주노·2023년 6월 7일
0

우테코 5기 회고

목록 보기
7/12
post-thumbnail

서론

페어 레오와 함께 장바구니 미션을 진행했다.

🙆‍♂️ 소프트스킬

💡 소프트스킬?
소프트 스킬이란 다른 사람과 함께 일하고 다른 사람들과 교류하는지를 설명하는 대인관계 기술로 충돌 해결, 비판적 사고, 공감, 조직, 리더십, 팀워크, 시간관리 등을 포함한다.

🤷‍♂️ 왜?

지난 미션과 동일하게 페어가 해주는 이걸 왜 이렇게 사용해야해?라는 질문이 좋았다.

🔍 지식탐구

사소한 개념이라도 막힘이 있을 때 알고 넘어가려는 성향이 좋았다.

⏰ 휴식시간

페어프로그래밍을 진행하면서 휴식시간을 잘 책정하지 못하는 습관이 있었는데 페어가 이를 잘 경계해줘서 컨디션을 길게 잘 유지할 수 있었다.

🔨 하드스킬

💡 하드스킬?
특별하게 훈련할 수 있는 기술로 각 분야별로 해당하는 요소가 다르다.
엔지니어링의 경우 프로그래밍언어(Java, Python 등), 클라우드 컴퓨팅, 서버 유지보수 등을 포함한다.

MockMvc의 content

MockMvc를 이용할 때 content 부분에 json 형태의 String이 들어간다.

미리 생성해둔 Request 객체를 이용해서 요청을 만들어주고싶다면 ObjectMapper의 writeValueAsString() 메소드를 사용하는 방법이 있다.

...

ProductRequest request = new ProductRequest("img", "name", 1000);
String jsonRequest = objectMapper.writeValueAsString(request);

mockMvc.perform(put("/products/{id}", 1L)
                        .content(jsonRequest)
                        .contentType(MediaType.APPLICATION_JSON_VALUE))
                .andExpect(status().isOk());

...

테스트에 대한 고찰

왜 Controller에서 SpringBootTest를 하지 않았지?

주노 : 다양한 레이어를 거치는 테스트가 되면서 향후 기능 변경에 따라 해당 테스트의 유지보수가 어려워 질 것 같다.

레오 : 컨트롤러는 요청과 Service를 맵핑해주는 역할을 수행하기 때문에 Controller보다는 Service에서 통합테스트 수행이 설득력 있다.

Controller에서 통합 테스트를 수행한다면 뭐가 좋을까?

주노 : 사용자의 요청에 따른 실제 시나리오를 수행해볼 수 있어서 단위테스트로는 확인할 수 없는 요인을 발견할 수 있다. → 하지만 지금은 서비스 테스트로도 위 내용이 충분히 충당되는 시점인 것 같다.

레오 : 모든 계층을 검증할 수 있다.

Bean Validation의 @Size는 무엇을 검증할까?

@Max, @Min의 경우 숫자를 사용하는 필드를 검증하는데 사용된다.
String(숫자 표시), int, byte 등의 최대 길이를 제한하는 것이다.

@Size는 문자열, 배열 등의 크기를 검증하는데 사용된다.

profile
안녕하세요 😆

0개의 댓글