Optional과 메서드 네이밍 find vs get
우테코 레벨1 웹체스 미션에서 일급 컬렉션에서 특정 요소를 로 꺼내는 메서드를 작성했다. 그런데 해당 요소를 그냥 꺼내는 메서드가 따로 있었고, 이름이 겹치고 싶지 않아 생각하다 를 붙였다. 레벨2에서 DB를 본격적으로 사용하며 객체에서 데이터 조회를 할 때, 와 중 무엇을 쓸지 고민했다. 은 처럼 느껴져서 를 사용했는데, 의 패턴을 보니 을 쓰는 경우가 많았다. 그래서 둘의 차이를 찾아봤다. find vs get 스프링 Data의 인터페이스는 를 반환한다. 반면 같은 스프링 Data의 JPA repository에서는 T를 반환한다. 는 찾는 값이 없을 경우 을, 는 찾는 값이 없을 경우 한다는 차이가 있다. 여기서 볼 수 있듯이 일반적으로 반환 값이 없을 수 있는 경우 을, 항상 있어야 하는 경우 을 붙인다. 를 쓰면 api 사용자에게 이름을 통해 반환값이 없을 수 있음을 알려 줄 수 있는 것이다. 반면, 반환형이 같은 컬렉션이라면 값이 없어도 이 아닌 을 반환하면 된다. …