반응형
제육's 휘발성 코딩
반응형
세션 클러스터링 방식 및 주의 사항 (Jeus, Tomcat)
Other 2023. 2. 1. 00:32

세션 클러스터링이란? 세션 클러스터링은 2대 이상의 WAS 또는 서버를 사용할 때 로드 밸런싱, 장애 대비 등 세션을 공유하는 것을 의미한다. 일반적으로, 사용자가 접속하면 L4 스위치가 접속을 유도해주지만, 서버 과부하 등 문제 발생 시 다른 연결가능한 서버로 유도해준다. 이 때 서버 간 세션 정보 불일치를 해결하기 위해 사용된다. (tomcat, jeus 등 WAS 설정으로 적용) 세션은 사용자 정보 또는 방문기록을 WAS 메모리에 저장하여, 클라이언트와 서버 간 고유한 세션 ID를 통해 Stateless한 연관성을 설정하는 것을 의미한다. 예를 들면, 이중화 되어있는 서버 구성에서 한 서버가 장애가 발생했을 때, 다른 서버에 세션 정보를 동일하게 유지 시키기 위한 기능이다. 따라서, 장애를 방지하는..

[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..

반응형
반응형