JAVA 21

🚀 AXON으로 CQRS와 Event Sourcing 뿌셔버리기: 초간단 가이드

​복잡한 비즈니스 로직 처리로 골머리 앓고 계시나요? 😭 걱정 마세요! **AXON 프레임워크**로 CQRS와 Event Sourcing을 간단하게 구현할 수 있습니다! 😄​## 🤔 AXON이 뭐예요?​AXON은 CQRS와 Event Sourcing 패턴을 지원하는 강력한 Java 프레임워크예요.​- 복잡한 로직도 쉽게 모델링 😎- 마이크로서비스 아키텍처에 딱! 👍- Spring과도 잘 어울려요 🌱​## 🛠️ AXON 시작하기 ​AXON 사용은 정말 Easy해요! 딱 세 단계면 충분하죠. 😉​1. Maven에 의존성 추가 2. 명령(Command)과 이벤트(Event) 객체 만들기3. Spring과 통합 설정 ​이렇게만 하면 AXON으로 CQRS와 Event Sourcing을 자유자재로 다..

JAVA 2024.12.11

🌟 이게 바로 자바의 힘! Java SE, EE, ME 한 방에 정리

​자바 플랫폼을 잘 활용하면 개발 실력이 폭발적으로 오를 수 있어요! 😲💥 지금 몰라도 나중에 후회할지도 모르는 **Java SE, Java EE, Java ME**에 대해 함께 알아볼까요? ​## 🤔 자바 플랫폼이 뭐길래?​자바는 그냥 프로그래밍 언어가 아니에요. 개발 도구, 라이브러리 등을 아우르는 거대한 생태계죠! 그 중심에는 세 가지 주요 플랫폼이 있습니다.​1. **Java SE**: 자바의 기본! 핵심 문법과 표준 라이브러리 포함 2. **Java EE**: 대규모 엔터프라이즈 시스템 구축에 최적화3. **Java ME**: 모바일, 임베디드 기기에서도 자바를 실행​## ⭐ 각 플랫폼의 특징과 장점은?​### Java SE​* 풍부한 표준 라이브러리로 개발 속도 UP* OS에 구애받지 않..

JAVA 2024.12.11

🌟 폭발적 인기! Java Servlet으로 웹 개발 레벨 UP 🚀

​정적인 HTML 페이지는 그만! 이제 **Java Servlet**으로 동적인 웹 개발에 도전해보세요! 😄​Java Servlet은 서버에서 동적으로 웹 페이지를 생성하는 핵심 기술이에요. 사용자 요청에 따라 맞춤형 콘텐츠를 실시간으로 만들 수 있죠! ​## 🤔 Java Servlet이 뭐길래?​* **한 줄 정의**: 자바로 작성된 서버 측 클래스로, 동적 웹 페이지를 만들어줌! * **적용 예시**: 로그인, 회원가입, 게시글 작성 등 사용자 입력에 따라 결과가 바뀌는 모든 웹 기능!​## 🔍 Servlet의 동작 원리 살펴보기 ​1. 사용자 요청 → 서블릿 컨테이너로 전달2. HttpServletRequest & HttpServletResponse 객체 생성3. web.xml 파싱하여 알맞은..

JAVA 2024.12.11

Spring Web Application 구동 과정, 이것만 알면 당신도 Spring 마스터!

안녕하세요! 웹 개발을 공부하는 여러분, Spring Web Application의 구동 과정이 궁금하셨나요? ​복잡해 보이는 Spring의 내부 동작, 사실 알고 보면 어렵지 않습니다. 이 글에서는 Spring Web Application이 실행되는 순간부터 웹 페이지가 사용자에게 전달되기까지, 10단계의 여정을 알기 쉽게 설명해 드리겠습니다.​## 🌱 Spring Web Application 구동, 그 시작은 web.xml부터!​모든 여정은 `web.xml` 파일의 로드로부터 시작됩니다. 이 파일은 웹 앱의 모든 설정을 담고 있는 청사진과도 같죠. 서버가 가동되면 가장 먼저 이 파일을 읽어들입니다.​## 🔧 ContextLoaderListener, 스프링 컨테이너의 시동을 걸다​`web.xml`에..

JAVA 2024.12.03

[2023] Spring Security의 context-security.xml 설정 분석하기

안녕하세요. 오늘은 Spring Security의 context-security.xml 설정에 대해 자세히 살펴보려 합니다. 각 섹션별로 구성을 나눠서 어떤 개념과 역할이 포함되어 있는지 알아보겠습니다. context-security.xml 설정 1. 인증 설정: loginUrl="/cmns/login/loginUser.do" logoutSuccessUrl="/EgovContent.do" loginFailureUrl="/cmns/login/loginUser.do?login_error=1" accessDeniedUrl="/sec/ram/accessDenied.do" loginUrl: 사용자가 인증을 위해 자신의 자격 증명을 POST할 예상되는 엔드포인트입니다. logoutSuccessUrl: 사용자가 성공..

JAVA 2023.08.08

