1. 자주 사용되는 인텔리제이 단축키 모음(맥북, Mac OS)[ IntelliJ 단축키 모음 ]자동완성Command + Enter메서드 오버라이드Ctrl + O인터페이스 구현Ctrl + I커서가 가리키는 부분 리팩터링Ctrl + T커서가 가리키는 부분을 상수로 빼기Command + Option + C이름 일괄 변경(클래스, 변수, 기타 등등)Shift + F6변수 생성Command + Option + V줄 제거Command + X해당 코드를 사용중인 코드로 이동Command + B해당 코드의 타입 선언으로 이동Command + Shift + B구현 코드로 이동Command + Option + B코드 위 아래로 이동Command + Shift + 위/아래최근 탭으로 이동Command + E미리보기와 함께..
1. 프로그래밍 실전 [ 조엘 테스트: 더 나은 코드를 위한 12단계 ] 다음과 같은 소프트웨어 팀 평가 테스트를 진행하여, 10점 이하라면 심각한 문제가 있는 것이다. 사실 대다수의 회사는 2~3점 수준이다. 소스코드 관리 시스템을 사용하고 있습니까? 한방에 빌드를 만들어낼 수 있습니까? 일일 빌드를 하고 있습니까? 버그 추적시스템을 운영하고 있습니까? 코드를 새로 작성하기 전에 버그를 수정합니까? 일정을 업데이트하고 있습니까? 명세서를 작성하고 있습니까? 조용한 작업 환경에서 일하고 있습니까? 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있습니까? 테스터를 별도로 두고 있습니까? 프로그래머 채용 인터뷰 때 코딩 테스트를 합니까? 무작위 사용편의성 테스트(방금 막 작성한 코드를 다른 사람에게 사용..
이번에는 이전에 작성했던 프로젝트의 코드를 실무처럼 리팩토링 해보고자 합니다. 해당 프로젝트의 원본은 이 링크에서 확인할 수 있습니다. 해당 프로젝트는 사용자의 로그인/회원가입/목록 조회를 제공하는 아주 심플한 기능밖에 없는 프로젝트임에도 불구하고, 리팩토링할 사항이 상당히 많이 있는 것 같습니다. 차근차근 하나씩 고쳐보도록 하겠습니다. 1. 기존 SpringBoot 프로젝트 실무처럼 리팩토링 하기 [ 1. Raw 타입은 사용하지 말자 ] 위의 예제에서는 다음과 같이 Controller에서 데이터를 반환할 때 ResponseEntity를 Raw 타입으로 반환하고 있다. @RestController @RequestMapping(value = "/error") @Log4j2 public class Error..
클린 아키텍처를 읽는데, 잘 와닿지 않거나 이해가 가지 않는 내용이 상당히 많이 있었습니다. 하지만 이 책을 읽고 얻어가는 자그만한 부분이라도 정리를 해두고자 합니다. 책에서 다루는 핵심적인 내용들이 아닌, 개인적으로 기억하고 싶은 내용들만 정의하였습니다. 1. 단일 책임 원칙(SRP, Single Responsibility Principal)의 재정의 단일 책임의 원칙은 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다는 것이다. 이것은 하나의 일만 해야한다는 원칙과는 다르다. 여기서 말하는 변경의 이유는 사용자와 이해관계자를 가리키는데, 작성한 모듈들이 여러 대상들에 의해 변경되어서는 안된다는 것이다. 이러한 내용을 책에서는 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다고 SRP를 ..
2021년 신입 개발자가 되면서, 2021년에 대한 목표를 잡아보고자 합니다. 2022년 초에는 아래의 내용을 돌이켜 보면서 목표가 잘 지켜졌는지 회고하고, 새로운 목표를 잡을 계획입니다. 1. 2021년 목표 설정 [ 원리를 기반으로 한 공부 ] 2019년 후반기부터 MyBatis를 버리고 JPA라는 기술을 사용하기 시작하였다. 상당히 쿼리 중심적이고, 데이터베이스에 의존적인 기술이라 요구 사항이 변하면 그와 함께 변경해주어야 하는 것들이 많았다. 하지만 JPA를 도입하고나서 부터 Entity 중심의 개발을 하게 되었고, MyBatis의 단점을 극복할 수 있었다. 하지만 이후에 JPA를 조금 깊이 있게 공부하면서, JPA의 원리와 동작 방식을 깊이 있게 이해하지 못하고 사용했다는 것을 깨닫게 되었고, ..