전체 글

성장일기
카테고리 없음

SWT 참고

http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm

트러블슈팅

[Spring] Redis 캐시 적용하기 (2/2)

이제 Redis를 이용해 캐시를 적용해보자. 스프링이 제공하는 캐시 추상화 스프링은 AOP 방식으로 메소드에 캐시를 적용하는 기능을 제공하고 있다. 캐시는 @Transactional 어노테이션을 통해 트랜잭션을 제공하는 것과 마찬가지로 AOP를 이용해 메서드 실행 과정에 투명하게 적용된다. 또한 스프링은 특정 기술을 추상화 계층으로 가져가고 개발자에게는 인터페이스를 동일한 형태로 제공한다. 캐시도 마찬가지인데 EhCacheManager, RedisCacheManager등의 다양한 기술들이 모두 CacheManager 인터페이스를 구현하고 있기 때문에 서버의 환경에 맞추어 다양한 캐시 기술들을 선택적으로 적용할 수 있다.. 이렇게 특정 기술에 종속되지 않게 하는 방식을 PSA(Portable Service..

트러블슈팅

[Spring] Redis 캐시 적용하기 (1/2)

프로젝트 개선 중 nGrinder로 부하테스트를 거치며 성능 개선을 위해 캐시를 적용하기로 했다. 캐시 캐시는 데이터를 임시로 저장해준 뒤, 동일한 데이터 요청이 오면 DB에 접근하지 않고 저장된 캐시 데이터를 반환해주는 방식이다. DB 접근 없이 요청을 처리할 수 있기 때문에 성능 개선 측면에서 많은 이점이 있다. 캐시 적용을 위해 고려해야할 사항 1. 어떤 데이터에 캐시를 적용할 것인가 캐시를 적용하는 것이 무조건 성능 개선을 가져오는 것이 아니다. 캐시는 생성, 수정, 삭제 연산보다는 조회 연산이 많은 데이터에 적합하다. 자주 변경되는 데이터에 캐시를 적용하면 데이터 정합성 문제가 발생한다. 💡 데이터 정합성 : 같은 데이터인데 캐시와 DB에 있는 정보가 서로 다른 경우 - 변경이 많은 데이터일수록..

알고리즘/DP

[프로그래머스] 경주로 건설 (BFS, DP) - Java

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 [카카오 인턴] 경주로 건설 더보기 문제 설명 건설회사의 설계사인 죠르디는 고객사로부터 자동차 경주로 건설에 필요한 견적을 의뢰받았습니다. 제공된 경주로 설계 도면에 따르면 경주로 부지는 N x N 크기의 정사각형 격자 형태이며 각 격자는 1 x 1 크기입니다. 설계 도면에는 각 격자의 칸은 0 또는 1 로 채워져 있으며, 0은 칸이 비어 있음을 1은 해당 칸이 벽으로 채워져 있음을 나타냅니다. 경주로의 출발점은 (0, 0) 칸(좌측 상단)이며, 도착점은 (N-1, N-1) 칸(우측 하단)입니다. 죠르디..

트러블슈팅

[Spring] Redis를 통한 세션 불일치 문제 해결 (2/2)

실제 프로젝트에 Redis를 적용해보자 1. 의존성 추가 및 환경 설정 //레디스 implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.session:spring-session-core' implementation 'org.springframework.session:spring-session-data-redis' spring: data: redis: host: 127.0.0.1 port: 6379 build.gradle에 의존성을 추가해주고 applicaiton.yml 파일에 redis 정보를 추가한다. 2. RedisConfig.java @Configuration..

jny0
J N Y 0