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..
안녕하세요, 6월 3일부터 6월 24일까지 3주의 기간동안 논산훈련소 훈련소 생활을 지낸 망나니개발자입니다. 많은 분들이 사회복무요원이나 산업기능요원/전문연구요원 또는 공중보건의사 등으로 훈련소를 다녀오는데, 이와 관련된 내용을 포스팅해보고자 합니다. 1. 훈련소 준비 및 준비물 [ 머리 길이 ] 아마 가장 큰 관심사가 머리 길이가 아닐까 생각합니다. 우선 훈련병의 머리 길이 규정은 30mm이지만, 저는 20mm로 머리를 밀고 갔습니다. 왜냐하면 30mm로 밀면 결국 머리를 잘린다는 얘기를 들었기 때문입니다. 하지만 저보다 머리가 긴 사람들도 많이 있었고, 여러 차례 머리가 긴 훈련병들의 머리를 자를 것이라고 공지 및 검사를 하였지만 결국 머리를 밀지 않았습니다. (물론 엄청 긴 훈련병들의 경우 밀렸지만..