-
[스프링] 트랜잭션과 @Transactional 어노테이션
트랜잭션 트랜잭션이란 논리적 작업 단위를 의미한다 스프링에서는 트랜잭션을 직접 설정할 수 있다 트랜잭션을 시작한다는 의미는 수동 커밋 모드를 설정한다는 것을 의미 할 수 있다 자동 커밋 모드는 SQL마다 커밋이 실행된다 사용자 요청마다 커넥션을 생성하면 커넥션은 세션을 만들고 세션은 트랜잭션을 시작한다 RuntimeException, Error 발생시 rollback CheckedException 발생시 commit 트랜잭션 매니저 트랜잭션을 시작하고 결과에 따라 commit or rollback을 한다 public interfa...
-
[스프링] HttpMessageConverter
HttpMessageConverter는 HTTP Request나 Response의 내용을 다룰 때 사용한다 Spring MVC에서 다음의 경우에는 ViewResolver 대신 HttpMessageConverter가 동작한다 Request : @RequestBody, HttpEntity, RequestEntity Response : @ResponseBody, HttpEntity, ResponseEntity 메시지 컨버터는 클래스타입과 미디어타입을 체크해 적절한 컨버터를 호출한다 public interface HttpMessageConverter<T&g...
-
B-Tree, B+ Tree
B-Tree Binary Tree(이진 트리)는 부모 노드가 자식 노드를 2개만 가질 수 있는 트리이기 때문에 균형이 맞지 않을 경우(i.g 편향 트리) 순차탐색의 O(N)에 맞먹을 정도로 효율이 떨어진다 B-Tree는 더 많은 자식을 가질 수 있어 트리의 균형을 맞출 수 있게 되었고 검색 효율도 O(logN)으로 유지할 수 있게 되었다 B-Tree는 Balanced Tree를 의미한다 M차 B-Tree는 하나의 노드가 최대 M개의 자식 노드를 가질 수 있는 트리이다 특징 노드의 자료수가 N개라면 자식의 수는 N+1 이여야 한다 각 노드의 자료는 정렬된...
-
AWS CloudFront 캐시 갱신
CloudFront는 파일의 캐시를 사용하는 AWS의 CDN 서비스이다. S3 버킷의 정적 호스팅을 하고 CDN으로 연결한 상태에서 정상적으로 배포가 되지 않았다면 캐시파일이 업데이트 되지 않았을 것이다. CloudFront의 기본 캐시 유지시간은 24시간이다. 하지만 무효화 설정을 통해 캐시파일을 새 파일로 갱신할 수 있다. Cloudfront 무효화 설정 AWS > CloudFront > 배포 > 배포ID > 무효화 /index.html 을 경로로 추가
-
AWS CodeDeploy Agent 저장 파일 갯수변경
EC2 인스턴스에 CodeDeploy Agent를 설치해 자동배포를 하고 있다. 하지만, 인스턴스의 용량이 얼마 남지 않은 것을 확인했고 원인을 파악했다. 문제는 설치된 CodeDeploy Agent가 배포에 쓰이는 jar파일을 서버에 저장하여 이력을 관리하고 있었다. 설정을 변경해 Agent가 보관하는 파일의 갯수를 변경하면 된다 기본 설정 값은 5개이다 배포에 쓰이는 파일이 저장되는 위치 /opt/codedeploy-agent/deployment-root/{배포그룹ID}/{배포ID} CodeDeploy Agent 설정변경 EC2 인...