728x90

전체 글 347

이펙티브 자바 읽고 정리해보기 6.

아이템 6 : 불필요한 객체 생성을 피하라같은 기능의 객체를 매번 생성하는 것보다 만들어진 하나의 객체를 재사용하는 것이 더 효율적인 경우가 많다. 특히 불변 객체(아이템 17)는 언제던지 재사용이 가능하다String s = new String("bikini");이 코드를 통해 매 번 쓰이지 않는 String 인스턴스가 (극단적으로) 수백만 개 만들어질 수 있다. "bikini" 자체가 만드려는 객체와 기능이 완전히 똑같아 객체를 생성할 필요가 없지만, 생성자로 객체를 생성하게 되면 호출 시마다 새로운 객체가 만들어지는 것이다String s = "bikini";이 방식을 사용하면 String s에 새로운 String을 생성하는 것이 아니라 기존 객체를 계속 할당하므로, 같은 가상머신 안에서 똑같은 문자열..

08. 20 TIL : @Controller vs @RestController

해당 컨트롤러들의 역할에 대해 본격적으로 고민해본 적은 처음이다. Controller에 대해 전통적으로 Spring에서는 view 단을 관리하는 역할을 부여해왔고, 또한 json, xml 등을 반환하는 것이 아닌 경우에도 사용이 가능하다 restController는 응답에 대해 restful하게 반환하기 위해 보다 특별하게 만들어진 어노테이션으로, 오늘날 같이 프론트/백엔드로 구분된 어플리케이션 개발 환경에서는 서버에서 view를 따로 반환할 필요가 없으므로 주로 restController를 사용하게 된다.

TIL, WIL/TIL📘 2024.08.20

이펙티브 자바 읽고 정리해보기 4 & 5.

아이템 4 : 인스턴스화를 막기 위해 private 생성자 활용하라java.lang.Math 클래스나 java.util.Arrays는 기본 타입 값이나 배열 관련 메서드를 모아둔 클래스로, 실무에서 이와 같이 정적 메서드와 정적 필드만 있는 클래스를 구현할 수도 있다. 또한 java.util.Collections처럼 특정 인터페이스 구현체를 생성하는 정적 메서드(팩터리)를 모아놓을 수 있다(java 8부터는 해당 메서드를 인터페이스에 넣을 수 있다). final 클래스 관련 메서드를 모아놓을 때에도 사용할 수 있다. final 클래스를 상속한 하위클래스에 메서드를 넣을 수 없다정적 멤버만 있는 유틸리티 클래스는 인스턴스로 사용하기 위한 목적이 아니지만, 생성자를 명시하지 않으면 컴파일러가 public 생..

08. 14 TIL : mySQL ~ ORDER BY NULL

ORDER BY NULL은 MySQL에서 사용되는 특수한 구문으로,결과 집합의 정렬을 무효화하거나 비활성화하는 데 사용됩니다. 즉, 정렬을 하지 않겠다는 의미입니다 보통 MySQL 쿼리에서 ORDER BY 절을 사용하면 결과가 특정 열을 기준으로 정렬됩니다. 그러나 때로는 정렬을 원하지 않거나 정렬이 불필요할 수 있습니다. 이때 ORDER BY NULL을 사용하면 쿼리가 정렬 없이 수행됩니다.이 구문은 주로 다음과 같은 상황에서 유용합니다:GROUP BY와 함께 사용: GROUP BY 절을 사용할 때 MySQL은 기본적으로 결과를 그룹핑된 열을 기준으로 정렬합니다. 하지만 정렬이 필요 없는 경우 ORDER BY NULL을 사용해 불필요한 정렬을 방지하고 성능을 최적화할 수 있습니다.SELECT colum..

TIL, WIL/TIL📘 2024.08.14

08.07 TIL : QueryDSL 필요성 및 장점 이해

문제 : CTE 문법을 활용한 쿼리 작성 및 개선을 위한 분석 작업 도중 queryDSL의 필요성을 보다 확실하게 이야기하고 싶어 근거를 확인해보게 되었다. * 내가 확실하게 느낀 장점들1. 타입 안전성컴파일 시 쿼리 타입을 검사한다. MyBatis의 경우에는 런타임에서 오류가 확인 가능해 테스트 단계까지 가서 오류가 확인 가능하므로 이 과정을 개선할 수 있다. 2. 유지보수DAO 패턴의 경우 쿼리 변경 시 관련 코드를 모두 수정해야 한다.

TIL, WIL/TIL📘 2024.08.07

이펙티브 자바 읽고 정리해보기 3.

아이템 3 : private 생성자나 열거 타입으로 싱글턴임을 보장하라싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 대표적인 케이스로 함수(아이템 24)같은 stateless 객체나 설계상 유일해야 하는 시스템 Component가 있다. 클래스를 싱글턴으로 만들면 클라이언트를 테스트하기 어려워질 수 있다. 타입을 인터페이스로 정의한 후 그 인터페이스를 구현해서 만든 싱글턴인 경우에만 Mock을 사용할 수 있기 때문이다싱글턴은 일반적으로 두 가지 방식으로 만든다. 모두 private 생성자를 사용하고 인스턴스 접근 수단으로는 static 멤버변수를 둔다1) public static이 final 필드인 경우public class A { public static final A Ins..

728x90