반응형
제육's 휘발성 코딩
반응형
[Spring] 스프링 JSON 요청 및 응답 - RestTemplate 예제
🔷 Spring/basic 2023. 1. 30. 00:51

RestTemplate 이란? RestTemplate은 스프링 3.0 버전부터 지원하는 라이브러리로, REST 방식의 API를 요청하고 json, xml, String 등 응답받을 수 있다. Spring 5부턴 WebFlux와 함께 WebClient를 도입하여 동기식 방식 및 비동기 접근을 지원하고 있다. RestTemplate 동작 과정 RestTemplate restTemplate = new RestTemplate(); 애플리케이션에서 Http Rest API 요청을 위한 RestTemplate을 생성한다. private final List

article thumbnail
[토비의 스프링 3.1] 2장 JUnit 테스트 (JUnit4)
Book/토비의 스프링 3.1 2023. 1. 29. 21:05

2.1 UserDaoTest 다시보기 public static void main(String[] args) throws SQLException, ClassNotFoundException { UserDao dao = new UserDao(); User user = new User(); user.setId("sasca"); user.setName("jalgayo"); user.setPassword("jalgayo"); dao.add(user); System.out.println(user.getId() +" 등록 성공"); User user2 = dao.get(user.getId()); System.out.println(user2.getName()); System.out.println(user2.getPass..

article thumbnail
[토비의 스프링 3.1] 1장 오브젝트와 의존관계
Book/토비의 스프링 3.1 2023. 1. 24. 21:33

스프링은 자바를 기반으로 한 기술이다. 자바를 선택한 이유는 객체지향 프로그래밍이 가능한 언어라는 점이다. 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이 스프링의 핵심 철학이다. 따라서 스프링이 가장 많이 관심을 두는 대상은 오브젝트다. 이 오브젝트를 설계하고 구현해나가는 기준을 마련해주는 프레임워크의 형태로 제공한다. 개발 환경 m1맥, Spring 3.0.7, 이클립스 2022-12, JDK 1.8, MAVEN, MySQL mysql mysql-connector-java 8.0.25 cglib cglib 2.2.2 org.springframework spring-..

article thumbnail
스프링 트랜잭션 동작 원리 (@Transactional, AOP)
🔷 Spring/basic 2023. 1. 15. 21:28

@Transactional 란? @Transactional 어노테이션은 스프링에서 많이 사용되는 선언적 트랜잭션 방식이다. 해당 어노테이션은 getConnection(), setAutoCommit(false), 예외 발생 시 롤백, 정상 종료 시 커밋 등의 필요한 코드를 삽입해준다. @Transactional 사용 방법 레거시 스프링에선 해당 어노테이션을 사용하기 위해선 PlatformTransactionManager 와 어노테이션 활성화 설정이 필요하다. 스프링 부트에선 @EnableTransactionManagement 설정이 되어 있어서 자동으로 사용할 수 있으며 입맛에 맞게 클래스 또는 메서드에 @Transactional 어노테이션을 적용하면 된다. PlatformTransactionManager..

[Oracle] 오라클 환경 세팅 (튜닝 세팅)

오라클 튜닝 환경 세팅 오라클에서 SQL 튜닝 셋팅을 위해선 다음과 같은 3가지가 필요하다. 대용량 데이터를 저장할 테이블 스페이스와 사용자 계정 SQL문으로 대용량의 테이블을 구성 오라클 통계 정보 분석 테이블 스페이스 및 계정 생성 테이블스페이스란 테이블이 저장될 공간을 의미하며, 이를 구분지어 관리함으로 성능을 향상할 수 있다. 테이블은 기본 8G를 보관할 수 있고, 추가로 1G 단위로 확장할 수 있다. 오라클은 data block, extent, segment, tablespace 라는 논리적 개념으로 데이터를 관리한다. data block : 데이터를 저장하는 최소의 논리적 단위 extent : data block이 모인 단위 segment : extent가 모인 단위 tablespace : s..

[MSA] Spring Cloud Gateway Filter 적용
🔷 Spring/MSA 2022. 11. 5. 19:14

Spring Cloud Gateway Filter 적용 Spring Cloud Gateway는 다음과 같이 마이크로서비스들과 클라이언트단의 라우팅 역할을 해준다. 이때 Filter 기능을 통해 조건을 분기한다. 사전에 정의하는 PreFilter 와 사후에 정의하는 PostFilter가 있다. Filter 정의는 Java 코드 상에서 사용하거나, Property에 정의할 수 있다. 동작 과정 동작 흐름은 다음과 같이 이루어진다. 최초의 Request시에 Request-Header에 서비스명을 넣어 로직을 처리해주고, 마지막 Response 시에도 마찬가지로 Response-Header에 서비스명을 넣어 요청에 맞는 클라이언트에게 반환주는 방식이다. 공식문서에는 다음과 같이 정의되어 있다. 필터를 통해 Pr..

[MSA] Spring Cloud - Zuul vs API Gateway
🔷 Spring/MSA 2022. 10. 30. 19:55

API Gateway란 API Gateway란 여러 마이크로 서비스들과 통신하기 위한 단일 지점(진입로)으로 모든 요청에 대해서 일괄적으로 처리해준다. Gateway는 인증 및 권한 체크, 응답 캐싱, 부하 분산 등의 역할을 수행한다. Spring Cloud 에서 MSA 간 통신 RestTemplate RestTemplate restTemplate = new RestTemplate(); restTemplate.getForObejct("url", Domain.class, 200); RestTemplate 을 통해 MSA url을 기반으로 통신하는 방법이다. Feign Client @FeignClient("test") public interface TestClient { @RequestMapping(meth..

[MSA] Spring Cloud - Eureka Service Discovery 설정하기
🔷 Spring/MSA 2022. 10. 25. 22:22

Eureka Server 생성 Discovery Service 역할을 하는 서버 프로젝트를 생성하자. IntelliJ에서 Spring Initializr를 사용하여 프로젝트를 생성하자. Spring Cloud와 Spring Boot 버전이 서로 다르면 오류가 발생하므로 버전 확인을 하자. Eureka Server 라이브러리를 의존성으로 주입해주자. pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.5 com.example discoveryservice 0.0.1-SNAPSHOT discoveryservice discoveryservice 1.8 2021.0.4 org.springframework.cloud spring-cloud-..

반응형
반응형