본문 바로가기
728x90

전체 글126

[ATDD] ATDD와 함께 클린 API로 가는 길 3기 - 1주차 ATDD TDD는 왜 어려운가 실무에 적용하기에는 일정 수준의 숙련도가 필요 테스트 툴에 익숙하지 않다 보니 어느 순간부터 테스트를 작성하는 공수가 더 들때가 있다 그러다 보니 TDD 흐름을 관리하기가 힘들다 레거시 테스트를 지속적으로 관리를 해줘야 하는데 어느 순간부터 손댈 수 없게 되어버린다 테스트의 목적에 포커스를 두기보다는 학문적 목표라는 느낌이 강하다 도메인부터 단위테스트를 통해 기능을 구현하려 한다 도메인 로직을 모르는 상태에서 시작하면 막막해져버린다 도메인 관계 설계가 어려워서 지우고 생성하다보면 어느순간부터는 잊어버리게 된다 막상 기능 통합을 하면 삐그덕 거린다 서비스가 국한된 부분을 강조하다 보니 전체를 놓치게된다 ATDD 인수테스트를 먼저 구현하고 단위테스트를 구현한다! 인수테스트 기반.. 2021. 3. 7.
정적 팩토리 메서드 static으로 선언한 객체를 생성하는 메소드 장점 가독성이 높다 객체를 캐싱할 수 있다 하위 자료형 객체를 반환할 수 있다 단점 정적 팩토리 메서드만 있는 클래스는 하위 클래스를 못만든다 일반 정적 메소드와 구분하기 힘들다 1. 가독성이 높다 이름으로 인스턴스의 목적을 알 수 있다 class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } // 정적 팩토리 메소드 public static Person adult() { return new Person("성인", 40); } // 정적 팩토리 메소드 public static Person kid() { return ne.. 2021. 3. 6.
Intellij 단축키 blog.jetbrains.com/ko/2020/03/11/top-15-intellij-idea-shortcuts_ko/ 2021. 3. 6.
[ATDD] ATDD와 함께 클린 API로 가는 길 3기 - 오리엔테이션 TDD 사이클에서 무엇을 테스트 해야하는가에 대한 고민을 해결해줄 수 있다 인수테스트 먼저 작성하고 단위테스트 생성 인수테스트가 종료되면 단위테스트도 종료 인수테스트는 요구사항 기반으로 작성되는 것이므로 목적이 분명해진다 어떻게 학습할 것인가? TDD를 인수테스트와 함께 적용 어떻게 작성하고 어떻게 관리할지 고민 TDD를 위한 테스트 도구도 학습 도구 활용법이 익숙하지 않아서 어려움도 있다 인수테스트 사이클 학습 테스트 리펙토링 유지보수 못하게 작성하면 말짱 도루묵 어떻게 유지보수할것인가? 사실 테스트 작성해놓고 많이 잊혀질 때가 많다 테스트를 길고 복잡하게 작성하지 않는다 가독성이 적으면 꼴도 보기 싫다 REST의 제약조건 분산웹 환경에서 어떻게 효율적인 아키텍쳐를 만들 것인가 라는 고민에서 나옴 각 .. 2021. 3. 4.
[JPA] Java EE 에서의 Transaction Container managed 트랜잭션 Container-managed 트랜잭션 자바 엔터프라이즈 빈에서는 기본적으로 container-managed 트랜잭션을 사용한다 보통 메소드 시작시 트랜잭션 시작되고 메소드가 종료 직전에 commit된다 각 메소드는 single 트랜잭션이 된다 Nested 혹은 멀티 트랜잭션은 메소드내에서 허용되지 않는다 Container-mananged 트랜잭션에서는 트랜잭션에 관련 메소드가 필요하지 않다 그냥 필요한 빈 메소드가 트랜잭션 attribute를 붙혀주기만 하면된다 (@TransactionAttribute) 만약 트랜잭션을 컨트롤 하고 싶다면 application-managed 트랜잭션을 사용해야 한다 Container-managed 트랜잭션을 사용하는 빈에서는 .. 2021. 3. 4.
[JPA] 상속관계 매핑 관계형 데이터베이스는 상속관계 x 부모만 @Id를 가진다, @Entity는 모두 가진다 슈퍼타입, 서브타입이 객체 상속과 비슷하다 전략 조인전략 : 각각의 테이블을 조인 테이블 정규화 외래키 참조 무결성 제약조건 활용 가능 저장 공간 효율화 조회시 조인 사용하여 성능저하 데이터 저장시 Insert 쿼리 두번 이상 사용 정석!!!, 설계 깔끔!!!, 조인만 잘하면 되지!!! 중요하고 복잡한 비즈니스 로직!!! 단일테이블 전략 : 통합 테이블에서 단일 테이블로 = 성능좋다 조인이 없어서 빠른 성능 단순한 조회쿼리 자식 엔티티가 매핑한 컬럼은 모두 null 허용 테이블이 커질 수 있다 ⇒ 조회가 느려질 수도 있다 확장 가능성 없을 때!!! ~~클래스마다 테이블 전략 :구현 클래스마다 테이블~~ 슈퍼클래스 : .. 2021. 3. 4.
728x90