우테캠 미션 진행당시 도메인 객체의 id 값에 대해 Long을 사용하는 것을 보면서 왜 long이 아닌 Long을 사용하지? Long과 long의 차이는 뭐지? 라는 의문이 생겼다. Long과 long의 차이와 어떤 경우에 사용하면 좋은지에 대해 알아보려고 한다. long은 원시 타입(Primitive Type), Long은 참조 타입(Reference Type)이다 원시 타입은 정수, 실수, 문자, 논리 리터럴 등 실제 메모리에 데이터 값을 직접 저장하는 타입으로서 boolean, char, byte, short, int, long, float, double를 말한다. 참조 타입은 객체의 주소를 저장하는 타입으로 메모리 주소 값을 통해 객체를 참조하는 타입으로서 원시 타입을 제외한 문자열, 배열, en..
첫 직장을 퇴사하면서 상반기는 정말 가파른 성장 곡선을 그린 시기였다. 그동안은 사실 정말 한 게 없어서 회고라고 할만한 게 없었는데 이번 상반기는 많은 일을 했기 때문에 뿌듯한 것도 있고 정리도 할 겸 회고를 작성하게 되었다. 1. 회사 1) 동료 개발자의 퇴사 4년동안 정말 많은 동료 개발자가 퇴사했다. 그때마다 나도 퇴사하고 싶어!!라는 생각은 많았지만 이직은 번번이 실패했다. 회사를 다니다보면 실력이 늘어서 언젠가는 이직할 수 있겠지?라는 생각으로 안일하게 있었다. 친하게 지냈던 직장 동료들이 정말 짜기라도 한듯 12월에 모두 이직에 성공했다. 프로젝트 오픈으로 바빠서 야근을 열심히 하는동안 나만 남겨두고 1월에 전부 퇴사를 한 것이다. 다들 연봉도 많이 올리고 개발 문화도 좋은 회사로 이직을 했..
ATDD cannot deserialize from Object value 에러 → 롬복의 경우 @NoArgsConstructor 어노테이션을 추가해주거나, 롬복이 아닌 경우에는 빈 생성자를 추가해주면 해결된다(JPA 적용을 고려해서 protected 접근 제어자로 했다) 발생 원인과 해결 방법 참고 : https://azurealstn.tistory.com/74 https://velog.io/@guswns3371/Spring-cannot-deserialize-from-object-value-no-delegate-or-property-based-creator REST assured의 log type 인수테스트에서 테스트 격리하기 → @DirtiesContext, @Sql 등 방법들이 있었는데.. 가장 추..
다음은 "3월 우아한테크세미나 - 우아한ATDD" 내용을 정리한 글입니다 세미나 - https://www.youtube.com/watch?v=ITVpmjM4mUE 인수 테스트 시나리오(사용자 스토리) 기반의 기능 테스트 인수 테스트의 도움 배포 없이 받는 빠른 피드백 새로운 팀의 도메인과 서비스 흐름 파악에 큰 도움이 됨 도메인 이해에 예상보다는 짧은 시간이 소요 인수 테스트를 기반으로 개발을 할 경우 기존 인수 테스트 장점 빠른 피드백을 받을 수 있음 회귀 오류를 잡아줄 꾸준한 테스트를 만들 수 있음 기존 기능을 망가뜨리지 않고 새 기능을 추가할 수 있음 인수 테스트를 작성하면서 구현할 대상에 대한 이해도 증진 작업의 시작과 끝이 명확해져서 심리적인 안정감에 도움 인수 테스트 기반 구현 프로세스 인수 ..
JPA JPA 선호하는 패턴 @Column(nullable = false) vs @NotNull → 둘 다 테이블 생성시 not null 옵션을 추가해준다 @NotNull의 경우 실제 객체에 null 이 들어가는 경우에도 오류를 반환하므로 더 엄격하다 현업에서는 전자를 더 선호하는 듯 했다 JPA entity equals - 참고주소1, 참고주소2 JPA의 즉시 로딩과 지연 로딩(p.296) @ManyToOne, @OneToMany : 즉시 로딩(FetchType.EAGER) @OneToMany, @ManyToMany : 지연 로딩(FetchType.LAZY) → 최대한 모든 연관관계에 지연 로딩을 사용하는 것을 추천!(출처는 영한님 책) JPA의 영속성 전이(p.307) 특정 엔티티를 영속 상태로 만들..