전체 글70 [SPRING] BDD란? Mock이란? Mock 객체는 테스트에서 실제 객체를 대신하여 사용되는 가짜 객체입니다. 테스트 중에 호출되는 메서드의 반환 값을 지정하거나 예외를 발생시키는 등의 동작을 모방하여, 의존하는 다른 객체에 영향을 받지 않고 독립적으로 테스트할 수 있습니다. Spring 프레임워크에서는 Mock 객체를 사용하여 다른 구성 요소와 상호작용하는 코드를 테스트할 수 있습니다. 예를 들어, Spring MVC 컨트롤러를 테스트할 때는 MockMvc 객체를 사용하여 HTTP 요청을 보내고 응답을 검증할 수 있습니다. MockMvc는 실제 HTTP 요청을 처리하는 대신 가상의 요청을 처리하여 컨트롤러를 테스트하는 데 사용됩니다. BDD란? BDD란 Behavior Driven Development의 약자로써 행위 주도.. 2023. 6. 21. [운영체제] 프로세스와 스레드 프로세스와 스레드의 개념 1. 프로그램 우선, 프로그램(Program)은 컴퓨터에서 실행되는 명령어들의 집합으로, 원하는 작업을 수행하기 위해 작성된 소프트웨어입니다. 프로그램은 사용자가 원하는 기능을 구현하고 컴퓨터에게 명령을 내리는 역할을 합니다. 예를 들어 크롬이라는 웹 브라우저가 대표적인 프로그램입니다. 바탕화면에 있는 크롬을 선택하면 윈도우 창이 열리면서 실행이 됩니다. 2. 프로세스 프로그램을 실행하면 해당 프로그램의 인스턴스 한개가 생성이 되는데 이를 프로세스라고 합니다. 프로세스는 실행중인 프로그램의 인스턴스이며 메모리에 로드되어 실행되는 독립적인 작업단위를 가집니다. 작업관리자를 보면 Chrome이라는 프로세스가 실행이 된 것을 알 수 있습니다. 3. 스레드 그런데 위 사진을 보면 크롬에.. 2023. 6. 19. [SPRING] @WebMvcTest 사용시 주의점 Controller의 단위 테스트를 위해 @WebMvcTest를 이용하고 있었습니다. 컨트롤러만 스캔 대상에 포함되는 것으로 알고 있었기 때문에 Config와 같은 것들은 모두 직접 주입해 스캔 대상에 포함시켜야 하는 것으로 알고 있었지만 SpringConfig가 자동으로 스캔이 돼어 오류가 발생해서 이유를 찾아봤습니다. @SpringBootTest vs @WebMvcTest @SpringBootTest는 전체 애플리케이션 컨텍스트를 로드해 모든 구성요소와 빈들을 메모리에 로드합니다. 통합 테스트나 애플리케이션 전체 동작을 테스트할 때 주로 이용합니다. 반면에 @WebMvcTest는 전체 애플리케이션 컨텍스트를 로드하지 않아 컨트롤러에 대한 단위 테스트를 작성할 수 있습니다. 이는 MVC 계층을 테스트하.. 2023. 6. 15. [JPA] 영속성 컨텍스트 요약 엔티티 매니저 팩토리로부터 엔티티 매니저를 생성합니다. 엔티티 매니저 팩토리를 생성하는 것은 비용이 많이 듭니다, 여러 스레드 동시 접근이 가능합니다. 엔티티 매니저를 생성하는 것은 비용이 많이 들지 않습니다, 여서 스레드가 동시 접근하면 동시성 문제가 발생합니다. 엔티티 매니저를 만들면 내부에 영속성 컨텍스트도 함께 만들어지며 엔티티 매니저를 통해서 접근이 가능합니다. 여러 엔티티 매니저가 같은 영속성 컨텍스트에 접근할 수도 있습니다. 영속성 컨텍스트는 객체를 보관하는 가상의 데이터베이스입니다. 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 읽기 쓰기 지연, 변경 감지, 지연 로딩 기능을 가능하게 합니다. 영속성 컨텍스트가 관리하는 엔티티를 영속 상태의 엔티티라고 하는데, 영속성 컨텍스트가 해당 .. 2023. 6. 5. [SPRING] CORS 웹 개발을 할 때 CORS가 개발자들을 많이 괴롭힌다고 해서 무엇인지, 어떻게 해결하는 지에 대해 공부해봤습니다. SOP란? SOP(Same Origin Policy)란? 다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식입니다. 여기서 출처란? 프로토콜, 호스트, 포트가 같다면 동일 출처로 판단합니다. 셋 중 하나라도 다르다면 다른 출처겠죠? 왜 SOP를 사용해야 보안에 도움이 될까요? 다른 출처 제한 : 다른 출처의 스크립트나 리소스에 대한 접근을 차단함으로써 데이터의 악의적인 접근을 방지합니다. XSS, CSRF 방지 : SOP는 XSS와 CSRF 공격을 어렵게 만듭니다. 악의적인 요청이 올 때 SOP는 이를 차단합니다. 그렇다면 다른 출처의 리소스가 필요하다면 어떻게 할까요? SOP의 제약사항.. 2023. 5. 19. [SPRING] 일급 컬렉션 도입해보기 List 타입에 대한 값을 일급 컬렉션을 이용해서 반환해 보셔도 좋을 것 같아요! 그렇게 되면 서비스 레이어에서 dto를 생성하는게 아닌 일급 컬렉션에게 객체를 생성하라는 명령을 줄 수 있고 코드가 조금 더 간결해질 수 있을 것 같습니다! 라는 리뷰를 받았습니다. 리뷰를 받은 Service 레이어의 해당 코드는 다음과 같습니다. /** * 키워드로 게시글 최근 100개 조회 * * @param keyword * @return List */ @Transactional(readOnly = true) public List findPostsByKeyword(String keyword) { // 제목에 키워드를 포함한 Post 최근 100개 조회 List postList = postRepository.findTo.. 2023. 5. 12. 이전 1 2 3 4 5 ··· 12 다음