본문으로 건너뛰기
SON BLOG
뒤로가기

면접 후보자 A — 서버 백엔드 / DevOps

서버 백엔드 / DevOps 엔지니어 면접 준비 자료. 경력 분석, 업무 난이도 평가, 질문 리스트

후보자 개요

  • 경력: 총 3년 8개월
  • 지원 직무: 서버 백엔드 / DevOps / SW 솔루션 엔지니어
  • 특징: 두 회사에서 모두 아키텍처(SA/AA) 역할 수행

기술 스택

분류기술
Infra / DevOpsKubernetes, Docker, Helm, VMware Tanzu, GitLab CI, Jenkins, NGINX, Private Registry
BackendJava, Spring Boot, Spring Cloud, Spring Security, OAuth2, Kafka, Redis, Oracle PL/SQL, Axon
FrontendReact, JSP, Nexacro
QualitySonarQube, PMD

경력 1: 현 직장 (2024.10 ~ 재직중, ~4개월)

직무: SA (Software Architecture) 프로젝트: 해외 국세행정시스템 구축

업무 난이도 평가

#업무난이도근거
1SSL 인증서 교체인증서 구매 → Secret 등록 → Ingress 적용. 절차만 알면 되는 정형화된 작업
2다중 OS 개발 환경 지원Windows → macOS 호환 설정 + 문서화. 환경변수/경로 차이 맞추는 수준
3VMware Tanzu 테스트 클러스터 구축Tanzu가 자동화해주는 부분이 많지만, 네트워크/스토리지 구성과 앱 배포까지 포함하면 어느 정도 경험 필요
4React CI/CD 개선빌드 파이프라인 재설계 + 업무 단위 분리는 프로젝트 구조 이해가 필요. 다만 난이도 자체는 높지 않음
5Redis 분산 세션중하Spring Session + Redis 연동은 공식 문서 따라가면 되는 편. 설정 위주 작업
6Kafka 메시징 플랫폼 운영중상파티션 전략, Replication Factor 설계, 컨슈머 리밸런싱 관리는 실운영 경험과 판단력이 필요
7Docker Hub → 내부 Registry 전환중하GitLab Registry 설정 + 기존 이미지 태그 변경/push. 작업량은 있지만 기술 난이도는 낮음

업무별 면접 질문

1. SSL 인증서 교체

  • K8s에서 인증서를 어디에 저장하고 어떻게 적용했는지? (Secret? ConfigMap?)
  • 인증서 만료 모니터링은 어떻게 했는지?
  • 갱신 절차를 “표준화”했다고 했는데, 자동 갱신인지 수동 매뉴얼인지?

2. 다중 OS 개발 환경

  • 깊이 있는 질문 포인트가 없음. 스킵 가능

3. Tanzu 클러스터 구축

  • Tanzu가 자동으로 해준 것과 본인이 직접 설정한 것의 경계는?
  • 클러스터 네트워크(CNI)는 뭘 썼고, 직접 선택한 건지?
  • 노드 장애 상황을 겪어본 적 있는지? 있다면 어떻게 대응했는지?
  • Tanzu 없이 kubeadm 등으로 직접 클러스터를 구축해본 경험이 있는지?

4. React CI/CD 개선

  • “업무 단위 빌드”가 구체적으로 뭔지? 모노레포 구조인지, 멀티레포로 분리한 건지?
  • 빌드 시간이 기존 대비 얼마나 줄었는지 수치가 있는지?
  • 파이프라인 스크립트를 직접 작성했는지, 기존 것을 수정한 건지?

5. Redis 분산 세션

  • Redis가 단일 인스턴스인지, 클러스터/센티널 구성인지?
  • Redis가 죽으면 세션은 어떻게 되는지? 장애 대응 방안이 있었는지?
  • 세션 만료 시간(TTL)은 어떻게 정했는지?
  • Sticky Session 대신 Redis를 선택한 이유는?

