산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

2026년판 J2EE 면접 질문 및 답변 Top 40

2026년판 J2EE 면접 질문 및 답변 Top 40

J2EE/Jakarta EE 면접을 준비 중이신가요? 이 종합 가이드는 아키텍처, 컴포넌트, 패턴, 실전 트러블슈팅을 아우르는 40가지 핵심 기술 질문과 10가지 행동/시나리오 질문 및 전략적 모범 답변을 다룹니다. 고전적인 J2EE 기초를 유지하면서 현대적인 Jakarta EE 맥락에 맞게 업데이트되었습니다.

👉 무료 PDF 다운로드: J2EE 면접 질문 및 답변

핵심 아키텍처 및 플랫폼 기초

1. J2EE 아키텍처 및 핵심 특징

J2EE는 표현, 비즈니스 로직, 데이터 계층을 분리하여 확장성과 유지보수성을 위한 멀티티어 분산 모델을 정의합니다. 컨테이너 관리 서비스(보안, 트랜잭션, 동시성)를 제공하는 표준화된 런타임을 통해 컴포넌트 재사용성과 모듈식 배포를 가능하게 합니다.

계층기술책임
표현Servlet, JSP, JSFUI 처리
비즈니스EJB (세션, 메시지 기반)비즈니스 로직
통합JCA외부 시스템 (ERP, 메인프레임)
데이터JDBC, JPA/ORM데이터베이스 접근

예시: 뱅킹 포털: 대시보드용 Servlet, 트랜잭션용 EJB, 계좌 데이터용 JDBC.

2. J2EE vs Java SE

Java SE = 핵심 언어, API, 유틸리티. J2EE = 엔터프라이즈 확장: 컨테이너, EJB, Servlet, JMS, JDBC, JPA, JTA, JAAS. Java SE는 데스크톱 도구 구축; J2EE는 분산, 트랜잭션, 보안 엔터프라이즈 시스템 구축.

이점설명
컴포넌트 기반모듈식 개발
표준화된 APIEJB, Servlet, JMS, JDBC, JPA
내장 서비스트랜잭션, 보안, 풀링
분산 컴퓨팅RMI, JMS, JCA 통합

3. EJB 유형 및 용도

EJB 유형특성용도
스테이트리스 세션클라이언트 상태 없음, 풀링결제 처리, 검증
스테이트풀 세션대화 상태 유지쇼핑 카트, 위저드
싱글톤 세션앱당 단일 인스턴스, 공유 상태캐시, 카운터, 설정
메시지 기반 (MDB)비동기 JMS 소비자, 인터페이스 없음이벤트 처리, 주문 큐
엔티티 (레거시)JPA 엔티티로 대체사용 중단

4. 서블릿 수명 주기 및 CGI 대비 장점

  1. 로드 및 인스턴스화 컨테이너에 의해
  2. 초기화 init()를 통해
  3. 요청 처리 service(), doGet()/doPost()를 통해
  4. 소멸 destroy()를 통해
서블릿CGI
스레드 기반, 고성능프로세스 기반, 느림
메모리 효율성 우수높은 리소스 소비
통합 Java 생태계언어 종속적

단일 인스턴스가 수천 요청 처리 vs CGI의 요청당 프로세스 생성.

5. 표현 계층에서 JSP vs 서블릿

요소JSP 선택서블릿 선택
출력 특성임베디드 Java가 있는 HTML 위주최소 HTML, 로직 중심
복잡한 로직지양전처리, 계산
유지보수성깔끔한 분리컨트롤러 역할 (MVC)

모범 사례: JSP는 뷰, 서블릿은 컨트롤러로 사용.

6. J2EE에서 JDBC: 장단점

장점단점
단순한 SQL API보일러플레이트 코드
벤더 독립적잘못 사용 시 SQL 인젝션 위험
모든 RDBMS와 작동수동 리소스 관리

일반적으로 DAO나 ORM(Hibernate/JPA)으로 래핑하여 추상화.

7. 트랜잭션 관리 유형

유형설명
컨테이너 관리 (CMT)어노테이션(@TransactionAttribute)으로 선언적; 컨테이너가 begin/commit/rollback 처리
빈 관리 (BMT)UserTransaction으로 프로그래밍 방식; 개발자가 경계 제어
JTA리소스 간 분산/글로벌 트랜잭션을 위한 표준 API

예시: 자금 이체는 원자성 필요; CMT가 실패 시 자동 롤백.

8. JNDI vs RMI

특성JNDIRMI
목적리소스 조회 (네이밍/디렉터리)원격 메서드 호출
용도DataSource, EJB, JMS 큐 획득원격 EJB 메서드 호출

