좋은 개발자와 그저그런 개발자의 기준은 무엇일까 ? 모두 각자의 기준이 있겠지만 지금까지 개발자를 해오면서 생긴 나름대로 나만의 기준을 정리해보고자 한다. 조직또는 개발자간의 협업단계에서 서로의 결과물을 가지고 연동 작업을 하는 일이 빈번하다. 이 과정에서 문제없이 잘 동작하려면 상호간의 협의된 인터페이스를 두고 이를 잘 준수해 개발을 진행해야 한다. 인터페이스가 잘 설계 되어 있고, 이를 모두가 준수했다면 베스트 하지만 실제 테스트를 진행햅면 예상치 못한 문제와 상황들이 수시로 발생한다. 이런 경우 명확한 원인 파악이 되지 않아 어느쪽의 문제인지 쉽게 알아내기 어려운 경우가 있다. 이때 부터 서로간의 미묘한 자존심 대결 로 이어지는 경우가 있었다. 좋은 개발자라면 본인의 문제인지 먼저 확인해 본다 는 ..
null 과 null 로 인해 발생하는 문제 null pointer 와 null reference 널 포인터(null pointer)는 유효한 객체를 참조하지 않는 포인터를 나타내기 위해 예약된 값을 갖는다. 널 포인터는 널 값과는 다른 의미를 갖는다. 대부분의 프로그래밍 언어에서 널 포인터는 "값 없음"을 의미하지만, 관계형 데이터베이스에서 널 값은 "알려지지 않은 값"을 의미한다. 이것은 실질적으로 중요한 차이로 이끌어 진다: 대부분의 프로그래밍 언어들은 두 널 포인터를 같다고 여기지만, 관계형 데이터베이스 엔진은 두 널 값을 같다고 여기지 않는다 https://en.wikipedia.org/wiki/Null_pointer 자바의 null 참조 의미가 모호하다. 초기화 되지 않은 상태 정의되지 않은 ..
@GeneratedValue JPA 에서 제공하는 애노테이션이며, 엔티티 식별자 생성을 JPA 에서 위임하는 애노테이션 `GeneratedValue.java` @Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface GeneratedValue { GenerationType strategy() default GenerationType.AUTO; String generator() default ""; } `GenerationType.java` public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO; } 식별자의 생성 전략을 지정할..
이 책은 사실 출간 되자마자 샀던 책인데, 코로나의 여파로 급하게 재택으로 전환되는 바람에 사무실에 방치되다가... 최근에서야 읽은 책이다. 오픈톡방에서도 한번씩 거론되는 책이기도하고 개인적으로는 오브젝트의 실습판 정도라고 생각한다. 두 책 모두 SOLID 에 관한 설명을 주로 하는데, 오브젝트는 개인적으로 너무 기대를 한 탓인지 예제가 좀 실망스러웠는데 이 책은 이정도면 괜찮네 ? 싶은 예제들 위주로 나온다. 또한 SOLID 외에도 KISS, YAGNI 와 같은 좋은 코드를 짜기위한 다양한 원칙들도 몇가지 소개되는데 한 가지 예제만 가지고 이를 점진적으로 개선해나가는 것이 아닌 각 챕터별로 새로운 예제로 소개한다는 점에서 인상 깊었던 책이다. 만약 후배에게 추천한다면 오브젝트와 더불어 추천할만한 책이라..