6. Kafka 운영 (가장 깊이 파볼 만한 영역)

  • 브로커 몇 대, 파티션 몇 개 규모로 운영했는지?
  • 파티션 수를 정한 기준이 뭔지? (Pod 수에 맞췄다고 했는데 구체적으로)
  • 메시지 유실 방지를 위해 어떤 설정을 했는지? (acks, min.insync.replicas 등)
  • 컨슈머 랙(lag)이 쌓이는 상황을 겪어봤는지? 어떻게 대응했는지?
  • Kafka를 K8s 위에 올렸는지, 별도 VM에서 운영했는지?

7. 내부 Registry 전환

  • 기존 이미지가 몇 개 정도였고, 이관 과정에서 문제가 있었는지?
  • 이미지 태그 관리 전략은? (latest 사용 여부, 버전 태깅 규칙)

경력 2: 전 직장 (2022.06 ~ 2024.09, 2년 4개월)

직무: AA (Application Architecture) 프로젝트: 원자력 관련 시스템 재구축 (공공 SI)

프로젝트 A: 시스템 재구축 (2022.07 ~ 2023.12)

주요 업무:

  • MSA 기반 업무 개발 환경 개선 및 솔루션 통합
  • 외부 솔루션 연동 5개+ (DRM, SSO, PDF, 리포팅 등)
  • CI/CD 품질 체계 구축 (SonarQube + PMD → Jenkins 통합)
  • 폐쇄망 Docker 환경 구축 (Private Registry, Docker Network Bridge 고정 IP)
  • Linux 운영 개선 (Symbolic Link 디렉터리 공유, Crontab 용량 정리 자동화)
  • WAS 전환 (JEUS → Tomcat)

프로젝트 B: 연구단 홈페이지 재구축 (2023.10 ~ 2023.12)

주요 업무:

  • 빔 이용 신청 시스템 개발 (사용자/관리자 기능)
  • UI 개선 및 오류 수정
  • SSL 보안 적용 및 인증서 관리 체계 운영 (OpenSSL 인증서 형식 변환, 갱신/교체)

프로젝트 C: 시스템 유지보수 (2024.01 ~ 2024.09)

주요 업무:

  • OS 이관 (CentOS 7.9 EOL → Rocky Linux 9.2, 독립 수행)
  • Docker, GitLab, Third Party 솔루션 환경 재구성 및 호환성 검증
  • Docker Network 및 Private Registry 재구축
  • Jenkins CI/CD 파이프라인 재설계
  • LVM 디스크 무중단 확장 (물리 디스크 증설 → 파티션 및 LVM 재구성)

업무 난이도 평가

#업무난이도근거
1폐쇄망 Docker 환경 구축중상인터넷 없이 이미지 반입/Registry 구축은 실무 난이도가 높음
2SonarQube + PMD 품질 체계도구 설치/연동 자체는 어렵지 않지만 룰셋 설계와 파이프라인 통합이 필요
3외부 솔루션 연동 5개+개별 난이도는 낮지만, 다양한 벤더 솔루션을 동시에 다루는 경험 자체가 가치
4CentOS → Rocky Linux 이관중상OS 교체 후 전체 스택 재설치/검증을 독립 수행한 건 상당한 작업량
5LVM 디스크 무중단 확장절차를 알면 되지만, 운영 중 실수하면 데이터 날릴 수 있어 부담감이 있는 작업
6연구단 홈페이지 재구축중하Spring Boot + JSP 풀스택이지만 3개월 규모의 소형 프로젝트
7WAS 전환 (JEUS → Tomcat)중하설정 마이그레이션 위주. 구조가 단순하면 어렵지 않지만 솔루션 호환성 확인 필요
8SSL 인증서 관리 체계OpenSSL 변환/적용은 정형화된 작업
9Jenkins CI/CD 파이프라인 재설계신규 OS 환경에 맞게 재구성. 기존 경험이 있으니 난이도는 보통