JNDI는 위치 파악; RMI는 통신.

9. JMS: 비동기 메시징 이점

예시: 이커머스에서 주문 확인 큐잉; 체크아웃 즉시 응답.

10. JSP 태그 유형

태그 유형목적예시
지시자페이지 설정<%@ page %>
스크립팅Java 임베드<% %>
액션서버 컴포넌트<jsp:include>
표현 언어 (EL)데이터 접근${user.name}
커스텀재사용 가능한 태그라이브러리<my:table>

11. J2EE에서의 MVC

컴포넌트기술역할
모델POJO, EJB, JPA 엔티티비즈니스 로직, 상태
뷰JSP, JSTL, JSF데이터 렌더링
컨트롤러서블릿, 프론트 컨트롤러요청 디스패치, 흐름 제어

UI/백엔드 병렬 작업 가능.

12. 필터: 횡단 관심사

Filter 인터페이스(init, doFilter, destroy)로 요청/응답 가로채기. 체인 가능. 용도: 인증, 로깅, 압축, 검증.

장점설명
중앙화된 로직횡단 관심사를 한 곳에서 처리
재사용 가능여러 엔드포인트에 적용
깔끔한 서블릿보일러플레이트 제거
쉬운 설정web.xml 또는 @WebFilter

13. DAO 패턴: 언제 & 왜?

DB 접근을 인터페이스 뒤로 캡슐화; 지속성을 비즈니스 로직에서 분리. 이점: JDBC/Hibernate/JPA 교체 가능, 테스트용 모킹, 접근 패턴 표준화.

interface CustomerDAO { Customer findById(Long id); }

14. 보안 구현 방법

방법설명예시
선언적web.xml / 어노테이션역할 기반 접근
프로그래밍 방식코드에서 체크request.isUserInRole("ADMIN")
JAAS플러그 가능한 인증 프레임워크엔터프라이즈 SSO
HTTPS/SSL전송 암호화보안 로그인

15. 애플리케이션 서버 vs 웹 서버

특성앱 서버 (WebLogic, WildFly)웹 서버 (Apache HTTPD, Nginx)
EJB 지원예아니오
트랜잭션 관리내장없음
JMS사용 가능아니오
복잡성높음낮음

16. 세션 관리 기법

방법장점단점
쿠키단순, 자동비활성화 가능
URL 재작성쿠키 없이 작동긴 URL, 보안 위험
HttpSession쉬운 API, 서버 사이드메모리 소비
숨김 필드폼에 단순POST만 가능

뱅킹: HttpSession + 짧은 타임아웃.

17. 좋은 J2EE 설계 특징

18. EL & JSTL: 스크립틀릿 감소

EL: ${customer.name}
JSTL 루프:

<c:forEach var="item" items="${cart.items}"> ${item.name} </c:forEach>

더 깔끔한 페이지; 프론트엔드 개발자가 Java 지식 덜 필요.

19. 일반적인 J2EE 디자인 패턴

패턴이점
프론트 컨트롤러중앙화된 요청 처리
DAO지속성 분리
비즈니스 델리게이트표현 계층 복잡도 감소
서비스 로케이터JNDI 조회 캐싱
MVC체계적인 UI 아키텍처

20. 커넥션 풀링: 성능 필수

DataSource(JNDI)를 통해 미리 생성된 DB 커넥션 재사용. 컨테이너가 수명 주기, 동시성, 크기 관리. 이점: 빠른 접근, 낮은 리소스 사용, 더 나은 확장성, 신뢰성.

21. 배포 설명자 (web.xml) 관련성

서블릿 매핑, 필터, 리스너, 보안 제약, 세션 설정을 위한 중앙화된 설정. 여전히 환경별 오버라이드, 감사, 엄격한 보안 매핑에 중요—많은 기업이 어노테이션만으로는 선호하지 않음.

22. 스테이트리스 vs 스테이트풀 세션 빈

속성스테이트리스스테이트풀
상태없음클라이언트별
확장성높음보통
용도결제, 검증쇼핑 카트, 위저드
수명 주기짧음김, 패시베이션/액티베이션

23. 인터셉터: 모듈식 횡단 로직

@Interceptor + @InterceptorBinding으로 로깅, 감사, 트랜잭션 체크. 이점: 모듈식, 보일러플레이트 감소, 구성 가능한 우선순위.

24. 리소스 주입

어노테이션주입 대상예시
@ResourceDataSource, JMS, 환경 엔트리@Resource DataSource ds;
@EJB엔터프라이즈 빈@EJB OrderService svc;
@PersistenceContextJPA EntityManager@PersistenceContext EntityManager em;

