본문 바로가기

백엔드/Java86

도메인 클래스 설계 1. 같은 도메인 클래스를 다른 패키지에 생성해서 사용하는 경우 • 장점: o 특정 패키지 내에서만 사용하는 도메인 객체를 따로 관리할 수 있어 해당 패키지의 독립성을 높일 수 있습니다. o 서로 다른 모듈(패키지) 간에 의존성을 줄이고, 모듈화된 설계를 지원합니다. o 패키지의 목적에 맞게 도메인을 맞춤화할 수 있습니다 (필드 추가/제거 등). • 단점: o 도메인 클래스의 중복이 발생할 수 있습니다. (예: 동일한 개념의 클래스가 여러 패키지에 존재) o 중복된 도메인을 유지보수할 때 일관성을 유지하기 어려울 수 있습니다. o 데이터 변환 비용이 발생할 수 있습니다. 예를 들어, 패키지 간 데이터 전달 시 다른 형태의 도메인 객체로 변환해야 하는 경우. 적용 사례: • Bounded Context: .. 2024. 11. 17.
MQTT vs HTTP CPU 사용량 비교 1. 프로토콜 오버헤드 • MQTT: o 경량화된 프로토콜로, 메시지 전송 시 헤더가 2바이트에서 시작합니다. o 데이터 전송에 필요한 최소한의 메타데이터만 포함되어 있어 패킷 처리 및 생성에 필요한 CPU 리소스가 적습니다. o 상태 정보를 유지하고, 연결이 지속되므로 매번 연결 설정을 하지 않아도 됩니다. • HTTP: o 요청-응답 방식으로, 각 요청마다 헤더와 상태 정보를 포함합니다. 헤더 크기가 크고 데이터 패킷이 무거워, 처리하는 데 더 많은 CPU 리소스가 필요합니다. o 요청마다 연결 설정과 해제 과정(TCP 핸드셰이크 포함)이 반복되며, 이 과정에서 추가적인 CPU 소모가 발생합니다. ________________________________________ 2. 데이터 전송 방식 • MQ.. 2024. 11. 17.
주요 AuthenticationException 종류와 설명 BadCredentialsException잘못된 사용자 이름이나 비밀번호가 입력되었을 때 발생하는 예외입니다.기본 예외로, 보통 사용자 인증 실패 시 발생하는 대표적인 예외입니다.LockedException계정이 잠겨 있어 로그인이 불가능한 경우 발생합니다.주로 사용자가 계정 잠금 기능을 활성화한 경우 발생하며, 잠금 해제 전까지 로그인을 차단합니다.DisabledException계정이 비활성화된 상태일 때 발생합니다.관리자가 계정을 비활성화했거나 사용자가 활성화를 하지 않은 경우 등에서 주로 발생합니다.AccountExpiredException계정이 만료되어 로그인이 불가능한 경우 발생합니다.계정의 유효기간이 지나 만료된 상태일 때 발생합니다.CredentialsExpiredException자격 증명이.. 2024. 10. 31.
메뉴 권한 관리 구조 쿼리 (MariaDB - WITH RECURSIVE) MyBatis와 MySQL을 사용하여 메뉴 기반 권한 관리 시스템의 구조를 설정하고 쿼리를 작성해 보겠습니다. 역할(Role)과 메뉴(Menu)를 연결하여 특정 역할에 따라 접근할 수 있는 메뉴를 관리하는 구조입니다.1. 데이터베이스 테이블 구조 예시다음은 메뉴(Menu), 역할(Role), 권한(Permission)을 관리하기 위한 기본 테이블 구조입니다.1.1. 메뉴 테이블 (Menus)CREATE TABLE Menus ( menu_id INT PRIMARY KEY AUTO_INCREMENT, menu_name VARCHAR(100) NOT NULL, parent_menu_id INT, url VARCHAR(255), order_index INT, FOREIGN KEY.. 2024. 10. 26.
메뉴기반 권한 관리 DB 스키마와 쿼리 메뉴 기반 권한 관리 DB 스키마를 만들고, 몇 가지 기본 쿼리를 작성해 보겠습니다. 이 스키마는 사용자, 역할, 메뉴, 권한 등을 효율적으로 관리하고, 권한에 따른 접근 제어를 구현할 수 있도록 설계되어 있습니다.1. 스키마 정의Users 테이블CREATE TABLE Users ( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(100) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);Roles 테이블CREATE TABLE Roles ( role_id INT P.. 2024. 10. 26.
728x90