업무별 면접 질문

1. 폐쇄망 Docker 환경 구축

  • 폐쇄망에 Docker 이미지를 어떻게 반입했는지? (USB? 내부망 경유?)
  • Private Registry는 어떤 솔루션을 썼는지? (Docker Registry, Harbor, Nexus 등)
  • Docker Network Bridge에서 IP 대역을 고정한 이유는? 고정 안 하면 어떤 문제가 생기는지?
  • 컨테이너가 몇 개 정도 돌아가는 규모였는지?

2. SonarQube + PMD 품질 체계

  • SonarQube 품질 게이트 기준은 어떻게 설정했는지? (커버리지 몇 %, 버그 0건 등)
  • 품질 게이트 실패 시 배포가 차단되는 구조였는지, 경고만 주는 구조였는지?
  • PMD 룰은 기본 룰셋 그대로 썼는지, 프로젝트에 맞게 커스텀했는지?

3. 외부 솔루션 연동 (DRM, SSO, PDF 등)

  • 솔루션 연동 중 가장 어려웠던 것은? 어떤 점이 어려웠는지?
  • SSO 구현 시 인증 흐름을 직접 설계한 건지, 벤더 가이드대로 설치만 한 건지?
  • DRM 처리가 성능에 영향을 줬는지? 파일 용량이 클 때 문제는 없었는지?

4. CentOS → Rocky Linux 이관

  • “독립 수행”이라고 했는데, 서버 몇 대를 이관했는지?
  • 이관 후 호환성 문제가 발생한 게 있었는지? 어떻게 해결했는지?
  • 이관 시 다운타임은 얼마나 걸렸는지? 무중단으로 전환한 건지?

5. LVM 디스크 무중단 확장

  • 물리 디스크 추가 → PV → VG → LV 확장 순서를 설명할 수 있는지?
  • 파일시스템은 뭘 썼는지? (ext4, xfs 등) resize 방법의 차이를 아는지?
  • 실제로 서비스 중단 없이 했는지, 점검 시간을 잡았는지?

6. 연구단 홈페이지 재구축

  • 이 프로젝트에서 백엔드 코드를 직접 얼마나 짰는지? (API 몇 개 정도)
  • Spring Boot + JSP 조합을 쓴 이유는? (레거시 요구사항이었는지)
  • 3개월 만에 완료했는데, 혼자 풀스택으로 한 건지 역할 분담이 있었는지?

7. SSL 인증서 관리 (연구단 홈페이지)

  • OpenSSL로 인증서 형식 변환이 필요했던 이유는? (PEM ↔ JKS 등)
  • 서비스별로 다른 인증서를 적용했는지, 와일드카드 인증서를 썼는지?

8. WAS 전환 (JEUS → Tomcat)

  • 전환한 이유는? (라이선스? 성능? 운영 편의?)
  • JEUS 고유 설정이 Tomcat에서 호환 안 되는 부분이 있었는지? 어떻게 해결했는지?
  • 전환 후 성능 차이가 있었는지?

9. Jenkins CI/CD 파이프라인 재설계 (유지보수)

  • 기존 파이프라인과 재설계한 파이프라인의 차이점은?
  • Rocky Linux 전환 시 Jenkins 플러그인 호환성 문제가 있었는지?
  • Jenkinsfile을 직접 작성했는지, GUI로 설정했는지?

10. Docker/GitLab/솔루션 환경 재구성 (유지보수)

  • OS 이관 후 Docker 버전이 달라졌는지? 호환성 이슈는?
  • GitLab도 재설치했는지? 기존 데이터(레포, CI 설정 등) 마이그레이션은 어떻게 했는지?
  • Third Party 솔루션 중 Rocky Linux에서 안 돌아가는 게 있었는지?

기술 스택 심화 질문 (이력서에 있지만 경력 질문에서 빠진 항목)

