이 내용은 토비의 스프링 2권의 1장 내용을 참고하며 작성하였습니다. 1. 설정 값 분리의 필요성 [ 설정 값 분리의 필요성 ] 개발을 진행하다 보면 데이터베이스 연결 정보나 외부 API 주소 등과 같은 메타 정보들을 관리해야 한다. 해당 메타정보들을 클래스 파일에 넣을 수도 있겠지만 다음과 같은 이유로 프로퍼티 파일(properties)나 야믈 파일(yaml, yml)로 분리해서 관리할 것을 권장한다. 환경에 따라 유연하게 값을 설정할 수 있음 초기값을 설정할 수 있음 불필요한 컴파일을 줄일 수 있음 1. 환경에 따라 유연하게 값을 설정할 수 있음 일반적으로 로컬 환경이나 알파/스테이지 환경 그리고 운영 환경에 따라 서로 다른 데이터베이스 서버를 가지고 있다. 만약 환경에 따라 다른 값을 자바 코드만으..
1. 자주 사용되는 ITerm 단축키 모음(Mac OS) [ ITerm 단축키 모음 ] 전체/부분 선택 Command + Shift + I 가로 분할 Command + D 세로 분할 Command + Shift + D 분할된 오른쪽 탭으로 이동 Command + Shift + ] 분할된 왼쪽 탭으로 이동 Command + Shift + [ 새 창 Command + T 혹시 좋은 단축키 아시면 댓글에 남겨주세요! 추가하도록 하겠습니다:)
1. 변경을 최소화하는 개발, 관심사의 분리와 변하는 것과 변하지 않는 것의 분리 [ 요구사항의 변경 ] 시간이 지나면서 요구사항은 결국 변하게 될 것이고, 우리는 미래의 변화에 대응할 수 있는 설계를 해야 한다. 미래의 변화에 대응할 수 있는 설계를 해야하는 이유는 미래에 소요될 유지보수 시간을 줄이기 위함이다. 설계의 퀄리티에 따라 누군가는 수정사항을 반영하는데 하루가 넘는 시간이 소요될 수 있는 반면, 다른 누군가는 이러한 작업을 단 몇 시간 내에 끝낼 수도 있다. 이러한 이유로 우리는 변경이 일어날 때 필요한 작업을 최소화하고, 그 변경이 다른 곳에 영향을 미치지 않도록 해야 한다. 변경을 최소화하기 위해서는 분리와 확장을 고려한 설계를 해야 한다. 변경에 대한 요청은 한 번에 하나의 관심사항에 ..
필요한 데이터를 저장하기 위해 Map를 사용하는 개발자들이 있습니다. 하지만 Map을 사용하면 너무 많은 단점들을 안게 되는 것 같아서, 왜 Map이 아닌 DTO 클래스를 사용해야 하는지에 대해 정리해보고자 합니다. 1. Map보다 DTO 클래스를 사용해야 하는 이유 [ Map을 사용할 때의 단점 ] 컴파일 에러를 유발할 수 없음 String 텍스트를 Key로 사용함 가독성이 떨어짐 타입캐스팅 비용이 발생함 불변성을 확보할 수 없음 1. 컴파일 에러를 유발할 수 없음 Map의 Value는 Object 타입이다. 그리고 Object 클래스는 최상위 클래스이기 때문에 어떠한 데이터도 받아드릴 수 있다. Object를 사용할 때의 문제는 어떠한 데이터도 받아드릴 수 있기 때문에 타입 체크를 할 수 없다는 것 ..
객체를 생성하기 위해서는 생성자 패턴, 정적 메소드 패턴, 수정자 패턴, 빌더 패턴 등을 사용할 수 있습니다. 개인적으로 객체를 생성할 때에는 반드시 빌더 패턴을 사용해야 한다고 생각하는데, 왜 빌더 패턴을 사용해야 하는지에 대해 포스팅해보고자 합니다. 1. 빌더 패턴(Builder Pattern)을 사용해야 하는 이유 생성자와 수정자로 구현된 다음과 같은 User 클래스를 바탕으로 왜 생성자나 수정자보다 빌더를 써야하는지 이해해보도록 하자. @NoArgsConstructor @AllArgsConstructor public class User { private String name; private int age; private int height; private int iq; } [ 빌더 패턴(Build..