본문 바로가기

Spring/spring boot10

테스트 커버리지 테스트 커버리지? 코드 커버리지? 코드 커버리지를 검색하면 테스트 커버리지가 나오고, 테스트 커버리지를 검색하면 코드커버리지가 나온다. 누구는 테스트 코드 커버리지의 약자가 코드 커버리지라 하고, 누구는 제목은 코드커버리지란? 테스트 커버리지란 ~한 것이다 라며 적어놓았다. (솔직히 짜증났다.) 결국 둘다 같은 의미인가? 싶었지만 나의 멘토가 다름을 지적하였고, 더 검색을 해보고 마침내 둘은 다르다는 것을 이해할 수 있었다. 테스트 커버리지 전체 테스트 케이스 중 실행된 테스트 케이스의 비율(테스트 범위)을 뜻한다. 100개의 테스트 케이스 중 70개의 테스트 케이스만 실행되었을 때, 테스트 커버리지는 70%가 된다. 코드 커버리지 코드를 테스트하는 동안 애플리케이션의 소스코드가 실행되는 정도를 나타내는.. 2021. 12. 20.
spring-react cors에러문제 스프링 시큐리티를 쓰고있는 상황에서 cros문제가 계속발생 했다. 1.글로벌 cors전략 @EnableWebMvc를 이용해 WebMvcConfigurer를상속 받아 CORS응답을 처리했다. 하지만 계속해서 POST요청에 관해서 CORS권한이 없는 에러가 발생했다. Response to preflight request doesn't pass access control check: It does not have HTTP ok status. 에러를 처리하지 못하고 시큐리티에서 PermitAll로 임시방편으로 작업을 위해 처리했다. 시큐리티가 먼저 처리된다는 힌트를 가지고 시큐리티에 맞는 CORS를 적용시켜야 한다는것을 알았다. 2. 시큐리티 filter가로채기 시큐리티가 cors보다 먼저 선행되어서 보안을 처.. 2021. 12. 10.
Spring-React CORS란? CORS(Cross-Origin Resource Sharing) http헤더를 이용해서 A에서 실행중인 웹 애플리케이션이 다른 B의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제다. 브라우저와 서버간의 안전한 교차 출처 및 데이터 전송을 지원한다. 리소스가 자신의 출처(도메인,프로토콜,포트)가 다를 때 교차 출처 http 요청을 실행한다. 다른 출처의 리소스를 가져오기 위해서는 그출처의 리소스 공유에 대한 헤더(CORS)를 응답시 반환해 주어야 한다. 동작원리 1. 웹이 다른 출처의 리소스를 요청할 때 HTTP프로토콜을 사용해 요청한다.이때 브라우저는 요청 헤더 (request header)에 Origin 필드에 요청을 보내는 출처를 담아 전송한다 2.서버는 요청에 대한 응답.. 2021. 12. 10.
Spring JPA @Transactional 어노테이션 트랜잭션이란? 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계 원자성 : 한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리한다. 즉, 모두 성공 또는 모두 실패. 일관성 : 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한다. 격리성: 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다. 영속성: 트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다. 트랜잭션의 특징 더 이상 쪼갤 수 없는 최소단위의 작업 모두 저장되거나, 아무 것도 저장되지 않거나를 보장!! 모! 아니면 도!! 2개이상의 데이터를 저장하는 과정에서 하나의 데이터는 저장이 되었지만 나머지 하나의 데이터가 에러가 일으켰다면? 이체를 하는 과정에서 A쪽에서는 입금을 했는데 ,B쪽에서 에러를 일으켜 돈을 받지 못.. 2021. 12. 4.