Axon (CQRS / 이벤트 소싱)

  • Axon을 어떤 서비스에서 썼는지? 왜 도입했는지?
  • CQRS 패턴에서 Command와 Query를 어떻게 분리했는지?
  • 이벤트 소싱의 장단점을 실제 경험 기반으로 설명할 수 있는지?
  • 이벤트 리플레이가 필요한 상황이 있었는지?

Spring Cloud / Eureka

  • MSA에서 서비스 간 통신은 어떻게 했는지? (Eureka + RestTemplate? Feign?)
  • Eureka 서버가 죽으면 서비스 디스커버리는 어떻게 되는지?
  • API Gateway는 뭘 썼는지? (Spring Cloud Gateway? Zuul?)
  • 서비스 간 장애 전파 방지는 어떻게 했는지? (Circuit Breaker 사용 여부)

OAuth2 / Spring Security

  • OAuth2를 어떤 흐름으로 구현했는지? (Authorization Code? Client Credentials?)
  • 인증 서버를 직접 구축했는지, 외부 IdP를 연동했는지?
  • JWT를 사용했는지? 토큰 만료/갱신 전략은?
  • RBAC(역할 기반 접근 제어)을 어떻게 설계했는지?

Oracle PL/SQL

  • PL/SQL로 어떤 작업을 했는지? (프로시저? 트리거? 배치?)
  • 복잡한 쿼리 튜닝 경험이 있는지? 실행 계획을 읽을 줄 아는지?
  • ORM(JPA/MyBatis) 중 뭘 썼는지? 선택 이유는?

면접 운영 가이드

시간 배분 (총 60분 기준)

구간시간내용
인성/소프트스킬10분이직 사유, 협업 스타일, 성장 방향
경력 1 (현 직장)15분Kafka, Tanzu 중심으로 깊이 확인
경력 2 (전 직장)15분폐쇄망, OS 이관 중심으로 깊이 확인
기술 스택 심화10분Axon, Spring Cloud, OAuth2 중 이력서 대비 깊이 확인
종합 질문10분가장 어려웠던 업무, 의사결정 경험, Q&A

질문 우선순위

반드시 물어볼 것 (시간 없어도 필수)

  1. 이직 사유 (현 직장 4개월)
  2. Kafka 운영 — 규모, 파티션 전략, 장애 대응
  3. 폐쇄망 Docker 구축 — 이미지 반입 방법, 실제 규모
  4. 혼자 한 건지 팀으로 한 건지
  5. 본인이 직접 의사결정한 부분이 있는지

가능하면 물어볼 것

  1. Tanzu — 자동화 vs 직접 설정 경계
  2. CentOS → Rocky Linux 이관 — 호환성 문제, 다운타임
  3. Redis 세션 — 장애 대응, 구성 방식
  4. Spring Cloud / Eureka — MSA 서비스 간 통신 구조
  5. Oracle PL/SQL — 쿼리 튜닝 경험

시간 남으면 물어볼 것

  1. React CI/CD — 업무 단위 빌드 구체적 구현
  2. SSL 인증서 — 자동 갱신 여부
  3. WAS 전환 (JEUS → Tomcat)
  4. Axon / OAuth2

예상 답변 & 판단 기준

Kafka 운영

판단답변 예시
좋음”브로커 3대, 토픽당 파티션 6개, RF=3으로 설정. Pod 수에 맞춰 파티션을 정했고, acks=all + min.insync.replicas=2로 유실 방지”
보통”브로커 수와 파티션 수는 말할 수 있지만, acks나 ISR 설정은 기억이 잘 안 난다”
부족”시니어가 설계한 걸 따라 설정했다” / 규모를 구체적으로 말하지 못함

폐쇄망 Docker 구축

판단답변 예시
좋음”docker save/load로 tar 파일을 만들어 USB로 반입, Private Registry에 push하는 스크립트를 작성했다. 이미지 버전 관리도 했다”
보통”USB로 이미지를 가져왔다” 정도의 설명
부족반입 과정을 구체적으로 설명하지 못함

