후보자 개요
- 경력: 총 3년 8개월
- 지원 직무: 서버 백엔드 / DevOps / SW 솔루션 엔지니어
- 특징: 두 회사에서 모두 아키텍처(SA/AA) 역할 수행
기술 스택
| 분류 | 기술 |
|---|---|
| Infra / DevOps | Kubernetes, Docker, Helm, VMware Tanzu, GitLab CI, Jenkins, NGINX, Private Registry |
| Backend | Java, Spring Boot, Spring Cloud, Spring Security, OAuth2, Kafka, Redis, Oracle PL/SQL, Axon |
| Frontend | React, JSP, Nexacro |
| Quality | SonarQube, PMD |
경력 1: 현 직장 (2024.10 ~ 재직중, ~4개월)
직무: SA (Software Architecture) 프로젝트: 해외 국세행정시스템 구축
업무 난이도 평가
| # | 업무 | 난이도 | 근거 |
|---|---|---|---|
| 1 | SSL 인증서 교체 | 하 | 인증서 구매 → Secret 등록 → Ingress 적용. 절차만 알면 되는 정형화된 작업 |
| 2 | 다중 OS 개발 환경 지원 | 하 | Windows → macOS 호환 설정 + 문서화. 환경변수/경로 차이 맞추는 수준 |
| 3 | VMware Tanzu 테스트 클러스터 구축 | 중 | Tanzu가 자동화해주는 부분이 많지만, 네트워크/스토리지 구성과 앱 배포까지 포함하면 어느 정도 경험 필요 |
| 4 | React CI/CD 개선 | 중 | 빌드 파이프라인 재설계 + 업무 단위 분리는 프로젝트 구조 이해가 필요. 다만 난이도 자체는 높지 않음 |
| 5 | Redis 분산 세션 | 중하 | Spring Session + Redis 연동은 공식 문서 따라가면 되는 편. 설정 위주 작업 |
| 6 | Kafka 메시징 플랫폼 운영 | 중상 | 파티션 전략, Replication Factor 설계, 컨슈머 리밸런싱 관리는 실운영 경험과 판단력이 필요 |
| 7 | Docker 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 구축은 실무 난이도가 높음 |
| 2 | SonarQube + PMD 품질 체계 | 중 | 도구 설치/연동 자체는 어렵지 않지만 룰셋 설계와 파이프라인 통합이 필요 |
| 3 | 외부 솔루션 연동 5개+ | 중 | 개별 난이도는 낮지만, 다양한 벤더 솔루션을 동시에 다루는 경험 자체가 가치 |
| 4 | CentOS → Rocky Linux 이관 | 중상 | OS 교체 후 전체 스택 재설치/검증을 독립 수행한 건 상당한 작업량 |
| 5 | LVM 디스크 무중단 확장 | 중 | 절차를 알면 되지만, 운영 중 실수하면 데이터 날릴 수 있어 부담감이 있는 작업 |
| 6 | 연구단 홈페이지 재구축 | 중하 | Spring Boot + JSP 풀스택이지만 3개월 규모의 소형 프로젝트 |
| 7 | WAS 전환 (JEUS → Tomcat) | 중하 | 설정 마이그레이션 위주. 구조가 단순하면 어렵지 않지만 솔루션 호환성 확인 필요 |
| 8 | SSL 인증서 관리 체계 | 하 | OpenSSL 변환/적용은 정형화된 작업 |
| 9 | Jenkins 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 |
질문 우선순위
반드시 물어볼 것 (시간 없어도 필수)
- 이직 사유 (현 직장 4개월)
- Kafka 운영 — 규모, 파티션 전략, 장애 대응
- 폐쇄망 Docker 구축 — 이미지 반입 방법, 실제 규모
- 혼자 한 건지 팀으로 한 건지
- 본인이 직접 의사결정한 부분이 있는지
가능하면 물어볼 것
- Tanzu — 자동화 vs 직접 설정 경계
- CentOS → Rocky Linux 이관 — 호환성 문제, 다운타임
- Redis 세션 — 장애 대응, 구성 방식
- Spring Cloud / Eureka — MSA 서비스 간 통신 구조
- Oracle PL/SQL — 쿼리 튜닝 경험
시간 남으면 물어볼 것
- React CI/CD — 업무 단위 빌드 구체적 구현
- SSL 인증서 — 자동 갱신 여부
- WAS 전환 (JEUS → Tomcat)
- 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개월 안에 이 업무들을 다 했는데, 혼자 한 건지 팀으로 한 건지?
- 본인이 직접 의사결정한 부분이 있는지? (기술 선택, 아키텍처 결정 등)