[프로그래머스] SpringBasic Part2 정리
소프트웨어 테스팅
단위테스트
개별모듈이 제대로 구현되어 정해진 기능을 정확히 수행하는지를 테스트한다.
(테스트 더블 : 의존 구성요소를 사용할 수 없을 때 테스트 대상 코드와 상호작용 하는 객체입니다.)
통합 테스트
ui,api호출 ,db 모든 모듈 테스트
JUnit
- 매 단위 테스트시마다 테스트 클래스의 인스턴스가 생성되어 독립적인 테스트가 가능
- 어노케이션을 제공해서 테스트 라이프 사이클을 관리하게 해주고 테스트 코드를 간결하게 작성하도록 지원
- 테스트 러너를 제공해서 인테리제이, 이클립스, 메이븐 등에서 테스트 코드를 쉽게 실행하게 해준다.
- assert로 테스트의 수행결과를 판별하게 해준다. ( assertEqual(예상값, 실제값) )
- 결과는 성공(녹색) 실패(붉은색) 으로 표시
hamcrestAssert, Assert
JDBC ( java database connectitvity)
java application 과 database 의 vc역할을 해준다.
자바에서 db 프로그래밍을 하기 위해 사용되는 api
자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 프로그래밍 인터페이스
JDBC 흐름
drivermanager 를 통해서 컨넥션 객체를 받아온다
connection을 통해서 statement 를 가져온다.
statement를 통해서 쿼리를 실행해서 ResultSet을 가져오거나 update를 실행안다.
데이터베이스 컨넥션을 종료한다.
docker mysql 설치
터미널에서
docker run --name (도커이름) -e MYSQL_PORT_HOST=% -e MYSQL_ROOT_PASSWORD=(비번) - p3306:3306 -d mysql:8
docker ps
docker logs (container Id)
Jdbc 개발필수요소
connection : url,id,pwd
statement : sql 구문을 정의하고 변경 될 값은 치환하고 세팅
resultset (select의 경우) : next를 통해 db안의 row한 줄을 불러오고 get을 통해 특정 컬럽값들을 가져온다.
Jdbc를 이용한 CRUD
DataSource
drivermanager을 이용해서 getconnection메서드를 얻어왔는데 그 과정에서 너무 많은 resource가 소요되어서
그래서 이문제를 해결하기위해 connection pool이 등장 (datasource를이용해서 connection을 가져옴
hikaricp(jdbc connection pool) - starter-jdbc denpendency에 포함
JdbcTemplate