BackEnd
JPA 구동방식 및 CRUD
JPA 구동방식 회원 Entity를 활용한 CRUD 더보기 회원 Entity 생성 package hellojpa; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Member { @Id private Long id; private String name; //Getter, Setter … public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 회원 ..
JPA 개요
JPA란? Java Persistence API 자바 진영의 ORM 기술 표준 ORM? Object-relational mapping (객체 관계 매핑) 객체는 객체대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 대중적인 언어에는 대부분 ORM 기술이 존재 JPA의 장점 SQL 중심적인 개발에서 객체 중심으로 개발 생산성 유지보수 패러다임의 불일치 해결 성능 데이터 접근 추상화와 벤더 독립성 (Mysql이나 Oracle등 DB변경에서 자유로움) 표준 목표 - 객체와 테이블 설계 매핑 객체와 테이블을 제대로 설계하고 매핑하는 방법 기본 키와 외래 키 매핑 1:N, N:1, 1:1, N:M 매핑 목표 - JPA 내부 동작 방식 이해 JPA의 내부 동작 방식을 이..
[토비의 스프링] 2.6 테스트 정리
2장은 테스트의 필요성과 작성 방법에 대해 다뤘다. 테스트는 자동화돼야 하고, 빠르게 실행할 수 있어야 한다. main() 테스트 대신 JUnit 프레임워크를 이용한 테스트 작성이 편리하다. 테스트 결과는 일관성이 있어야 한다. 코드의 변경 없이 환경이나 테스트 실행 순서에 따라서 결과가 달라지면 안 된다. 테스트는 포괄적으로 작성해야 한다. 충분한 검증을 하지 않는 테스트는 없는 것보다 나쁠 수 있다. 코드 작성과 테스트 수행의 간격이 짧을수록 효과적이다. 테스트를 먼저 만들고 테스트를 성공시키는 코드를 만들어가는 테스트 주도 개발 방법(TDD)도 유용하다. 테스트 코드도 애플리케이션 코드와 마찬가지로 적절한 리팩토링이 필요하다. @BeforeAll, @AfterAll를 사용해서 테스트 메소드들의 공통..
[토비의 스프링] 2.5 학습 테스트로 배우는 스프링
학습 테스트란? 자신이 만들지 않은 프레임워크나 다른 개발팀에서 만들어서 제공한 라이브러리 등에 대해서도 테스트를 작성한다. 이런 테스트를 학습 테스트 (learning test)라고 한다. 학습 테스트의 목적은 자신이 사용할 API나 프레임워크의 기능을 테스트로 보면서 사용 방법을 익히려는 것이다. 프레임워크 기능에 대한 검증이 아닌 자신이 만들려는 기술이나 기능에 이해와 사용방법을 위한 검증이 목적이다. 학습 테스트의 장점 다양한 조건에 따른 기능을 손쉽게 확인해볼 수 있다. 학습 테스트 코드를 개발 중에 참고할 수 있다. 프레임워크나 제품을 업그레이드할 때 호환성 검증을 도와준다. 테스트 작성에 대한 좋은 훈련이 된다. 새로운 기술을 공부하는 과정이 즐거워진다. 학습 테스트 예제 JUnit 테스트 ..
[토비의 스프링] 2.4 스프링 테스트 적용
테스트를 위한 애플리케이션 컨텍스트 관리 설정파일 및 의존성 주입등을 활용한 테스트 클래스 작성법에 대해 다룹니다. 더보기 스프링 테스트 컨텍스트 프레임워크 적용 스프링 테스트 컨텍스트를 적용한 UserDaoTest @ExtendWith(SpringExtension.class) @ContextConfiguration(locations = "/applicationContext.xml") public class DBTest { @Autowired private ApplicationContext context; ... @BeforeAll public void setUp() { this.dao = this.context.getBean("userDao", UserDao.class); } @ExtendWith 단위..
[토비의 스프링] 2.3 개발자를 위한 테스팅 프레임워크 JUnit
JUnit이란? 자바와 JVM기반 언어(ex: kotlin) 의 단위 테스트 프레임워크 책과 다르게 SpringBoot, JUnit5, IntelliJ, Gradle을 사용하여 JUnit을 다뤄보겠습니다. JUnit 테스트 실행 방법 JUnit5를 활용해 테스트를 실행하는 방법에 대해 다룹니다. 더보기 간단한 연산을 하는 Caclulator 클래스 @Service public class Calculator { public int add (int a, int b) { return a + b; } } Caclulator클래스를 테스트 하기 위한 CacalculatorTest 클래스 @SpringBootTest class CaclulatorTests { @Autowired Calculator calculato..