본문 바로가기

자바4

번거로운 동작을 스텁(stub)으로 대체 "자바와 Junit를 활용한 실용주의 단위 테스트" 책에 나오는 번거로운 동작을 스텁으로 대체에 대해 알아볼까 합니다. 단위 테스트에서 외부 시스템이나 서비스와의 상호작용을 모의 객체(stub)를 사용하여 단순화 하는 방법에 대해 설명하는데요 이 접근법은 테스트의 실행 속도를 높이고, 외부 시스템의 불안정성이나 제어 불가능한 요소들로 부터 독립적인 테스트 환경을 만드는데 도움을 줍니다. * 테스트 용도로 하드 코딩한 값을 반환하는 구현체를 스텁이라고 합니다. 번거로운 동작 예시 네트워크를 통한 데이터 통신 : 실제 서버에 접속하여 데이터를 주고 받는 과정은 네트워크 지연, 서버 문제 등으로 테스트가 느려지가나 실패할 수 있습니다. 데이터베이스 접근 : 실제 데이터베이스에 접근하는 것은 테스트 실행 속도를.. 2024. 1. 24.
번거로운 동작을 스텁(stub)으로 대체 "자바와 Junit를 활용한 실용주의 단위 테스트" 책에 나오는 번거로운 동작을 스텁으로 대체에 대해 알아볼까 합니다. 단위 테스트에서 외부 시스템이나 서비스와의 상호작용을 모의 객체(stub)를 사용하여 단순화 하는 방법에 대해 설명하는데요 이 접근법은 테스트의 실행 속도를 높이고, 외부 시스템의 불안정성이나 제어 불가능한 요소들로 부터 독립적인 테스트 환경을 만드는데 도움을 줍니다. * 테스트 용도로 하드 코딩한 값을 반환하는 구현체를 스텁이라고 합니다. 번거로운 동작 예시 네트워크를 통한 데이터 통신 : 실제 서버에 접속하여 데이터를 주고 받는 과정은 네트워크 지연, 서버 문제 등으로 테스트가 느려지가나 실패할 수 있습니다. 데이터베이스 접근 : 실제 데이터베이스에 접근하는 것은 테스트 실행 속도를.. 2024. 1. 19.
인스턴스화를 막으려거든 private 생성자를 사용하라 해당 내용의 핵심은 인스턴스를 생성할 필요가 없는 클래스를 설계할 때, 개발자가 실수로 인스턴스를 생성하는 것을 방지합니다. 예를 들어, 유틸리티성 클래스를 만들 때 이 클래스는 정적 필드만 포함하고 인스턴스화할 필요가 없습니다. "Java Math " 클래스가 이러한 유형입니다. 자바에서는 생성자를 명시적으로 정의하지 않으면 컴파일러가 자동으로 기본 생성자를 제공합니다. 이로 인해 개발자가 실수로 이러한 유틸 클래스의 인스턴스를 생성할 수 있습니다. 이를 방지 하기 위해 private 생성자를 사용합니다. private 생성자는 외부에서의 접근을 차단하여 클래스의 인스턴스화를 방지 합니다. 또한 이 생성자 내부에는 인스턴스화를 시도할 경우 예외를 던지는 코드를 작성할 수도 있습니다. public fin.. 2024. 1. 3.
분산 환경에서 세션 스토어 만들기 세션 ( Session ) 세션은 사용자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 브라우저를 종료하여 연결을 끊을 때 까지의 일련의 과정을 의미합니다. 세션을 통해 웹 서버는 각각의 사용자 정보를 일정 시간 동안 유지할 수 있습니다. 주요 특징 네트워크 상에서 두 개 이상의 통신 장치간에 유지되는 상호 연결을 의미 연결된 일정 시간 동안 유지되는 정보를 나타냄 적용 대상에 따라 다른 의미를 가짐 사용자 식별 : 웹은 기본적적으로 상태가 없는 (stateless) 프로토콜 입니다. 즉, 두 개의 페이지 요청 사이에 사용자 정보가 저장되지 않습니다. 세션을 사용하면 사용자마다 고유한 세션ID를 부여하고 사용자를 식별 및 그에 따른 정보를 저장할 수 있습니다. 데이터 저장 : 사용자의 정보, 로그인 상.. 2023. 12. 11.