본문 바로가기

전체 글

(88)
면접에서 진짜 자주 나오는 자바 질문 - 섹션 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..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 4. 자바 8 핵심 기능 1. 람다 표현식 (Lambda Expressions)람다(Lambda)는 익명 함수(Anonymous Function)를 표현하는 방식으로, 간결한 코드 작성과 컬렉션 처리 간소화에 큰 기여를 했다.// 기존 방식Comparator comp = new Comparator() { public int compare(String a, String b) { return a.compareTo(b); }};// 람다 표현식Comparator comp = (a, b) -> a.compareTo(b);장점: 익명 객체 작성의 번거로움 제거, 가독성 향상실무 활용: 정렬, 이벤트 처리, Stream 내부 처리 등람다는 함수형 인터페이스를 구현하는 데 사용되며, 코드의 명확성과 유연성을 높여준다...
면접에서 진짜 자주 나오는 자바 질문 - 섹션 3. 자바 동시성 및 멀티스레딩 1. 자바에서 스레드(Thread)를 생성하는 방법과 차이점자바에서 스레드를 생성하는 방법은 대표적으로 3가지가 있다:Thread 클래스 상속Runnable 인터페이스 구현ExecutorService 또는 Callable을 이용한 Thread Pool 방식// 1. Thread 상속class MyThread extends Thread { public void run() { System.out.println("Thread 실행!"); }}// 2. Runnable 구현class MyRunnable implements Runnable { public void run() { System.out.println("Runnable 실행!"); }}// 3. Execut..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 2. 자바 고급 개념 1. 자바의 컬렉션 프레임워크 (Collection Framework)자바의 컬렉션 프레임워크는 데이터를 저장하고 처리하는데 필요한 클래스들과 인터페이스들을 제공하는 라이브러리이다. 컬렉션 프레임워크는 크게 List, Set, Map으로 구분되며, 각 컬렉션 타입은 데이터를 관리하는 방식과 특징에 따라 다르게 설계된다.List: 순서가 있는 데이터 집합으로, 중복된 값을 허용한다. 인덱스를 사용하여 데이터에 접근할 수 있다. 대표적인 구현체는 ArrayList, LinkedList, Vector가 있다.Set: 순서가 없고 중복을 허용하지 않는 데이터 집합이다. 예를 들어, HashSet, TreeSet, LinkedHashSet 등이 있다. 중복을 제거하는데 유용하다.Map: 키-값 쌍으로 데이터를 저..
면접에서 진짜 자주 나오는 자바 질문 - 섹션 1. 자바 기본 개념 1. 자바에서 객체 지향 프로그래밍(OOP)의 주요 특징자바는 객체 지향 프로그래밍(OOP, Object-Oriented Programming)을 지원하는 언어이다. 객체 지향 프로그래밍의 주요 특징은 다음과 같다:캡슐화(Encapsulation): 데이터와 그 데이터를 처리하는 메서드를 하나로 묶는 개념이다. 객체 내부의 상태는 직접 접근할 수 없고, 외부에서 접근할 때는 메서드를 통해서만 이루어진다. 이를 통해 객체의 상태를 보호하고, 불필요한 외부 간섭을 차단할 수 있다.상속(Inheritance): 부모 클래스의 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있게 해주는 개념이다. 이를 통해 코드 재사용성과 유지보수성이 향상된다. 상속을 사용하면 계층적인 구조를 만들 수 있으며, 다형성과 결합..
SQL에서 IN, NOT IN vs EXISTS, NOT EXISTS 차이 — 그리고 NULL에 대한 함정 SQL에서 서브쿼리를 사용할 때 NOT IN과 NOT EXISTS는 자주 혼용되지만, 두 연산자는 내부적으로 전혀 다른 방식으로 작동한다. 특히 서브쿼리 결과에 NULL이 포함될 경우, 이 차이는 실질적인 결과의 차이로 이어지며, 예상치 못한 버그를 유발할 수 있다.본 문서에서는 NOT IN과 NOT EXISTS의 개념적 차이뿐 아니라 IN, EXISTS와의 비교, 그리고 NULL이 포함된 경우의 동작 방식까지 예제를 통해 알아보자.1. IN vs EXISTS, NOT IN vs NOT EXISTSININ은 서브쿼리 결과 또는 값 리스트에 포함되는지 여부를 비교한다. 리스트형 비교로 이해할 수 있다.SELECT * FROM employees WHERE department_id IN ( SELECT ..
Oracle DB에서 Redo 로그, Undo, 아카이브 로그의 개념 정리 Oracle Database는 안정성과 일관성을 보장하기 위한 다양한 메커니즘을 제공한다. 그 중에서도 Redo 로그(Redo Log), Undo, 아카이브 로그(Archive Log)는 트랜잭션 복구, 장애 대응, 데이터 무결성 확보의 핵심 구성 요소다. 이 글에서는 각각의 역할과 작동 방식, 그리고 상호 관계에 대해 알아보자.1. Redo 로그 (Redo Log)정의Redo 로그는 데이터베이스에 수행된 모든 변경 작업의 이력을 기록하는 로그 파일이다. 즉, 데이터 블록에 어떤 변경이 발생했는지를 기록하여, 장애 발생 시 이를 기반으로 복구할 수 있도록 한다.특징LGWR(Log Writer) 프로세스가 변경 정보를 디스크에 기록커밋 여부와 무관하게 변경이 발생하면 Redo 로그에 먼저 기록됨SGA의 R..

반응형