목록Study (37)
자바칩
@InjectMocks와 @Mock 어노테이션의 사용은 각기 다른 목적을 가지고 있습니다. 이를 통해 단위 테스트에서 객체 간의 의존성을 효과적으로 관리하고, 테스트 대상 객체와 그 의존 객체를 올바르게 설정할 수 있습니다.@Mock역할: 특정 클래스의 목(mock) 객체를 생성합니다.사용 위치: 테스트에서 사용되는 의존 객체에 대해 사용됩니다.목적: 목 객체를 통해 실제 객체의 동작을 시뮬레이션하고, 특정 메서드 호출에 대해 정의된 동작을 수행하도록 합니다. @Mock private UserRepository userRepository; @Mock private PasswordEncoder passwordEncoder; 위 예시에서는 UserRepository와 Password..
GitHub 저장소 접속: GitHub에 로그인하고 설정하려는 저장소(repository)로 이동합니다. 예를 들어, 저장소의 주소가 https://github.com/username/repository-name라고 가정합니다.Settings(설정) 탭 열기: 저장소 페이지에서 상단 메뉴 바 오른쪽에 있는 "Settings" 버튼을 클릭합니다.GitHub Pages 설정: Settings 페이지에서 왼쪽 메뉴에서 "Pages" 항목을 찾습니다.Source 설정: Pages 섹션에서 "Source"를 찾고, 클릭합니다.브랜치와 디렉토리 선택: Source로 사용할 브랜치(예: main 또는 master)를 선택하고, 호스팅할 정적 파일이 위치한 디렉토리(예: docs/)를 선택합니다.저장: 변경 사항을 저..
Asciidoctor를 사용한 문서 생성=> .adoc 파일 생성gradlew asciidoctor 빌드 및 Asciidoctor를 사용한 문서 생성 확인테스트 커버리지 확인=> .adoc 파일이 생성되고 난 뒤 무조건 cmd 창에 이 명령어를 입력해야 docs/asciidoc에 .html 파일이 생성됨gradlew clean build 빌드 및 Asciidoctor를 사용한 문서 생성하고 복사하는 모든 작업을 포함=> Asciidoctor가 .adoc 파일을 .html 파일로 변환하면서 지정된 출력 디렉토리에 결과를 저장=> src/main/resources/static/docs에 원래 있던 .html 파일이 삭제되고 새로 생성되지만 빌드를 새로 해도 생성되지 않는다면 build/docs/asciido..
HTTP 프로토콜은 요청에 의미 체계의미를 할당하는 다양한 메서드를 정의한다. 대부분의 RESTful 웹 API에서 사용하는 일반적인 HTTP 메서드는 다음과 같다.GET: 지정된 URI에서 리소스의 표현을 검색한다. 응답 메시지의 본문은 요청된 리소스의 세부 정보를 포함하고 있다.POST: 지정된 URI에 새 리소스를 만든다. 요청 메시지의 본문은 새 리소스의 세부 정보를 제공한다. 참고로 POST를 사용하여 실제로 리소스를 만들지 않는 작업을 트리거할 수도 있다.PUT: 지정된 URI에 리소스를 만들거나 대체한다. 요청 메시지의 본문은 만들거나 또는 업데이트할 리소스를 지정한다.PATCH: 리소스의 부분 업데이트를 수행한다. 요청 분문은 리소스에 적용할 변경 내용을 지정한다.DELETE: 지정된 UR..
JPA(Java Persistence API)에서 엔티티를 로드하는 방식은 크게 두 가지로 나뉜다.즉시 로딩(FetchType.EAGER)지연 로딩(FetchType.LAZY)각각의 로딩 방식은 엔티티를 데이터베이스에서 가져오는 시점과 방식에 차이가 있다. 즉시 로딩 (FetchType.EAGER)즉시 로딩은 엔티티가 로드될 때 관련된 엔티티들도 함께 로드되는 방식이다.즉, 주 엔티티를 가져오는 시점에 관련된 모든 엔티티들을 즉시 데이터베이스에서 조회한다. 특징주 엔티티와 연관된 모든 엔티티들을 한 번에 로드하기 때문에 N + 1 문제를 유발할 수 있따.쿼리가 복잡해질 수 있으며, 성능에 영향을 줄 수 있다.코드가 단순해지고, 관련 엔티티에 바로 접근할 수 있어 편리하다.@ManyToOne과 @OneTo..
디자인 패턴역할어댑터 패턴 (Adapter Pattern)호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 프록시 패턴 (Proxy Pattern) 제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴 데코레이터 패턴 (Decorator Pattern) 메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴 싱글톤 패턴 (Singleton Pattern) 클래스의 인스턴스, 즉 객체를 하나만 만들어 사용하는 패턴 템플릿 메서드 패턴 (Template Method Pattern) 상위 클래스의 견본(템플릿) 메서드에서 하위 클래스가 오버라이딩한 메서드를 호출하는 패턴 팩토리 메서드 패턴 (Factory Method Pattern) 오버라..
단일 책임 원칙(SRP: Single Responsibility Principle)정의: 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.설명: 클래스는 하나의 기능 또는 역할만을 가져야 하며, 그 기능을 변경하는 이유는 하나뿐이어야 한다. 이를 통해 클래스의 복잡성을 줄이고, 코드의 가독성과 유지보수성을 높일 수 있다.예시: 사용자의 정보를 관리하는 User 클래스와 사용자 인터페이스를 처리하는 UserInterface 클래스를 분리하여 각각의 책임을 명확히 한다.개방-폐쇄 원칙 (OCP: Open-Closed Principle)정의: 자신의 확장에는 열려있고, 주변의 변화에 대해서는 닫혀 있어야 한다.설명: 새로운 기능을 추가할 때 기존 코드를 변경하지 않고 확장할 수 있어야 한다. 이를 ..
캡슐화 (Encapsulation): 정보 은닉정의: 데이터(속성)와 그 데이터(속성)를 조작하는 메서드를 하나의 객체로 묶는 것설명: 객체 내부의 데이터(속성)와 메서드를 외부에서 직접 접근하지 못하도록 하고, 객체를 통해서만 접근할 수 있도록 제한한다. 이를 통해 데이터의 무결성을 유지하고, 객체 간의 상호작용을 명확하게 정의할 수 있다.예시: 클래스 내의 private 속성은 외부에서 직접 접근할 수 없고, public 메서드를 통해서만 접근 가능하다.상속 (Inheritance): 재사용 + 확장정의: 하나의 클래스가 다른 클래스의 특성과 기능을 물려받는 것설명: 기존 클래스를 재사용하여 새로운 클래스를 만들 수 있게 한다. 상속을 통해 코드의 재사용성을 높이고, 공통적인 기능을 부모 클래스에서 ..