언어/TIL ( Today I Learned )

[프로그래머스] SpringBasic Part2 정리

김뱅쓰 2023. 2. 5. 21:25

소프트웨어 테스팅

단위테스트

개별모듈이 제대로 구현되어 정해진 기능을 정확히 수행하는지를 테스트한다.  

(테스트 더블 : 의존 구성요소를 사용할 수 없을 때 테스트 대상 코드와 상호작용 하는 객체입니다.)

 

통합 테스트

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