log4j2.xml을 사용하여 애플리케이션의 로깅 구성 관리

로깅은 모든 애플리케이션의 필수 부분입니다. 개발자가 애플리케이션의 동작을 추적하고 성능을 모니터링하며 문제가 발생할 때 진단하는 데 도움이 됩니다. log4j2.xml을 사용하여 애플리케이션의 로깅 구성을 관리하는 방법과 JDBC를 사용하여 데이터베이스에 연결하는 방법을 살펴봅니다. log4j2.xml 설정 log4j2.xml은 강력한 Java 기반 로깅 유틸리티인 Log4j 2에서 사용하는 구성 파일입니다. 이 파일을 통해 애플리케이션에서 사용되는 로거 및 어펜더, 로깅 수준 및 출력 방향을 지정할 수 있습니다. 다음은 log4j2.xml 구성의 예입니다. 위의 구성에서: SYSTEM_OUT으로 출력하는 콘솔 어펜더를 정의했습니다. java.sql, egovframework, jdbc.sqlonly ..

JAVA 2023.07.20

리눅스 jBoss 서버에 egovframe 3.8 배포시 "Failed services" 오류 해결 방법

최근에 저는 리눅스 서버에 jBoss 서버를 설정하고 egovframe 3.8을 배포하는 과정에서 'Failed services' 오류에 부딪혔습니다. 오류 메시지에서는 batchScheduler 라는 빈의 초기화 과정에서 문제가 발생하였음을 알 수 있었습니다. 이는 NullPointerException이 발생하면서 빈을 생성하는 과정에서 실패했음을 나타냅니다. 원인 파악: 에러 로그를 보면, 초기화를 위해 context-*.xml 파일에 정의된 빈들이 잘못된 순서로 로드되는 문제가 있음을 알 수 있습니다. 이 문제는 빈들이 의존성 순서에 따라 올바르게 초기화되지 않을 때 발생합니다. "{\"WFLYCTL0080: Failed services\" => {\"jboss.undertow.deployment...

JAVA 2023.07.20

Maven에서 Tibero6 JDBC 의존성 추가하기

Java 개발을 진행하면서 데이터베이스에 접근해야 할 경우, 종종 JDBC(Java Database Connectivity)를 이용합니다. JDBC는 자바에서 데이터베이스에 접속할 수 있게 하는 API입니다. 이번 글에서는 Maven 프로젝트에서 Tibero 6 데이터베이스의 JDBC 드라이버를 의존성으로 추가하는 방법에 대해 설명하겠습니다. JAR 파일 준비: 먼저, Tibero 6 JDBC 드라이버(tibero6-jdbc.jar)를 준비합니다. 이 파일은 해당 데이터베이스 벤더에서 제공하므로, 미리 다운로드 받아두어야 합니다. 파일 위치 지정: tibero6-jdbc.jar 파일을 프로젝트 내의 /src/main/webapp/WEB-INF/lib/ 경로에 붙여넣기합니다. Maven 의존성 추가: 이제..

JAVA 2023.07.14

eGovFrame 프로젝트 설정: "Invalid LOC Header (Bad Signature)" 에러 해결

안녕하세요, 오늘은 eGovFrame 프로젝트를 설정하는 과정에서 발생했던 'Invalid LOC Header (Bad Signature)'라는 에러와 그에 대한 해결 방법에 대해 알아보려 합니다. 이 에러는 주로 Maven 종속성 파일이 손상되었거나 유효하지 않을 때 발생합니다. 제가 이 문제를 해결한 방법은 다음과 같습니다. .m2/repository 폴더의 내용 삭제: 이 폴더는 Maven의 로컬 저장소로, Maven 프로젝트의 모든 종속성들이 저장됩니다. 이 폴더 내의 모든 파일과 디렉토리를 삭제하였습니다. Eclipse 재시작: 모든 변경 사항이 적용되도록 Eclipse를 다시 시작하였습니다. Maven 프로젝트 업데이트: Eclipse의 'Maven' > 'Update Project'를 선택하..

JAVA 2023.07.14

Java 빌드 오류 해결: "HIGHEST_SPECIAL cannot be resolved or is not a field"

안녕하세요, 오늘은 Java 프로젝트를 빌드한 후 발생했던 'HIGHEST_SPECIAL cannot be resolved or is not a field' 오류와 이를 해결하는 방법에 대해 이야기하고자 합니다. 이 문제는 제가 eGovFramework의 공통 컴포넌트를 빌드한 후에 발생했습니다. 먼저, 이 오류는 'org.apache.taglibs.standard.tag.common.core.Util'의 'HIGHEST_SPECIAL'이라는 필드를 찾을 수 없거나 해석할 수 없다는 것을 나타냅니다. 이 오류 메시지를 해석하면, 프로젝트가 'org.apache.taglibs.standard.tag.common.core.Util'을 포함하는 라이브러리에 의존하고 있지만, 이 라이브러리가 프로젝트 빌드 경로..

JAVA 2023.07.13