🫡 구현 시 집중한 부분1. 함수형 프로그래밍함수형 프로그래밍이란, 작업을 어떻게 수행할 것인지(즉 로직에 집중하는 것이) 아니라 무엇을 할 것인지에 집중하는 방법구체적인 작업 방식은 라이브러리가 알아서 처리하고, 사용자는 라이브러리가 제공하는 인터페이스를 구현하는 것만으로도 원하는 작업을 수행할 수 있다. 자바에서는 익명 클래스, 함수형 인터페이스, 람다, 스트림API 등의 문법을 사용할 수 있다. 선언형 프로그래밍과 명령어 프로그래밍의 차이점을 이론으로만 들었을 때는 잘 와닺지 않았었는데,For문을 사용하여 명령형으로 사용한 코드와 Stream을 사용하여 선언형으로 작성한 코드를 비교해보니 차이점을 확 느낄 수 있었다. 함수형 인터페이스와 스트림 API를 최대한 활용하고자 하였다.👍 이번 미션에..
사다리 타기 미션 🫡 구현 시 집중한 부분 1. TDD 테스트를 먼저 작성하고 기능 구현 후 리팩토링하는 과정 TDD는 사이클을 반복하여 구현하는 것을 말한다. [개인적으로 느낀 장점] 그동안 나는 설계 단계에서 도출한 객체와 구조를 최대한 바꾸지 않도록 하려고 고민했었지만 스스로 스킬이 부족하다는 생각에 빠져있었는데, TDD는 초기 설계에 집착할 필요가 없어 심리적으로 편했던 것 같다. 정말 요구사항에만 있는 행위들만 테스트하고, 구현하기 때문에 불필요한 행위들이 추가적으로 구현되지 않았다. 2. 제어할 수 없는 부분 테스트 |-----|-----|-----| 처음 사다리를 구현할 때, 하나의 세로 줄을 Line이라는 객체를 통해 구현하고 객체 안에서 경로가 있는지 없는지를 나타내는 List를 Rand..
블랙잭 미션을 하다가 List.copyof()를 사용했었는데, List.of()와의 차이점이 무엇인지에 대해 알고자 작성하게 되었다. copyOf() Returns an unmodifiable List containing the elements of the given Collection, in its iteration order. The given Collection must not be null, and it must not contain any null elements. If the given Collection is subsequently modified, the returned List will not reflect such modifications. 인자로 주어진 컬렉션의 요소를 순서대로 포함하..
발단 시작은 바로 페드로가 보낸 슬랙의 메시지였다... 상수화된 인스턴스를 선언할 때 uppercase로 작성하는 것이 맞는 것인가?에 대한 문제였는데, 그동안 나도 인스턴스에 대해서는 uppercase로 적을 생각을 못해봤었는데 생각해보니, 인스턴스라도 상수라면 uppercase가 맞네? 라는 생각이 들었다. 추가로 하나의 질문을 더 던져주었는데, static final 변수는 항상 상수일까?에 대한 문제였다. 그렇다! 사실 내가 생각하기에 처음 문제는, 상수화된 인스턴스를 선언할 때 uppercase로 작성하는 것이 맞는 것인가가 아닌, 상수화된 인스턴스가 정말 상수로 볼 수 있는 것인가의 관점으로 봐야한다. 자 여기서 한번 생각해보자. 우리가 생각해볼 수 있는 것은 2가지이다. static fina..