분류 전체보기

공부 기록/이것이 백엔드 개발이다 With Java

EP24. 상품 관리 애플리케이션에 객체지향 더하기 2편

리팩토링과 테스트 코드 리팩토링은 흔히 “코드를 더 깔끔하게 고치는 것” 정도로 이해되곤 하지만,더 정확하게 말하면 동일한 입력에 대해 동일한 결과를 유지한 채, 코드 구조를 개선하는 작업이다.즉, 겉으로 드러나는 동작은 바뀌지 않아야 하고, 내부 구조만 더 읽기 좋고 유지보수하기 쉬운 형태로 바뀌어야 한다. 이때 말하는 결과에는 단순히 반환값만 포함되는 것이 아니라, 사이드 이펙트 역시 포함된다고 볼 수 있다.예를 들어 메서드가 반환하는 값은 같더라도, 원래 저장되던 데이터가 다르게 저장되거나, 예외가 다르게 발생한다면 그것은 더 이상 리팩토링이라고 보기 어렵다. 리팩토링과 테스트 코드는 거의 한 세트처럼 같이 이야기된다.리팩토링 전에 테스트 코드가 먼저 준비되어 있으면,적어도 테스트 코드가 검증하..

공부 기록/이것이 백엔드 개발이다 With Java

EP23. 상품 관리 애플리케이션에 객체지향 더하기 1편

클래스 추상화하기 애플리케이션을 개발하다 보면, 같은 기능을 하더라도 실행 환경에 따라 다른 구현을 써야 하는 요구사항이 자주 생긴다.예를 들어 로컬 개발 환경에서는 테스트가 편하도록 List를 사용하는 저장소를 쓰고,실제 서버에서는 데이터베이스를 사용하는 저장소를 쓰고 싶을 수 있다. 이런 요구는 학습용 예제에서만 나오는 특별한 상황이 아니라, 실무에서도 아주 흔하게 마주치는 문제다. 이 문제를 처음 떠올렸을 때 가장 단순하게 생각할 수 있는 방법은, 실행 환경에 따라 코드를 직접 바꿔치기하는 것이다.즉, 내 노트북에서 실행할 때는 ListProductRepository를 연결해두고,서버에 배포할 때는 DatabaseProductRepository를 연결하도록 소스를 수정하는 방식이다.하지만 이 방법..

공부 기록/이것이 백엔드 개발이다 With Java

EP22. 상품 관리 애플리케이션에 데이터베이스 연동하기 3편

상품 조회 이제 상품 관리 애플리케이션이 리스트가 아니라 데이터베이스를 사용하게 되었으므로,조회 기능도 메모리 리스트를 순회하는 방식이 아니라 SQL을 실행해서 결과를 받아오는 방식으로 바뀌어야 한다.가장 먼저 구현할 수 있는 조회는 상품 번호(id)를 기준으로 하나의 상품을 조회하는 기능이다. DatabaseProductRepositoy 코드를 수정해준다. public Product findById(Long id){ SqlParameterSource namedParameter = new MapSqlParameterSource("id", id); Product product = namedParameterJdbcTemplate.queryForObject( "SELECT id, na..

공부 기록/이것이 백엔드 개발이다 With Java

EP21. 상품 관리 애플리케이션에 데이터베이스 연동하기 2편

데이터베이스와 애플리케이션 연동 이제부터는 상품 데이터를 리스트가 아니라 실제 데이터베이스에 저장하도록 바꿔볼 것이다. 그러려면 애플리케이션이 MySQL과 통신할 수 있어야 한다.스프링부트에서 이런 작업을 시작할 때 가장 먼저 해야 하는 것은 의존성 추가와 접속 정보 설정이다. 먼저 pom.xml에 데이터베이스 연동에 필요한 의존성을 추가한다. org.springframework.boot spring-boot-starter-jdbc com.mysql mysql-connector-j runtime 여기서 spring-boot-starter-jdbc는 스프링부트가 자바 애플리케이션에서데이터베이스를 다룰 수 있도록 도와주는 JDBC 관련 기능들을 한 번에 가져오는 스타터다. mys..

Yang Ji Woo
'분류 전체보기' 카테고리의 글 목록 (2 Page)