목록Java (47)
각진 세상에 둥근 춤을 추자
📌 DDD란? DDD (Domain-Driven Design, 도메인 주도 설계): 도메인을 중심으로 설계를 진행하는 방법론이다(도메인: 소프트웨어가 해결하려고 하는 특정 문제 영역이나 비즈니스 컨텍스트를 의미한다.)DDD는 개발팀과 도메인 전문가 간의 협업을 강조하고, 비즈니스 로직을 정확히 반영한 시스템을 만드는 데 초점을 맞춘다. 기존의 전통적인 소프트웨어 설계 방식인 '계층적 구조'와의 차이 계층적 구조DDD 구조초점데이터 중심 설계 도메인 중심 설계 확장성간단하고 빠르나 확장에는 취약 최초 구현 시, 시간은 많이 소요되나 유연하고 확장에 용이복잡성구조가 단순구조가 복잡 적합한 프로젝트단순 CRUD 중심복잡한 비즈니스 로직 📌 DDD의 주요 개념 1. 유비쿼터스 언어 (Ubiquit..
CBR (Case-Based Reasoning) 이란? CBR(Case-Based Reasoning)은 과거의 경험을 바탕으로 현재의 문제를 해결하는 기술 중 하나이다. CBR 시스템은 주로 과거의 사례를 데이터베이스에 저장하고, 새로운 문제가 발생할 때마다 기존 사례들과 비교하여 유사한 해결책을 찾는 방식으로 작동한다. 이러한 방식은 이전의 경험을 효율적으로 활용하여 빠르고 정확한 문제 해결을 가능하게 하며, 특히 반복적이고 유사한 문제를 해결하는 데 효과적이다. 네트워크 관리, 의료 진단, 고객 서비스 등 다양한 분야에서 이미 활발하게 적용되고 있다. CBR의 기본 개념 CBR의 주요 단계는 5가지로 나눌 수 있다. 1. 문제 인식: 새로운 문제가 발생하면, 그 문제에 대한 초기 설명을 통해 문..
아파치 카프카(Apache Kafka)란? 오픈 소스 분산 스트리밍 플랫폼으로 분산 메시징 시스템이다.현재 대규모 데이터 처리와 메시징 시스템으로 주로 사용되고 있고, 여러 시스템 간에 실시간으로 메시지를 전송하는 데 특화되어 있다. 카프카의 주요 특징 1. 분산형 시스템카프카는 분산형 시스템으로, 여러 서버에 걸쳐 데이터를 분산 저장하고 처리한다.2. 실시간 데이터 처리 카프카는 스트리밍 데이터를 실시간으로 처리할 수 있으므로 로그 수집, 데이터 파이프라인 구축, 실시간 분석 등에 용이하다.3. 내구성카프카는 데이터를 디스크에 기록하며, 복제 기능을 통해 장애 발생 시에도 데이터를 안전하게 보관한다. 4. 높은 처리량카프카는 초당 수백만 건의 메시지를 처리할 수 있는 높은 처리량을 보유한다. 카프..
1. JDK(Java Development Kit) 설치 https://www.oracle.com/java/technologies/downloads/#java8-windows Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com java -version 2. 환경변수 설정 1) 윈도우 + R > sysdm.cpl 입력 > 고급 > 환경변수 2) 시스템 변수 > 새로 만들기 변수 이름: JAVA_HOME 변수 값: JDK가 설치된 경로 3) 시스템변수 > Path > ..
1. Maven - Lifecycle - clean 2. Maven - Lifecycle - install 3. target 폴더에 war 파일 생성되었다.
이벤트 기반 프로그래밍 (Event Driven Programming) 이벤트의 발생에 의해 프로그램의 흐름이 결정되는 방식이다. 이벤트 (Event) 컨트롤러와 사용자 간의 수 많은 상호작용을 말한다. 종류: 사용자의 입력(마우스 드래그, 클릭, 키보드), 센서 입력, 데이터 송수신 등 이벤트 핸들러 (Event Handler, Event Listener) 사용자의 특정 동작에따라 처리되는 이벤트 메서드를 말한다. 클래스로 작성해야 한다. // 이벤트 리스너 등록 메서드 Component.addXXXListener(listener) Componenet.addMouseListener() Componenet.addActionListener() 이벤트 처리 순서 이벤트 발생 ( ex. 마우스, 키보드 입력 ..
컨테이너 배치 관리자 (Container Layout Manager) 각 컨테이너마다 하나의 배치관리자가 존재한다. 컨테이버 배치관리자는 컨테이너에 부착되는 컴포넌트의 위치와 크기를 결정한다. 컨테이너 배치 관리자의 유형은 다음과 같다. FlowLayout 배치관리자: 왼쪽 → 오른쪽 BorderLayout 배치관리자: 동, 서, 남, 북, 중앙 GridLayout 배치관리자: 설정한 크기의 격자로 나눔 CardLayout 배치관리자: 카드를 쌓듯이 컴포넌트를 겹쳐 배치 배치관리자 설정 JPanel p = new JPanel(); p.setLayout(new BorderLayout()); 1. FlowLayout setLayout(new FlowLayout()); [예제1] FlowLayout packa..
프레임 생성 Frame을 만드는 방법은 크게 두 가지가 있다. main() 메서드에서 JFrame 객체를 생성한다. JFrame을 상속받은 클래스를 만들어 Frame을 생성한다. (☆) [1] main() 메서드에서 JFrame 객체 생성 package frame; import javax.swing.JFrame; public class MyFrame1 { public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(300, 300); f.setTitle("First frame"); f.setVisible(true); } } [2] JFrame을 상속받은 클래스를 만들어 Frame을 생성한다. (☆) package frame; im..
GUI (Graphic User Interface)는 사용자가 편리하게 프로그램을 사용하기 위해 화면과 컴포넌트를 지원하는 사용자 인터페이스이다. 컨테이너(Container): 다른 컴포넌트를 포함하는 GUI 컴포넌트 (ex. JDialog, JFrame...) 컴포넌트(Component): 컨테이너에 포함되어 화면에 출력되는 GUI Object (ex. 대부분의 스윙 컴포넌트) 스윙 컴포넌트 예시는 다음과 같다. Swing Frame [스윙 프레임] 모든 스윙 컴포넌트를 담는 최상위 GUI 컨테이너 JFrame을 상속받아 구현 [JFrame의 구성] Frame - 스윙 프로그램의 기본 틀 Menu Bar - 메뉴들이 부착되는 공간 Content Pane - GUI 컴포넌트들이 부착되는 공간
소켓(socket)은 네트워크 상에서 수행되는 두 프로그램 간의 양방향 통신 링크의 한쪽 끝 단을 의미한다. 클라이언트의 포트를 통해 서버에 연결을 요청하면 서버에서 요청을 수락할 수 있다. 서버는 요청을 수락한 후, 새로운 소켓을 만들어 클라이언트와 연결을 생성한다. 이후, 클라이언트와 소켓이 연결되어 데이터를 주고 받는다. 대략적인 클라이언트와 서버의 연결 방법은 다음과 같다. Client. 1. 클라이언트 소켓 생성 및 서버 접속 Socket clientSocket = new Socket("128.12.11", 5550); 2. 네트워크 입출력 스트림 생성 BufferedReader in = new BufferedReader(new InpuetStreamReader(clientSocket.getIn..