상품 조회 이제 상품 관리 애플리케이션이 리스트가 아니라 데이터베이스를 사용하게 되었으므로,조회 기능도 메모리 리스트를 순회하는 방식이 아니라 SQL을 실행해서 결과를 받아오는 방식으로 바뀌어야 한다.가장 먼저 구현할 수 있는 조회는 상품 번호(id)를 기준으로 하나의 상품을 조회하는 기능이다. DatabaseProductRepositoy 코드를 수정해준다. public Product findById(Long id){ SqlParameterSource namedParameter = new MapSqlParameterSource("id", id); Product product = namedParameterJdbcTemplate.queryForObject( "SELECT id, na..
데이터베이스와 애플리케이션 연동 이제부터는 상품 데이터를 리스트가 아니라 실제 데이터베이스에 저장하도록 바꿔볼 것이다. 그러려면 애플리케이션이 MySQL과 통신할 수 있어야 한다.스프링부트에서 이런 작업을 시작할 때 가장 먼저 해야 하는 것은 의존성 추가와 접속 정보 설정이다. 먼저 pom.xml에 데이터베이스 연동에 필요한 의존성을 추가한다. org.springframework.boot spring-boot-starter-jdbc com.mysql mysql-connector-j runtime 여기서 spring-boot-starter-jdbc는 스프링부트가 자바 애플리케이션에서데이터베이스를 다룰 수 있도록 도와주는 JDBC 관련 기능들을 한 번에 가져오는 스타터다. mys..
웹 애플리케이션이 데이터베이스를 사용해야 하는 이유 지금까지 만든 상품 관리 애플리케이션은 데이터를 리스트에 담아두는 방식으로 동작했다.학습용으로는 이 방식이 단순하고 이해하기 쉽기 때문에 충분히 의미가 있다.하지만 실제 서비스 관점에서 보면, 메모리 안의 리스트에만 데이터를 저장하는 구조에는 분명한 한계가 있다. 가장 먼저 떠올릴 수 있는 문제는 데이터의 휘발성이다.리스트에 저장한 데이터는 애플리케이션이 실행되는 동안에만 유지된다.즉, 서버가 종료되거나 애플리케이션이 재시작되면 그 안에 있던 데이터는 모두 사라진다. 학습이나 테스트용 예제에서는 괜찮을 수 있지만,실제 서비스에서 사용자의 데이터가 애플리케이션 종료와 함께 사라진다면 그건 치명적인 문제다. 그렇다면 데이터를 파일에 저장하면 되지 않을까 ..