본문 바로가기

전체 글104

Mockito를 알아보자 1. Mockito란 무엇인가? Mockito는 Java와 Kotlin에서 주로 사용되는 mocking 프레임워크입니다. Mocking은 단위 테스트에서 외부 의존성 또는 실제 구현을 가진 객체를 대체하는 것을 의미합니다. Mockito를 사용하면 실제 코드와 독립적으로 테스트를 수행할 수 있으며, 원하는 동작을 모방한 객체를 쉽게 생성할 수 있습니다. 2. Mockito의 특장점 의존성 분리: 실제 서비스, 데이터베이스, 외부 API 등의 의존성에서 독립적으로 테스트 코드를 작성할 수 있습니다. 유연한 동작 설정: 다양한 조건과 상황에 따라 mock 객체의 동작을 손쉽게 설정할 수 있습니다. 명확한 검증: 특정 메서드가 어떻게 호출되었는지, 몇 번 호출되었는지 등의 상세한 검증이 가능합니다. 코드 간결.. 2023. 9. 12.
`withCredentials`에 대한 설명 HTTP 요청에서 withCredentials 속성은 주로 AJAX 요청에서 사용되며, 이는 웹 브라우저의 Same-Origin Policy(같은 출처 정책)를 준수하면서도 쿠키, HTTP 인증, 클라이언트 SSL 인증 같은 자격 증명 정보를 포함한 요청을 보낼 수 있게 합니다. 기본적으로, XMLHttpRequest와 fetch는 크로스 도메인 요청에서 자격 증명 정보를 포함하지 않지만, withCredentials를 true로 설정하면 포함하게 됩니다. 예를 들어, 도메인 A에서 도메인 B로 AJAX 요청을 보낼 때 도메인 B의 쿠키를 전송하려면 withCredentials를 true로 설정해야 합니다. 이렇게 설정하면 응답에도 Access-Control-Allow-Credentials 헤더가 포함되.. 2023. 9. 12.
도메인 주도 설계 (DDD: Domain-Driven Design) 정의: DDD는 복잡한 문제를 해결하기 위해 도메인 전문가와 개발자가 긴밀하게 협력하여 현실 세계의 문제와 비즈니스 로직을 모델링하는 방식입니다. 기본 개념: Entity: 고유 식별자를 가진 객체. 일반적으로 데이터베이스 테이블의 레코드와 일치. Value Object: 불변의 값을 나타내는 객체. 식별자 없음. Aggregate: 일련의 Entity와 Value Object의 그룹. Repository: Aggregate를 저장하고 검색하는 메커니즘. Domain Event: 도메인의 중요한 사건이 발생할 때 생성. Service: 도메인 로직을 나타내지만 Entity나 Value Object에 속하지 않는 기능. 장점: 모델 중심: 도메인 로직에 집중, 어플리케이션의 핵심을 명확하게 표현. 품질 향.. 2023. 9. 6.
복합키란 무엇인가? 복합키 (Composite Key) 또는 복합 기본키는 두 개 이상의 칼럼으로 구성된 기본키를 의미합니다. 이러한 키는 데이터베이스 테이블 내에서 레코드의 고유성을 보장하기 위해 사용됩니다. 때로는 하나의 칼럼만으로는 레코드의 고유성을 보장하기 어려울 때, 두 개 이상의 칼럼을 결합하여 고유한 키 값을 생성합니다. 복합키의 유용함 데이터 무결성 보장: 복합키를 사용하면, 한 테이블 내의 특정 칼럼 조합의 고유성을 보장할 수 있습니다. 이를 통해 데이터 중복을 방지하고 무결성을 유지할 수 있습니다. 정규화: 복합키는 데이터베이스 설계의 정규화 과정에서 발생하는 테이블 간의 관계를 나타내는 데 유용하게 사용됩니다. 예시 시나리오 1: 국제 도서 대여 서비스를 운영하는 회사에서는 여러 나라의 여러 도서관에서 .. 2023. 9. 6.