본문 바로가기

☕Java103

스프링 프로젝트에서 service 인터페이스나 serviceImpl 클래스를 사용하는 이유와 사용해야 하는지 여부 Do I need an interface with Spring boot? In this blog post, we discover whether we have to use an interface when writing services with Spring boot. dimitri.codes 항상 서비스 인터페이스와 구체 클래스를 만들어 다른 클래스에 주입해야 한다고 묻는다면, 답은 X이다. 서비스 클래스를 교체해야 하는 경우가 아니라면 굳이 서비스 인터페이스를 만들어서 사용할 필요가 없다. 과거에는 스프링이 JDK Dynamic proxy를 사용해서 프록시를 생성하려면 인터페이스가 필요했지만 최근 버전의 스프링 프레임워크들은 CGLIB 프록시를 지원하고 권장하기 때문에 인터페이스가 필요하지 않다. 이런 이.. 2022. 11. 26.
자바 컬렉션 간 변환(Array, List, Map, Set) 정리 배열, Collection 객체 간에 변환이 필요한 경우 사용할 수 있는 방법을 정리해보았다. 변환을 할 때 배열과 배열이 아닌 객체 간을 나눠서 볼 수 있다. 배열이 아닌 List, Map, Set으로 변환하는 경우에는 원래 객체를 파라미터로 받아 List, Map, Set 객체를 생성하는 방식으로 변환한다. 다만, 배열의 경우에는 List로 변환하여 넣어 주면 된다. List, Map, Set 객체를 배열로 바꾸려고 할 때는 List, Map, Set 객체가 기본적으로 가진 toArray() 메서드를 이용하면 쉽게 배열로 바꿀 수 있다. Array -> List 1. Arrays.asList(array) * 원래 배열의 list 형태만 보여줌. 따라서 리스트 추가하는 것이 불가하고(추가 시 Unsup.. 2022. 10. 1.
API Docs 읽기 - 자바 String String은 상수임. 기본적으로 String 생성자나 메서드에 null 인자를 넣으면 NullPointerException을 발생시킨다.(예외 있음. valueOf()의 경우 null이 들어가면 "null" 반환.) String은 UTF-16 포맷 문자열을 표현한다. 2022. 9. 17.
java.util.Date, java.util.Calendar 클래스를 사용하면 안 되는 이유 java.util.Date, java.util.Calendar 클래스는 자바에서 날짜, 시간 관련 작업이나 연산을 수행하기 위한 클래스이다. 자바가 발전해감에 따라 두 클래스의 문제점이 드러나기 시작했고 JDK 1.8에서 두 클래스를 대체할 java.time 라이브러리가 등장하였다. Date, Calendar 클래스를 사용하지 말아야 하는 이유를 나열하면 다음과 같다. 두 클래스 mutable 하기 때문에 객체의 메서드나 변수를 수정할 경우 참조하는 객체들의 값들이 변경된다. calendar의 상수를 남용할 가능성이 있다. 월 값이 0부터 시작하여 직관적이지 않다. timezone이 없다. 새로운 JDK가 계속 출시되면서 대부분의 메서드는 deprecated되었다. 이름은 date인데 실제로는 date와.. 2022. 8. 1.
728x90