Java File 클래스 완벽 가이드

1. 개요 java.io.File 클래스는 파일이나 디렉터리 경로의 추상적 표현입니다. 주로 파일 및 디렉터리의 생성, 검색, 삭제 작업에 사용됩니다. 2. 생성자 File 클래스는 세 가지 주요 생성자를 제공합니다: public File(String pathname) : 주어진 경로 문자열을 추상 경로로 변환하여 File 객체 생성 public File(String parent, String child) : 부모 경로와 자식 경 ...

8월 8일 13:55에 게시됨

Java Servlet @WebServlet 어노테이션의 구성과 활용

@WebServlet 어노테이션의 구조 분석 Servlet 3.0 규격부터 도입된 @WebServlet 어노테이션은 과거 web.xml 배포 서술자에서 수행하던 서블릿 등록 및 매핑 작업을 소스 코드 레벨에서 직접 처리할 수 있게 해줍니다. 이 어노테이션은 jakarta.servlet.annotation 패키지에 정의되어 있으며, 주요 속성은 다음과 같습니다. package jakarta.servlet.annotation; import j ...

8월 8일 07:07에 게시됨

Java 디자인 패턴: 어댑터, 팩토리, 프록시 패턴

어댑터 패턴 전력 공급 장치의 인터페이스를 조정하는 패턴입니다. 예를 들어, 두 개의 전극을 가진 전원 케이블이 세 개의 전극을 지원하는 기기와 호환되지 않을 때, 이 패턴은 두 가지 인터페이스 간의 호환성을 해결합니다. 1. 세 개 전극 인터페이스 정의 public interface ThreePhasePower { void ...

8월 8일 05:53에 게시됨

알리바바 클라우드 OSS에 파일 업로드, 접근 링크 조회 및 삭제 처리

1. Maven 의존성 설정 프로젝트의 pom.xml 파일에 다음 의존성을 추가합니다. <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency> 2. OSS 연결 설정 파일 구성 oss.properties 파일을 프로젝트 리소스 디렉터리에 생성하고, ...

8월 7일 21:39에 게시됨

객체 상태 저장 및 복구를 위한 메멘토 패턴 구현

메멘토 패턴은 객체의 내부 상태를 캡처하여 외부에 저장하고, 필요시 해당 상태로 복원할 수 있는 행동 디자인 패턴입니다. 핵심 개념 목적: 객체의 캡슐화를 유지하면서 내부 상태를 저장하고 이후에 복원할 수 있도록 합니다. 주요 기능: 객체의 상태를 별도의 메멘토 객체에 저장하여, 나중에 이전 상태로 되돌릴 수 있는 기능을 제공합니다. 적용 시기: 사용자 작업 ...

8월 7일 17:21에 게시됨

Apache Commons DbUtils를 사용한 CRUD 작업

Apache Commons DbUtils는 JDBC 코딩의 부담을 크게 줄여주는 Apache 재단에서 제공하는 오픈 소스 JDBC 유틸리티 라이브러리입니다. 이 라이브러리는 JDBC API를 단순화하여 개발 생산성을 향상시키면서도 성능 저하 없이 사용할 수 있습니다. 주요 API는 다음과 같습니다: org.apache.commons.dbutils.QueryRunner: SQL 쿼리 실행을 단순화합니다. org.apache.comm ...

8월 7일 15:31에 게시됨

20-책임 연쇄 패턴

책임 연쇄 패턴 개념 책임 연쇄 패턴(Chain of Responsibility): 여러 객체가 요청을 처리할 기회를 가지도록 하여 요청 발신자와 수신자 간의 결합도를 줄인다. 이러한 객체들을 하나의 체인으로 연결하고, 요청을 이 체인을 따라 전달하여 첫 번째로 요청을 처리하는 객체가 이를 처리할 때까지 계속 전달한다. 책임 연쇄의 장점: 고객이 요청을 제출하면 요청은 체인을 ...

8월 7일 10:59에 게시됨

자바 스레드 안전하게 종료하기: Deprecated 메서드의 위험성

스레드를 관리하고 종료하는 것은 다중 스레드 프로그래밍에서 매우 중요한 부분입니다. 과거 자바의 Thread 클래스에는 스레드를 멈추거나 일시 중지하는 메서드인 stop()과 suspend()가 제공되었지만, 이들은 현재 모두 Deprecated(사용 중지 권고) 상태입니다. 이 메서드들이 왜 권장되지 않으며, 스레드를 안전하게 종료하기 위한 올바른 방법은 무엇인지 살펴보겠습니 ...

8월 7일 08:51에 게시됨

이메일 인증 코드 발송 로직 및 구현

인증 코드 발송 처리 흐름 시스템은 사용자에게 이메일 인증 코드를 전송하기 전, 여러 단계의 제한 조건을 검사하여 과도한 요청을 방지합니다. 1. 첫 번째 수준의 요청 제한 확인 해당 전화번호에 대해 최근 5분 내에 이미 요청이 있었는지를 확인합니다. Redis의 Set 자료구조를 이용하며, 키는 "limit:first_level:{전화번호}", 값은 "1"로 저장됩니다. Boolean firstL ...

8월 7일 06:50에 게시됨

EasyExcel 범용 내보내기 도구(주석 없음, 다중 스레드 지원)

기본 클래스 설명 ======= ExcelExportHandler(내보내기 유틸리티 클래스) DataQuery(일반 데이터 조회) DataProcessor(함수 매개변수) SpringContextUtil(빈 객체 가져오기) 코드 ==== ExcelExportHandler import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.PageUtil; import cn.hutool ...

8월 5일 13:53에 게시됨