Tanzu 클러스터 구축

판단답변 예시
좋음”Tanzu가 클러스터 프로비저닝은 해줬지만, CNI 선택, 스토리지 클래스 설정, Ingress 구성은 직접 했다. kubeadm으로도 구축해본 경험이 있다”
보통”Tanzu CLI로 클러스터를 만들고 앱을 배포했다”
부족Tanzu가 해준 것과 본인이 한 것을 구분하지 못함

혼자 vs 팀 (종합 질문)

판단답변 예시
좋음역할 분담을 명확히 설명하고, 본인이 담당한 범위와 의사결정 근거를 구체적으로 말함
부족”팀에서 같이 했다” 정도로 본인의 기여도가 불명확

인성 / 소프트스킬 질문

이직 사유

  • 현 직장에 4개월밖에 안 됐는데 이직을 결심한 이유는?
  • 전 직장(2년 4개월)에서 이직한 이유는?
  • 이번 이직에서 가장 중요하게 생각하는 것은? (연봉? 기술 성장? 팀 문화?)

협업 스타일

  • 이력서에 “협업과 소통을 중시”라고 했는데, 구체적인 사례가 있는지?
  • 팀 내에서 의견 충돌이 있었던 적이 있는지? 어떻게 해결했는지?
  • SA/AA 역할에서 개발자들과 어떻게 소통했는지? (문서화? 구두? 코드 리뷰?)

성장 방향

  • 본인이 백엔드 개발자로 가고 싶은지, DevOps/인프라 쪽으로 가고 싶은지?
  • 이력서에 지원 직무를 4개나 적었는데, 가장 하고 싶은 것은?
  • 최근에 공부하고 있는 기술이 있는지?
  • 항해99 쿠버네티스 과정을 수강한 이유는?

종합 평가

강점

  • 인프라 실무 경험이 탄탄함 — Docker/K8s를 사용만 한 게 아니라 클러스터 구축, Registry 운영, OS 이관까지 직접 수행
  • 폐쇄망 환경 경험 — 인터넷 차단 환경에서의 인프라 구성은 실무에서 귀한 경험
  • SA/AA로 빠르게 올라감 — 경력 초기부터 아키텍처 역할을 맡은 건 성장 속도가 빠르다는 신호
  • Kafka + Redis + K8s 조합 — 분산 시스템 주요 컴포넌트를 다뤄봄

확인 필요 사항

  • 코딩 역량 깊이 — 이력서가 인프라/환경 구축 위주. 실제 Java/Spring Boot 코딩 비중과 비즈니스 로직 작성 경험 확인 필요
  • K8s 깊이 — Tanzu 기반이라 관리형에 가까울 수 있음. 트러블슈팅 사례 확인
  • Kafka 설계 깊이 — 실제 규모와 장애 대응 경험 확인
  • SI 경험만 있음 — 서비스 운영(트래픽 대응, 모니터링, 온콜 등) 경험 부재 가능성
  • 현 직장 재직 4개월 — 이직 사유 확인
  • CS 기초 — 학점은행제 졸업. 자료구조/알고리즘/OS/네트워크 깊이 확인
  • 솔루션 연동의 질 — 벤더 가이드 따라 설치한 수준인지, 깊이 있게 다뤘는지

종합 질문 (반드시 물어볼 것)

  • 이 업무들 중 가장 어려웠던 것과 그 이유는?
  • 4개월 안에 이 업무들을 다 했는데, 혼자 한 건지 팀으로 한 건지?
  • 본인이 직접 의사결정한 부분이 있는지? (기술 선택, 아키텍처 결정 등)

글 공유:

이전 글
XGEN 멀티사이트 배포 자동화 — 하나의 코드베이스로 N개 고객사 운영하기
다음 글
Caddy 리버스 프록시로 홈서버 HTTPS 자동화 — Nginx 수동 설정과의 비교