큐를 사용하여 스택 구현: LeetCode 225 풀이

문제 정의 두 개의 큐를 활용하여 후입선출(LIFO) 방식의 스택을 구현해야 합니다. push, top, pop, empty 네 가지 기본 연산을 지원해야 하며, 큐의 기본 기능인 push to back, peek/pop from front, size 및 is empty만 사용할 수 있습니다. 해결 방법 1: 단일 큐 사용 스택의 마지막 요소를 큐의 맨 앞에서 제거해야 하는 점이 어려움입니다. 이는 큐의 끝 요소를 제 ...

6월 27일 17:07에 게시됨

Java List 컬렉션 주요 操作 가이드

Java List는 Java 컬렉션 프레임워크에서 가장 빈번하게 사용되는 인터페이스 중 하나이다. 본 문서에서는 List의 다양한 操作 방법을 상세히 설명한다. 1. 기본 데이터 타입 List 정렬 간단한 문자열 또는 Integer 같은 기본 타입의 List는 Collections.sort() 메서드를 사용하여 쉽게 정렬할 수 있다. import java.util.ArrayList; import java.util.Collections; import ...

6월 27일 05:09에 게시됨

Java 기반 스프링부트/SSM + Vue + 유니앱을 활용한 향정부 관리 시스템 상세 설계 및 구현

시스템 소개 본 시스템은 현대적인 웹 기술을 활용하여 향정부의 업무 효율성을 높이기 위한 종합 관리 솔루션입니다. 전통적인 관리 방식의 한계를 극복하고 디지털 전환을 실현하는 데 초점을 맞추어 설계되었습니다. 기술 스택 백엔드 프레임워크: 스프링부트 스프링부트는 톰캣, 제티, 언더토우와 같은 내장 서버를 포함하고 있어 추가 설치 없이 바로 사용할 수 있습 ...

6월 27일 03:40에 게시됨

Java에서 외부 프로세스 실행 및 관리

Runtime과 ProcessBuilder를 활용한 명령어 실행 Java 애플리케이션에서 운영체제의 명령어를 실행해야 할 때 Runtime과 ProcessBuilder 두 가지 방식을 활용할 수 있습니다. 각각의 특징을 이해하고 적절히 선택하는 것이 중요합니다. Runtime.exec()의 기본 활용 Runtime 클래스의 exec() 메서드는 간단한 명령어 실행에 적합합니다. 내부적으로 ProcessBuilder를 생 ...

6월 26일 18:52에 게시됨

【黑马点评-3초 특가 쿠폰】3. 비관적 락 synchronized로 한 사람 한 번 구매 보장 및 단일 서버 초과 주문 초기 로직

한 사람 한 번 구매 제약 조건 해결 방법 비관적 락 사용 이유 기존의 낙관적 락 방식은 데이터 변경 여부를 확인해야 하며, 현재는 존재 여부만 판단하는 상황이라 CAS 기법을 활용하기 어렵다. 버전 번호를 사용할 수도 있지만, 추가 필드가 필요하다. 따라서 간단한 구현을 위해 비관적 락을 적용한다. 비관적 락 적용 절차 MyBatis-Plus로 시작/종료 시간 검증 ...

6월 26일 16:47에 게시됨

스레드 풀에서 발생한 예외를 메인 스레드가 잡을 수 있을까?

과거에는 스레드 풀에서 발생한 예외를 메인 스레드가 잡을 수 있다고 생각했지만, 최근 시스템 장애 상황에서 스레드 풀 태스크에 예외 처리 코드가 없으면 메인 스레드의 catch 블록이 예외를 잡지 못해 문제 진단이 어려웠습니다. 이에 대한 내용을 연구하고 기록합니다. 1. JVM 예외 처리 JVM이 처리되지 않은 예외를 어떻게 다루는지 살펴보겠습니다. @Test public v ...

6월 26일 02:51에 게시됨

동적 프로그래밍의 세 가지 접근법

동적 프로그래밍의 세 가지 방법: 📈📉💾 동적 프로그래밍은 복잡한 문제를 해결하기 위한 알고리즘입니다. 큰 문제를 작은 문제로 분해하고, 이 작은 문제들의 해를 저장하여 중복된 계산을 피합니다. 이 글에서는 자바 언어를 사용하여 동적 프로그래밍의 세 가지 방법인 상향식(📈), 하향식(📉), 그리고 **메모이제이션(💾)**에 대해 설명하겠습니다. 이러한 방법들은 ...

6월 26일 01:56에 게시됨

Java 프로젝트용 SLF4J 및 Logback 로깅 시스템 신속 구축 가이드

로깅 프레임워크 초기 설정의 효율화 Java 기반의 신규 프로젝트를 시작할 때마다 로깅 프레임워크를 구성하고 의존성을 추가하는 작업은 반복적일 뿐만 아니라 설정 누락으로 인한 오류를 유발할 수 있습니다. SLF4J와 Logback 조합은 Java 생태계에서 가장 널리 사용되는 표준 로깅 솔루션으로, 이를 활용한 견고한 프로토타입을 신속하게 구축하는 방법을 살펴봅니다. ...

6월 26일 00:38에 게시됨

Java 핵심 개념과 Spring 프레임워크 완벽 정리

1. Java 기본 문법 1.1 개발 환경 단축키 IDE에서 자주 사용하는 단축키를 정리합니다. 단축키기능 soutSystem.out.println() 자동 완성 Ctrl+/한 줄 주석 토글 Ctrl+Shift+/여러 줄 주석 토글 1.2 식별자 규칙 변수, 클래스, 메서드 이름 작성 시 준수해야 할 규칙입니다. 사용 가능 문자: 영문 소문자(a-z), 숫자(0-9), 밑줄(_), 달러 기호($) 숫자로 시작할 수 없 ...

6월 26일 00:04에 게시됨

MyBatis-Plus 핵심 기능 및 실무 활용 가이드

1. 주요 어노테이션 MyBatis-Plus(이하 MP)는 개발 생산성 향상을 위해 다양한 매핑 어노테이션을 지원합니다. @TableName: 자바 객체와 실제 데이터베이스 테이블 간의 이름을 매핑합니다. @TableId: 테이블의 기본 키(PK)를 지정하며, 자동 증가 등 생성 전략을 설정할 수 있습니다. @TableField: 객체의 필드와 DB 컬럼명이 다를 경우 ...

6월 25일 22:46에 게시됨