수동 JNDI 조회 제거; 더 깔끔하고 테스트 가능.

25. JCA: 레거시 시스템 통합

리소스 어댑터가 트랜잭션, 보안, 풀링을 관리하며 ERP, 메인프레임, 메시징과 연결하는 표준화된 프레임워크. 인바운드(이벤트 기반) 및 아웃바운드 통신 지원.

예시: 뱅킹 JCA 어댑터 → 고객 레코드용 COBOL 코어.

26. 클래스 로더 및 배포 격리

앱별 클래스 로더가 의존성 격리, 충돌 방지, 핫 디플로이먼트 지원, 공유 라이브러리 가시성 제어. ClassNotFoundException / 버전 충돌 해결.

27. 확장성 요소 및 성능 튜닝

요소영향
세션 크기클수록 확장성 낮음
DB 인덱싱나쁘면 높은 지연
캐싱 전략비싼 연산 감소
풀 설정동시성/처리량 제어

튜닝: 스테이트리스 EJB, 비동기 메시징(JMS), 스레드 풀, JVM GC, 프로파일링(JProfiler).

28. 메시지 기반 빈 (MDB)

특성MDB세션 빈
상호작용비동기 (JMS)동기
인터페이스없음로컬/원격
상태스테이트리스상태풀 가능

이벤트 기반 분리.

29. JPA vs 엔티티 빈

30. 서블릿-EJB 통신 및 패턴

JNDI 조회 또는 @EJB 주입으로. 분리 패턴:

패턴목적
비즈니스 델리게이트EJB 복잡성 추상화
서비스 로케이터JNDI 조회 캐싱
세션 퍼사드거친 단위 연산

31. 프론트 컨트롤러 패턴

단일 컨트롤러(ActionServlet/DispatcherServlet)가 요청 디스패치, 인증, 로깅, 뷰 선택을 중앙화. Struts ActionServlet, Spring MVC DispatcherServlet이 구현.

32. EJB 수명 주기 및 리소스 관리

빈 유형단계
스테이트리스인스턴스화 → 풀 → 메서드 호출 → 소멸
스테이트풀인스턴스화 → 메서드 호출 → 패시베이트 → 액티베이트 → 소멸
MDB인스턴스화 → 메시지 처리 → 소멸

컨테이너 풀링이 부하 하에서 리소스 사용 최적화.

33. 성능 개선 기법

34. WAR vs EAR 패키징

특성WAREAR
웹 컴포넌트예예
EJB 모듈아니오예
적합한 대상웹 앱엔터프라이즈 앱
배포단일 모듈멀티 모듈

35. 로깅 프레임워크 및 선택 요소

JUL, Log4j2, Logback, 서버 통합. 선택 기준: 비동기 어펜더 (Logback 우수), 설정 유연성 (XML/JSON/Properties), 서버 통합, 동시성 하 성능.

36. 애플리케이션 수명 주기의 리스너

리스너목적
ServletContextListener앱 시작/종료 초기화
HttpSessionListener세션 생성/소멸 추적
ServletRequestListener요청 로깅/추적

비즈니스 코드 건드리지 않고 이벤트 기반 모니터링.

37. 컨테이너 특징 및 엔터프라이즈 서비스

EJB 컨테이너가 예외 발생 시 트랜잭션 자동 롤백.

38. 클러스터링: 신뢰성 & 확장성

장점설명
고가용성단일 장애 지점 없음
로드 밸런싱요청 분산
페일오버원활한 크래시 복구
확장성트래픽 증가 시 노드 추가

세션 복제로 사용자 상태 보존. 항공권 예약이 연휴 피크 처리.

39. 서비스 로케이터 패턴

EJB, DataSource, JMS에 대한 JNDI 조회 중앙화/캐싱. 해결: 반복 조회 오버헤드, 복잡한 네이밍 로직, 단일 접근 지점.

40. 스테이트풀 세션 빈 단점 및 완화책

단점완화책
메모리 오버헤드세션 데이터 최소화
클러스터링 복잡성세션 복제 활성화
긴 수명 주기대화형 상태 필요할 때만 사용

🔍 실전 시나리오 질문 (행동 및 상황 기반)

완전한 문장; 필수 문구 각각 정확히 한 번씩 사용.

1. J2EE 아키텍처의 핵심 구성 요소는?

기대: 멀티티어, 주요 API.
답변: "J2EE 아키텍처의 핵심 구성 요소에는 클라이언트 티어, 웹 티어, 비즈니스 티어, 엔터프라이즈 정보 시스템 티어가 포함됩니다. 이 계층들은 Servlet, JSP, EJB, JMS, JDBC와 같은 기술을 사용하여 함께 작동하며 확장 가능하고 모듈화된 엔터프라이즈 솔루션을 제공합니다."

