본문 바로가기

전체 글

(86)
Oracle PL/SQL 프로시저 작성법: 기본 개념과 실습 예제 프로시저란?프로시저(Procedure)는 특정 작업을 수행하기 위해 미리 정의해두고, 필요할 때마다 호출하여 실행할 수 있는 서브 프로그램입니다. 데이터베이스에서 자주 사용되는 작업들을 자동화하고, 반복적인 코드 작성을 방지할 수 있어 효율적인 관리가 가능합니다. 프로시저의 주요 특징입력 파라미터와 출력 파라미터를 사용하여 외부 데이터를 받아서 처리합니다.반복적인 작업을 함수처럼 자동화할 수 있습니다.여러 SQL 문장을 하나의 실행 단위로 묶을 수 있어 코드 유지보수성이 좋아집니다.이번 포스팅에서는 Oracle PL/SQL에서 프로시저를 작성하는 방법과, 이를 활용한 실습 예제를 살펴보겠습니다. 1. 기본적인 프로시저 작성법프로시저는 CREATE PROCEDURE 구문을 사용하여 생성합니다. 기본적인 ..
OutOfMemoryError 발생 상황과 해결 방법 1. Java heap space발생 징후java.lang.OutOfMemoryError: Java heap spaceGC 로그에 Full GC 반복 + 힙 회수량 저조해결 절차1단계. GC 로그 확인java -Xlog:gc* -Xmx2g -Xms2g -jar app.jarFull GC가 자주 발생하고 회수량이 적다면 힙 사이즈 부족 가능성2단계. 힙 덤프 생성-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof애플리케이션 실행 시 옵션으로 추가하여 OOM 발생 시 메모리 상태를 기록3단계. 힙 분석 도구 사용 (예: Eclipse MAT)덤프 파일(.hprof)을 Eclipse MAT에서 열어 Dominator Tree 분석객체 점유..
JVM의 구조와 GC(Garbage Collection) 방식 이해하기 1. JVM이란?JVM(Java Virtual Machine)은 자바 애플리케이션을 실행하기 위한 가상 머신이다. 자바로 작성된 코드는 .java → .class 파일로 컴파일되고, 이 바이트코드를 JVM이 해석하거나 컴파일하여 실행한다.JVM은 운영체제 위에서 동작하며, 자바 프로그램이 플랫폼에 독립적으로 실행될 수 있도록 해주는 핵심 요소다.2. JVM의 주요 구성 요소JVM은 크게 실행 엔진과 메모리 영역으로 나뉘며, 각 구성 요소는 다음과 같은 역할을 수행한다.2.1 Class Loader Subsystem클래스 파일을 메모리로 로드하고, 검증 및 초기화 과정을 수행한다.2.2 Runtime Data Area (메모리 영역)JVM이 애플리케이션을 실행하는 동안 사용하는 메모리 공간이다. 영역 설..
Oracle MERGE 성능 이슈 및 해결 사례 Oracle 환경에서 대용량 MERGE 문을 실행할 때, 성능 저하 및 Snapshot too old 오류가 발생하는 사례는 종종 존재한다. 본 글에서는 실무 중 경험한 실제 사례를 바탕으로, 문제 상황 분석과 해결 방안을 기술하며, MERGE 시 주의해야 할 뷰 사용 패턴에 대해서도 정리한다.문제 상황운영 배치에서 아래와 같은 형태의 MERGE 문을 사용 중이었다.MERGE INTO AUSING ( SELECT ID, ID2, COUNT(*) AS CNT FROM B GROUP BY ID, ID2) BON (A.ID = B.ID AND A.ID2 = B.ID2)WHEN MATCHED THEN UPDATE SET A.CNT = B.CNTWHERE A.DATE = TO_DATE('2025-04-17..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 7. JVM, GC, 자바 런타임 메커니즘 자바 면접에서 빠지지 않고 나오는 분야 중 하나가 바로 JVM과 가비지 컬렉션(GC) 관련 질문입니다."자바는 자동 메모리 관리 언어라며? 그런데 왜 GC를 그렇게 묻는 걸까?"이 질문에 대해선 아주 명확한 답이 있습니다.바로, JVM과 GC에 대한 이해도가 시스템의 성능과 안정성을 좌우하기 때문입니다.이번 포스트에서는 JVM의 구조부터 GC의 종류, 메모리 누수 사례, 그리고 실행 흐름까지, 면접에 꼭 나오는 핵심 개념만 정리해봤습니다.1. JVM의 구조와 역할JVM(Java Virtual Machine)은 자바 바이트코드를 실행하는 가상 머신으로, 다음과 같은 구조로 구성됩니다:Class Loader: .class 파일을 메모리에 로딩Runtime Data AreasHeap: 객체 저장 (GC 대상)..
JAVA 자주 나오는 자바 면접 질문 30개 예시 1. 자바란 무엇인가요?답변: 자바는 객체지향 프로그래밍 언어로, 플랫폼 독립적이며 JVM을 통해 다양한 운영체제에서 실행됩니다. "Write Once, Run Anywhere" 원칙을 따릅니다.2. 자바의 특징은 무엇인가요?답변: 자바는 객체지향, 플랫폼 독립성, 자동 메모리 관리, 멀티스레딩 지원, 강력한 보안, 네트워크 프로그래밍이 용이한 특징이 있습니다.3. 자바에서 오버라이딩과 오버로딩의 차이점은 무엇인가요?답변: 오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것이며, 오버로딩은 메서드 이름은 같지만 매개변수의 수나 타입을 다르게 하여 여러 메서드를 정의하는 것입니다.4. 자바에서 예외 처리란 무엇인가요?답변: 예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하여 프로그..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 6. 스프링 MVC & REST API 설계 1. 스프링 MVC 구조에 대해 설명하시오스프링 MVC는 Model-View-Controller 디자인 패턴을 기반으로 한 웹 프레임워크이다. 각 구성요소는 다음과 같은 역할을 수행한다:Controller: 요청 처리, 서비스 호출, 뷰 이름 반환Service: 비즈니스 로직 수행Repository (DAO): 데이터 접근 계층 (JPA, JDBC 등)Model: 응답 데이터 또는 뷰에 전달할 데이터View: 사용자에게 보여줄 화면 (HTML, JSON 등)이러한 구성은 역할과 책임을 명확히 분리하여 유지보수성과 테스트 용이성을 높이는 데 기여한다.2. RESTful API란 무엇이며, 설계 시 지켜야 할 원칙은?REST는 자원의 표현(Representation)을 통해 상태(State)를 전달하는 아키..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 5. 예외 처리, 로깅, 설계 패턴 1. 자바의 예외 처리 방식과 Checked/Unchecked 예외의 차이점자바에서 예외는 프로그램 실행 중 발생할 수 있는 오류 상황을 처리하기 위한 메커니즘이다. 예외는 크게 두 가지로 구분된다.Checked Exception: 컴파일 타임에 확인되며, 반드시 try-catch 구문 또는 throws 키워드로 처리해야 한다.Unchecked Exception: 런타임 시 발생하며, 명시적 예외 처리를 강제하지 않는다.실무에서는 대부분 Unchecked Exception을 활용하여 예외 흐름을 간결하게 유지하고, 예외 처리 정책을 통합적으로 관리하는 방향으로 설계한다.2. 전역 예외 처리(Global Exception Handling) 전략스프링 프레임워크에서는 전역 예외 처리 방식으로 @Control..

반응형