자바 6

Java의 Error와 Exception 차이점

Java에서 Error와 Exception은 모두 실행 중 발생할 수 있는 문제지만, 그 개념과 처리 방식이 다릅니다.이번 글에서는 Error와 Exception의 차이점과 예제 코드를 통해 이를 자세히 살펴보겠습니다. 1. Error와 Exception 개념Java에서 발생하는 실행 오류는 크게 두 가지로 나뉩니다.Error : 시스템 레벨에서 발생하는 치명적인 오류 (프로그램 복구 불가능)Exception : 프로그램 실행 중 발생하는 예외 상황 (개발자가 처리 가능)이 둘은 모두 Throwable 클래스를 상속받습니다.🔹 Throwable 클래스 계층 구조java.lang.Throwable ├── java.lang.Error (복구 불가능) └── java.lang.Exception ..

백엔드 2025.02.15

Java 메모리 영역과 동작 원리

Java는 메모리 관리를 자동으로 수행하는 가비지 컬렉터(Garbage Collector, GC) 를 제공하여 개발자가 직접 메모리를 해제하지 않아도 됩니다. 하지만 효율적인 Java 애플리케이션을 개발하기 위해서는 Java의 메모리 구조를 이해하는 것이 중요합니다.이번 글에서는 Java의 메모리 영역과 그 동작 방식을 자세히 살펴보겠습니다.1. Java 메모리 구조 개요Java 애플리케이션이 실행될 때, JVM(Java Virtual Machine) 은 여러 개의 메모리 영역을 관리합니다. JVM 메모리는 크게 Method Area, Heap, Stack, PC Register, Native Method Stack 으로 나뉩니다.🔹 Java 메모리 영역 구성메모리 영역설명Method Area (메서드..

백엔드 2025.02.14

[자바/JAVA] 객체는 뭐로 만들어? Class, Interface, Record?

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영합니다! Java에서 DTO(Data Transfer Object)는 데이터 전송을 위해 사용되는 객체로, 일반적으로 여러 계층(Controller → Service → Repository) 간 데이터를 주고받을 때 활용됩니다.DTO를 만들 때 사용할 수 있는 방법으로 class, record, interface 등이 있으며, 이 글에서는 각 방식의 차이점과 장단점을 살펴본 후, DTO에 자주 사용하는 어노테이션까지 정리해 보겠습니다.1. class를 이용한 DTO🔹 특징일반적인 클래스를 사용하여 DTO를 정의필드, 생성자, getter/setter, toString(), equals(), hashCode() 등을..

백엔드 2025.02.12

[자바/JAVA] DAO, DTO, VO, Entity의 차이점과 역할

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다! Java에서 데이터 관리를 위해 자주 사용되는 개념으로 DAO(Data Access Object), DTO(Data Transfer Object), VO(Value Object), Entity가 있습니다. 각각의 개념이 무엇이며 어떤 역할을 하는지, 그리고 실무에서 어떻게 활용되는지를 정리해 보겠습니다.1. DAO (Data Access Object)📌 정의DAO는 데이터베이스와 직접적으로 상호 작용하는 객체입니다. 주로 SQL 쿼리를 실행하고, 데이터를 조회·삽입·수정·삭제하는 역할을 합니다.📌 역할데이터베이스와 애플리케이션 간의 데이터 전달을 담당SQL 실행 및 트랜잭션 관리데이터베이스 연결 및 자원..

백엔드 2025.02.11

[자바/JAVA] 자바 스프링 AOP(Aspect-Oriented Programming) 이해하기

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다!1. AOP란?AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 공통 관심 사항(cross-cutting concerns) 을 분리하여 모듈화하는 프로그래밍 기법입니다. 스프링 AOP는 주로 로그, 트랜잭션, 보안, 예외 처리 같은 공통적인 기능을 분리하여 관리할 때 사용됩니다.기존의 객체지향 프로그래밍(OOP)에서는 관심사(비즈니스 로직) 와 공통 기능(로깅, 보안 등) 이 뒤섞이기 쉬운데, AOP를 사용하면 핵심 로직과 공통 기능을 분리할 수 있습니다.2. AOP 핵심 개념🎯 Aspect(애스펙트)공통 기능을 정의하는 모듈입니다.예를 들어, 로깅 기능을 @Aspect로 ..

백엔드 2025.02.08

[자바/JAVA] 스프링 기술 면접 질문 및 답변 정리

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다! Spring 프레임워크는 자바 백엔드 개발에서 가장 많이 사용되는 프레임워크 중 하나로, 기술 면접에서도 자주 출제됩니다. 이번 글에서는 스프링 기본 개념, Spring Boot, Spring MVC, Spring Security, Spring Data JPA, 트랜잭션 관리 등 주요 기술 면접 질문과 답변을 정리해보겠습니다.1. Spring 프레임워크란?✅ 답변:Spring은 자바 기반의 엔터프라이즈 애플리케이션을 개발하기 위한 경량 프레임워크입니다. **의존성 주입(Dependency Injection, DI)**과 제어의 역전(Inversion of Control, IoC) 개념을 기반으로 애플리케이션..

백엔드 2025.02.01