작은 규모의 서비스를 개발한다면 서버와 클라이언트 간 호출이 대부분일 것이다. 하지만 더 큰 서비스가 될 수록 서버와 서버간 HTTP 호출이 필요해진다. 서버 아키택처가 MSA와 같은 형태라면 정말 많이 사용할 것이다. Spring boot에서는 다른 서버의 API endpoint를 호출할 때 RestTemplate을 많이 쓴다. 이 글에서는 RestTemplate을 활용하여 다른 서버를 호출하는 서비스 예제를 다뤄볼 것이다. 시작하기 전에, RestTemplate을 잘 모른다면 여기를 참고하자. 이 예제는 JAVA 11로 작성되었으며 프로젝트의 전체 내용은 Github에 공유되어있다. 1. 설정하기먼저 Spring boot를 사용하기 위해 build.gradle을 아래와 같이 설정한다.plugins {..
애플리케이션에서 설정에 관련된 상수는 소스코드와 별도로 관리하는 것이 기본이다. 설정과 관련된 값을 소스코드 내부에서 관리하면.. 값이 바뀔 때마다 매번 컴파일을 해야해서 번거롭기 때문이다. Spring Boot는 프로젝트 설정에 쓰이는 내용 또는 각종 상수를 .yml 이나 .properties 파일에 저장할 수 있게 지원한다. 이번 포스팅에서는 .properties의 상수를 Enum에 초기화 하는 법을 간단히 알아보겠다. Spring Boot에서 .properties 파일의 값을 가져올 때는 @Value 라는 어노테이션을 쓴다. 이것을 쓰면 Bean 객체가 초기화 될때 @Value에 지정된 값을 해당 프로퍼티에 초기화 한다. setter를 활용해서 초기화를 하는 것도 가능하다. 아래의 간단한 예제를 보..
★관련 링크Spring과 DB이야기 - 1. DataSource와 JdbcTemplateSpring과 DB이야기 - 2. JdbcTemplate에서의 UPDATE, INSERT 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스에서 상호작용의 단위라고 할 수 있다. 연관된 두 개 이상의 쿼리를 실행할 때, 모든 작업이 끝났을 때 COMMIT을 수행하고 중간에 오류가 발생하면 ROLLBACK하는 것이 기본이다. (트랜잭션을 잘 모른다면 여기를 클릭) 트랜잭션을 JAVA에서 구현한다면 아래와 같을 것이다. Connection conn = null; try { conn = DriverManager.getConnection(jdbcUrl, user, pw); conn.setAutoComm..
부제: Spring으로 JDBC연동하기, Spring으로 DB조회하기 ★관련 링크Spring과 DB이야기 - 2. JdbcTemplate에서의 UPDATE, INSERT Spring과 DB이야기 - 3. Transaction 처리 JDBC의 구현과 DataSource JAVA를 활용하여 애플리케이션을 개발할 때, DB접근이 필요하면 보통 JDBC를 쓴다. JDBC를 사용해본 사람이라면 아래와 같은 방식으로 개발했을 것이다. public Student getSingleStudent (String studentNum) throws SQLException { Student student; try(Connection conn = DriverManager.getConnection ("jdbc:oracle:this..