2. 서블릿과 JSP의 차이점?

기대: 요청 처리 vs 뷰 렌더링.
답변: "서블릿은 주로 요청 처리와 비즈니스 로직에 사용되는 반면, JSP는 HTML 내에 Java를 임베드하여 동적 웹 콘텐츠 생성을 단순화하도록 설계되었습니다. JSP는 일반적으로 표현 로직에 사용되고 서블릿은 복잡한 처리를 담당합니다."

3. J2EE에서 트랜잭션 관리?

기대: JTA, CMT vs BMT.
답변: "J2EE 애플리케이션은 Java Transaction API를 사용하여 분산 트랜잭션을 관리합니다. 컨테이너 관리 트랜잭션은 애플리케이션 서버가 경계를 제어하도록 하여 이 과정을 단순화하는 반면, 빈 관리 트랜잭션은 개발자에게 더 세밀한 제어를 제공합니다."

4. 까다로운 J2EE 앱과 성공 요인?

기대: 문제 해결, 팀워크.
답변: "이전 직장에서 엄격한 보안과 고가용성이 요구되는 대규모 금융 애플리케이션을 작업했습니다. 비즈니스 로직에 EJB를 구현하고 커넥션 풀링을 최적화하며 보안 팀과 긴밀히 협력하여 규정 준수 요구 사항을 충족함으로써 성공을 보장했습니다."

5. 민감한 데이터를 위한 안전한 J2EE 앱 설계?

기대: 인증, 인가, 암호화, 안전한 코딩.
답변: "인증과 인가에 JAAS를 사용하고, 안전한 통신을 위해 HTTPS를 구현하며, 모든 입력을 검증하고, 민감한 데이터를 저장 시 암호화하겠습니다. 또한 애플리케이션 서버가 모범 사례에 따라 강화되었는지 확인하겠습니다."

6. J2EE에서 프로덕션 이슈 트러블슈팅?

기대: 압박 대응, 근본 원인 분석.
답변: "이전 직장에서 스레드 덤프를 분석하고 JDBC 커넥션 사용량을 검토하여 성능 저하 이슈를 조사했습니다. 커넥션 누수를 식별한 후 적절한 리소스 정리를 구현하고 재발 방지를 위한 모니터링 알림을 추가했습니다."

7. EJB가 확장성 & 유지보수성 지원하는 방법?

기대: 풀링, 수명 주기, 모듈성.
답변: "EJB는 컨테이너 관리 풀링, 비동기 처리, 분산 배포를 통해 확장성을 지원합니다. 또한 비즈니스 로직을 표현 및 인프라 관심사에서 분리함으로써 유지보수성을 향상시킵니다."

8. 느린 DB 성능 트러블슈팅 단계?

기대: 논리적 병목 분석.
답변: "SQL 실행 계획 분석, 누락된 인덱스 확인, 커넥션 풀 구성 검토로 시작하겠습니다. 그런 다음 J2EE 프레임워크를 사용한 캐싱 전략을 살펴보고 반복 쿼리를 줄이겠습니다."

9. J2EE 프로젝트 간 경쟁 우선순위?

기대: 시간 관리, 커뮤니케이션.
답변: "지난 직장에서 비즈니스 영향을 평가하고 이해관계자와 명확히 소통하며 복잡한 개발 작업을 관리 가능한 세그먼트로 분해함으로써 경쟁하는 작업을 관리했습니다. 이를 통해 품질 저하 없이 일관되게 제공할 수 있었습니다."

10. 레거시 J2EE를 Jakarta EE/모던으로 마이그레이션?

기대: 현대화 전략, 컨테이너화.
답변: "사용 중단된 API 평가, 라이브러리를 Jakarta EE 패키지로 업데이트, 애플리케이션 모듈화로 시작하겠습니다. 이전 직장에서 이 접근 방식을 사용하여 최신 서버로 애플리케이션을 성공적으로 마이그레이션하면서 다운타임을 줄였습니다."

java

  1. Java 'this' 키워드 마스터하기: 목적, 사용법, 실전 예제
  2. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  3. Scala 면접 질문 및 답변 Top 25 – PDF 가이드
  4. Java 난수 생성: Random 클래스와 Math.random 실전 가이드
  5. 2026년판 J2EE 면접 질문 및 답변 Top 40
  6. 자바 캡슐화: 안전한 데이터 은닉과 제어
  7. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  8. Java InputStream 클래스: 핵심 메서드와 FileInputStream 실전 예제
  9. Java 10 기능 집중: 지역 변수 타입 추론 마스터하기
  10. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설