[JAVA] 이메일 전송 라이브러리 구현
·
자바
오늘은 Java를 사용하여 만든 간편한 이메일 전송 라이브러리를 소개하고자 합니다. 이 라이브러리를 통해 복잡한 이메일 전송 로직을 쉽게 구현할 수 있습니다.해당 라이브러리는 사내 MES,ERP,PMS 등 여러 프로그램을 고도화를 진행하며 메일기능 사용이 빈번하게 일어나 동일 기능의 원활한 사용을 위하여 제작하였습니다.Mail 클래스 소개Mail 클래스는 여러 수신자에게 동시에 이메일을 보낼 수 있는 기능을 제공합니다. 주요 기능은 다음과 같습니다:여러 수신자에게 동시 발송HTML 콘텐츠 지원중복 수신자 자동 제거코드 살펴보기package kpms.lib;import java.util.ArrayList;import java.util.Arrays;import java.util.Properties;impor..
ORM vs MyBatis: 자바 데이터베이스 접근 기술 비교
·
자바
데이터베이스와 상호 작용하는 자바 애플리케이션을 개발할 때, 개발자들은 주로 ORM(Object-Relational Mapping)이나 MyBatis와 같은 기술을 사용합니다. 이 글에서는 두 기술을 비교하고 각각의 장단점을 살펴보겠습니다.ORM (Object-Relational Mapping)ORM은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 사이의 불일치를 해결하기 위한 기술입니다. Java에서 가장 널리 사용되는 ORM 프레임워크는 Hibernate입니다.ORM 예시 코드 (Hibernate 사용)// Entity 클래스 정의@Entity@Table(name = "users")public class User { @Id @GeneratedValue(strategy = Generatio..
[JAVA] 자바 메서드 심화: 오버로딩과 오버라이딩
·
자바
안녕하세요! 지난 포스트에서 자바 메서드의 기본에 대해 알아보았습니다. 오늘은 더 나아가 자바 프로그래밍에서 중요한 두 가지 개념인 메서드 오버로딩(Overloading)과 오버라이딩(Overriding)에 대해 자세히 알아보겠습니다.1. 메서드 오버로딩 (Method Overloading)1.1 오버로딩이란?메서드 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 매개변수의 타입, 개수, 순서를 다르게 하여 같은 이름의 메서드를 여러 개 만들 수 있습니다.1.2 오버로딩의 규칙메서드 이름이 같아야 합니다.매개변수의 개수나 타입이 달라야 합니다.반환 타입은 오버로딩을 구분하는 기준이 되지 않습니다.1.3 오버로딩의 예시public class Calculator { // 정수 두 개를..
[JAVA] 자바 함수(메서드)의 기초: 선언부터 사용까지
·
자바
안녕하세요, 오늘은 기본으로 돌아가 리마인드 하는 생각으로 자바 프로그래밍의 핵심 요소인 함수(자바에서는 주로 '메서드'라고 부릅니다)에 대해 알아보겠습니다. 특히 함수 선언에 사용되는 여러 키워드들의 의미와 역할을 자세히 살펴보겠습니다.1. 자바 메서드의 기본 구조자바에서 메서드의 기본 구조는 다음과 같습니다:접근제어자 [기타제어자] 반환타입 메서드명(매개변수목록) { // 메서드 바디}각 요소에 대해 자세히 알아보겠습니다.2. 접근 제어자 (Access Modifiers)접근 제어자는 메서드에 대한 접근 범위를 지정합니다.public: 어디서든 접근 가능protected: 같은 패키지 내 또는 상속받은 클래스에서 접근 가능(default): 같은 패키지 내에서만 접근 가능 (키워드 없음)priv..
[API] Python API와 Java 클라이언트를 이용한 CPK 분석 및 히스토그램 생성
·
자바
안녕하세요, 오늘은 Python으로 CPK(공정 능력 지수) 계산과 히스토그램 생성을 위한 API를 만들고, 이를 Java에서 호출하여 결과를 시각화하는 방법에 대해 알아보겠습니다.1. 배경제조 공정에서 CPK는 공정의 능력을 평가하는 중요한 지표입니다. 하지만 CPK 계산과 관련 데이터의 시각화는 복잡한 통계 처리가 필요합니다. Python은 이러한 데이터 처리와 시각화에 강점이 있어, Python으로 API를 구현하고 Java 백엔드에서 이를 호출하는 방식을 선택했습니다.2. Python API 구현먼저, Flask를 사용하여 CPK 계산과 히스토그램 생성을 위한 API를 구현했습니다.# Python API 코드 (주요 부분만 발췌)def calculate_cpk(data, lsl, usl): ..
[JAVA] 소켓 프로그래밍 3번
·
자바
Java 소켓 프로그래밍: 비동기 소켓 채널소개이전 포스트에서는 멀티스레딩을 이용한 서버 구현을 다루었습니다. 이번 포스트에서는 비동기 소켓 채널(Asynchronous Socket Channel)을 이용하여 더 효율적이고 고성능의 네트워크 애플리케이션을 작성하는 방법을 설명하겠습니다.비동기 소켓 채널이란?비동기 소켓 채널은 Java NIO (New Input/Output) 라이브러리의 일부로, 비동기적으로 데이터를 읽고 쓸 수 있게 해줍니다. 이를 통해 블로킹 I/O의 한계를 극복하고, 고성능 네트워크 애플리케이션을 작성할 수 있습니다.비동기 소켓 채널의 동작 원리비동기 소켓 채널은 작업이 완료될 때 호출되는 콜백 메서드를 사용합니다. 이를 통해 I/O 작업이 완료될 때까지 스레드가 블로킹되지 않고 다..
[JAVA] 소켓 프로그래밍 2번
·
자바
Java 소켓 프로그래밍: 멀티스레딩을 이용한 서버 구현소개이전 포스트에서는 Java 소켓 프로그래밍의 기본 개념과 간단한 TCP 에코 서버 및 클라이언트를 구현해보았습니다. 이번 포스트에서는 멀티스레딩을 이용해 다수의 클라이언트와 동시에 통신할 수 있는 서버를 구현해보겠습니다.멀티스레딩의 필요성단일 스레드 서버는 한 번에 하나의 클라이언트만 처리할 수 있습니다. 여러 클라이언트가 동시에 서버에 연결을 시도할 경우, 각 클라이언트는 이전 클라이언트의 처리가 완료될 때까지 기다려야 합니다. 이를 해결하기 위해 멀티스레딩을 사용하여 동시에 여러 클라이언트를 처리할 수 있는 서버를 구현할 수 있습니다.멀티스레딩 서버의 동작 원리멀티스레딩 서버는 각 클라이언트의 요청을 별도의 스레드에서 처리합니다. 기본적인 동..
[JAVA] 소켓 프로그래밍 1번
·
자바
Java 소켓 프로그래밍: 기본 개념과 첫 번째 예제소개Java 소켓 프로그래밍은 네트워크를 통해 데이터를 송수신할 수 있게 해주는 기술입니다. 소켓은 네트워크 상의 두 호스트 간의 양방향 통신 링크를 말합니다. 이 포스트에서는 소켓의 기본 개념을 설명하고, 간단한 예제를 통해 Java에서 소켓 프로그래밍을 시작하는 방법을 다룹니다.소켓의 기본 개념소켓이란?소켓은 네트워크 상에서 통신을 위해 끝점을 정의하는 추상화된 개념입니다. 소켓은 IP 주소와 포트 번호로 구성되며, 이를 통해 두 호스트 간의 통신이 이루어집니다.소켓의 종류Java에서 소켓은 크게 두 종류로 나뉩니다:TCP 소켓: 연결 지향적 소켓으로, 신뢰성 있는 데이터 전송을 보장합니다.UDP 소켓: 비연결 지향적 소켓으로, 빠른 속도의 데이터 ..
07_java while, do while 문
·
자바/process
안녕하세요 오늘은 이전 시간에 다뤘던 자바의 이중 반복문 이후에 06_java 이중 반복문 안녕하세요 오늘은 이전 시간에 다뤘던 자바의 break, continue문 이후에 05_java break, continue문 안녕하세요 오늘은 이전 시간에 다뤘던 자바의 for문 이후에 04_java for문 안녕하세요 오늘은 이전 시간에 dduldduck.tistory.com 자바의 while, do while 문에 대해 알아보겠습니다. package javaexp.a04_process; import java.util.Scanner; public class A09_While { public static void main(String[] args) { // TODO Auto-generated method stub..
06_java 이중 반복문
·
자바/process
안녕하세요 오늘은 이전 시간에 다뤘던 자바의 break, continue문 이후에 05_java break, continue문 안녕하세요 오늘은 이전 시간에 다뤘던 자바의 for문 이후에 04_java for문 안녕하세요 오늘은 이전 시간에 다뤘던 자바의 switch문 이후에 03_java switch문 안녕하세요 오늘은 이전 시간에 다뤘던 자바 dduldduck.tistory.com 자바의 이중 반복문에 대해 알아보겠습니다. package javaexp.a04_process; public class A08_For_Double { public static void main(String[] args) { // TODO Auto-generated method stub /* * # 이중 반복문 1. 반복문 안..