전체 글144 java.io.Serializable Java에서 Serializable은 마커 인터페이스(Marker Interface)로, 해당 객체가 직렬화(Serialization)될 수 있음을 표시. 직렬화란 객체를 바이트 스트림 형태로 변환하여 파일로 저장하거나 네트워크를 통해 전송할 수 있도록 하는 과정이다. 반대로 바이트 스트림을 다시 객체로 복원하는 과정을 역직렬화(Deserialization)라고 한다.Serializable의 필요성객체를 파일로 저장해야 할 때네트워크를 통해 객체를 전송할 때웹 애플리케이션에서 HttpSession에 VO 객체를 저장할 때분산 환경에서 세션 클러스터링 시 데이터 유지가 필요할 때예제 코드DefaultVO 클래스가 Serializable을 구현한 뒤, 객체를 파일로 직렬화하고 다시 역직렬화하는 예제.impo.. 2025. 8. 26. 홈페이지 제작에 Next.js vs Node.js 비교 Next.js와 Node.js 중 어떤 기술을 선택해야 할지 고민을 하게 된다. 두 기술 모두 자바스크립트 생태계에서 중요한 위치를 차지하고 있지만, 활용 목적과 강점이 다르기 때문에 Next.js는 React 기반의 프론트엔드 프레임워크로 빠른 렌더링과 뛰어난 SEO 성능을 제공하며, Node.js는 백엔드 서버 런타임으로 안정적인 API 구축과 대규모 서비스 확장에 유리하다.1. Next.js와 Node.js의 개념 차이Next.js는 React 기반의 풀스택 프레임워크로, 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG), 이미지 최적화 등을 기본 제공하여 SEO와 초기 로딩 속도에 강점을 가진다.Node.js는 자바스크립트 런타임 환경으로, Express나 Nest.js 같은 프레임워크를 .. 2025. 8. 19. Java IllegalArgumentException IllegalArgumentException은 Java에서 매우 자주 발생하는 런타임 예외로, 메서드에 잘못된 인자가 전달되었을 때 발생한다. 여기서는 개념, 발생 원인, 예제 코드, 해결 방법까지 다뤄보겠다.1. IllegalArgumentException 이란?IllegalArgumentException은 메서드에 전달된 인자가 잘못되었을 때 발생하는 RuntimeException다. 체크 예외(Checked Exception)가 아니므로 throws 선언이 필요하지 않다.java.lang.Object ↳ java.lang.Throwable ↳ java.lang.Exception ↳ java.lang.RuntimeException ↳ java.lang.I.. 2025. 7. 31. Java System.out과 Logger 차이점 Java 애플리케이션 개발 시 로그를 출력하는 방식으로 System.out.println()과 Logger(SLF4J, Logback, Log4j2 등)를 사용할 수 있다. 하지만 두 방식은 운영 환경에서의 로그 관리와 보안, 성능 측면에서 큰 차이가 있다. 여기서는 System.out과 Logger의 차이점과 운영 환경에서 Logger를 사용해야 하는 이유를 정리해야지1. 개념적인 차이System.out.println(): JVM 표준 출력 스트림으로 콘솔에 단순히 메시지를 출력한다. 디버깅용으로 사용되지만 운영 환경에서는 관리가 어렵다.Logger: Logback, SLF4J, Log4j2 등 로깅 프레임워크를 통해 로그를 남긴다. 다양한 출력 대상과 로그 레벨 관리가 가능하며, 운영 환경에서 필수적.. 2025. 7. 30. DataAccessException과 시큐어코딩 보안 예외 처리 방법 DataAccessException은 Spring Framework에서 제공하는 데이터 접근 계층의 최상위 예외 클래스다. JDBC, JPA, Hibernate 등 다양한 기술에서 발생하는 데이터베이스 예외를 일관성 있게 처리할 수 있도록 설계되어 있다. 시큐어코딩 관점에서 SQL 에러 메시지를 사용자에게 노출하지 않고 안전하게 처리할 수 있다는 점에서 매우 중요하다.1. DataAccessException의 개념Spring의 org.springframework.dao.DataAccessException 클래스에 포함됨RuntimeException을 상속하여 throws 선언 없이 사용 가능기술별 예외를 추상화하여 일관된 예외 처리 가능2. 주요 하위 예외 클래스DataIntegrityViolationE.. 2025. 7. 29. 실전 Dockerfile 예제 및 AWS, Azure에서 Docker 사용 1. Dockerfile 예제: Node.js Express 서버아래는 Node.js 기반의 Express 웹 서버를 Docker로 실행하기 위한 Dockerfile 예제# 베이스 이미지FROM node:18# 앱 디렉토리 생성WORKDIR /usr/src/app# 종속성 설치COPY package*.json ./RUN npm install# 애플리케이션 소스 복사COPY . .# 애플리케이션 포트EXPOSE 3000# 실행 명령CMD [ "node", "app.js" ] 해당 Dockerfile을 사용하면 Node.js 서버가 3000번 포트에서 실행되며, 로컬 개발 환경과 동일한 결과를 얻을 수 있다.빌드 및 실행 명령어docker build -t my-node-app .docker run -p 3.. 2025. 7. 20. 이전 1 2 3 4 ··· 24 다음