GitHub

https://github.com/Choidongjun0830

우테코

우테코에서의 2주차 WIL

gogi masidda 2025. 2. 23. 23:25

[Facts]
1. 테스트 - AssertJ와 Junit, TDD
2. Stream, Lambda
3. MVC패턴은 관심사의 분리..
4. 유연함의 힘

[Feelings+Finding]
1. 테스트
프리코스나 최종 코테에서 이미 작성되어 있는 테스트 코드를 살짝씩 바꾸어주는 정도로만 테스트를 작성했는데, 아예 아무런 기반이 없는 상태에서 필요한 테스트를 작성해보며 정확히 알게되었다고는 못하겠지만, 감은 잡을 수 있었습니다.
2. Stream, Lambda
공부할 생각은 안하고, for문이나 if문이 있고, depth가 깊으면 alt+enter를 입력해서 자동으로 변환시키기만 했던 나를 반성했습니다. 반성하며 실습해보고 아주 야무진 방식이라는 것을 알게되었습니다. for문과 if문을 동일한 기능을 하도록 직접 바꾸는게 재밌습니다,,
추가로 공부한 것인데, Arrays.stream()과 미리 List를 정의하고 .stream()을 사용하는 방식과 Stream.of()가 있는데, 이게 생긴 것만 다른지 성능 차이가 있는지 궁금해서 찾아봤습니다.
요약하면 Arrays.stream()은 Primitive와 Object에서 모두 동작 가능하고, IntStream, LongStream을 제공하기 때문에 Primitive 타입을 사용할 때 효율적입니다. 
List 미리 정의 후에 .stream() 방식은 컬렉션에서 .stream()을 호출하는 방식이라 List,Set 등에 적합합니다. 그리고, String[]과 같은 배열과 함께 직접 사용 불가능합니다. 
Stream.of()는 개별 요소나 배열에서 Stream을 만드는데 사용하고, Primitive 타입 배열과 함께 쓰면 Primitive 타입 배열을 요소의 타입으로 취급해버려 Arrays.stream()을 사용해야 합니다.

3. MVC패턴을 지키려고 패키지를 어떻게 분리하고, 어떻게 패키지를 위치시켜야 하는지를 많이 고민했었는데, 리뷰어분이 계층을 빼놓고 패키지를 생각하라고 하셨습니다. 왜 MVC가 등장했는지부터 알아보니, 관심사 분리가 중요한 점인 것을 알게되었습니다.
https://velog.io/@eddy_song/mvc#%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5--gui-mvc%EC%9D%98-%EB%93%B1%EC%9E%A5-%EB%B0%B0%EA%B2%BD

4. SS 숙제인 유연함의 힘을 4장까지 다 읽었습니다. 힘든 일을 학습의 기회로 여기는 학습 마인드셋을 갖춰야한다는 것을 배웠습니다


페어프로그래밍을 하면서 많은 주장을 하게 되는데, 근거를 뒷받침할 제 지식이 부족하다는 것을 깨달았습니다. 책을 읽어야겠습니다. 

728x90