2026-11-04 · 통합플랫폼연구소 DevOps 개발자
수산INT 면접, 60분 안에 끝내는 정리
위에서부터 시간표대로 읽으면 됩니다. 질문 199개 중 ★ 78개가 먼저 볼 질문이고, 시간이 모자라면 상단의 ‘★만 보기’를 켜세요. [노란 칸]은 본인 사실로 채울 자리입니다.
‘답 가리기’를 켜면 답이 접혀 셀프 퀴즈로 쓸 수 있습니다. 타이머를 누르면 지금 읽어야 할 구간이 표시됩니다.
1. 먼저 볼 것4분
자기소개 대본
면접 첫 질문입니다. 아래 대본을 소리 내어 읽어 보고 본인 말투로 다듬으세요. 숫자는 이력서와 똑같이 말해야 꼬리질문에서 흔들리지 않습니다.
말할 때
- 첫 문장(어떤 개발자인가)과 마지막 문장(수산INT에서 할 일)만은 외워서 또렷하게 말합니다.
- 숫자는 두 개(월 15건 → 0건, 85%)만 씁니다. 나머지 숫자는 꼬리질문에서 꺼냅니다.
- 이어서 나올 질문: 15건 → 0건 과정(5장 이력서 Q2), 85% 단축 방법(Q3), 왜 DevOps인가(4장 Q2), GitOps·IaC 해 봤나(4장 Q6). Kustomize를 말했으니 오버레이 구조(5장 프로젝트 Q9)도 준비합니다.
- ArgoCD·Terraform은 실제로 해 본 범위가 정해지기 전에는 자기소개에 넣지 않습니다.
- 영어 자기소개는 4장 Q10에 있습니다.
면접 개요
지원 포지션은 통합플랫폼연구소 DevOps 개발자(2명)이고, 경력 1년 1개월이라 신입 트랙(관련 전공자)으로 평가받습니다. 면접의 승부처는 공고 필수 요건인 GitOps와 IaC를 "직접 해봤다"고 말할 수 있느냐입니다.
공고 요약 (사람인 검색 결과, 마감 12/20, 서울 강남구, 정규직)
- 담당업무: CI/CD 파이프라인 설계·운영(GitLab CI, ArgoCD 중심), IaC 기반 인프라 표준화와 환경 분리, Kubernetes 인프라 운영·개선, 통합 보안 서비스 플랫폼 인프라 아키텍처 설계
- 필수: 신입은 관련 전공자, 경력은 DevOps·SRE 3년 이상. CI/CD(GitLab, Jenkins, ArgoCD) 구축·운영, GitOps 배포 자동화 이해·구현, IaC(Terraform, Ansible) 관리
- 우대: Kubernetes 운영(Helm, Kustomize), 컨테이너 보안·DevSecOps 도구, OAuth2/OIDC/SAML 연동
전형과 분위기 (잡플래닛 면접후기)
- 1차 실무면접 → 처우협의 → 2차 임원면접 순서입니다(2025년 개발직군 공고 기준).
- 질문은 대부분 1차에서 나오고, 2차는 면접관에 따라 가벼운 면담이거나 압박형입니다.
- 지원자가 쓴 용어를 하나씩 풀어 달라고 하는 스타일, 영어 자기소개 요청 사례가 있습니다.
- 결과 통보가 30일 넘게 걸린 후기가 여러 건 있습니다.
공고 항목 대비 내 근거
| 공고 항목 | 내 근거 | 준비 수준 |
|---|---|---|
| CI/CD (GitLab CI, Jenkins, ArgoCD) | 출근하자! GitHub Actions CI(lint→test→build), 가산 기술스택의 Jenkins | 부분 |
| GitOps 배포 자동화 | 주식 파이프라인 GitHub Actions + ArgoCD 구조 설계(실제 구동 여부 확인 필요) | 부분 |
| IaC (Terraform, Ansible) | 없음 | 공백 |
| Kubernetes 운영 | SKALA Minikube 구성, 주식 파이프라인 매니페스트, Probe·HPA 예제 | 있음 |
| Helm / Kustomize | Helm으로 Airflow 배포, Kustomize base + dev/prod 오버레이 | 있음 |
| 환경 분리 | Kustomize dev(1 레플리카, DEBUG) / prod(HPA 3~10, WARNING) | 있음 |
| 컨테이너 보안 / DevSecOps | 멀티스테이지·non-root Dockerfile, CORS 취약점 수정과 회귀 테스트 | 부분 |
| OAuth2 / OIDC / SAML | Spring Security 권한 분리, Redis 세션 인증 | 부분 |
| 보안 플랫폼 아키텍처 설계 | 주식 파이프라인 온라인·오프라인 분리 설계, 출근하자! MSA 로드맵 | 부분 |
핵심 메시지: 공공 시스템 운영 장애를 직접 막아 본 백엔드 개발자가, 장애와 배포 실수를 코드와 자동화로 줄이려고 DevOps로 왔다. 준비가 끝난 항목은 표의 드롭다운을 바꿔 가며 관리하세요.
2. 회사6분
수산INT는 2026년 상반기 매출 143.5억 원 가운데 73.2%를 보안솔루션(eWalker·ePrism)에서, 24.6%를 통신 3사 회선의 공유단말접속관리 서비스에서 벌었습니다. 2017~2018년에는 공유단말이 매출의 약 70%였으니 7~8년 만에 구조가 뒤집혔습니다.
- 버팀목: 경쟁사가 없는 공유단말 서비스가 해마다 70~80억 원을 벌어 줍니다. 부채 74.3억 원, 자본 912.3억 원(2025 별도)으로 재무가 탄탄합니다.
- 성장 축: 보안솔루션 매출은 2018년 53억에서 2025년 222.9억으로 4배 넘게 늘었고, 2024년부터 SSG·ePrismX·클라우드·AI 제품으로 플랫폼 전환 중입니다.
- 지금의 숙제: 2026년 상반기 영업이익 11.1억 원, 전년 같은 기간(23.4억)의 절반 아래. 매출은 9.2% 증가. 면접에서는 "매출은 늘고 R&D·신사업에 투자하는 단계"라는 사실만 말하고 평가는 하지 않습니다.
- 이 포지션: 전환의 한가운데. 새 통합 플랫폼을 올릴 인프라를 맡습니다.


수산INT는 SSL 암호화 트래픽을 복호화해 보여 주는 ePrism SSL VA를 주력으로 하는 네트워크 보안 회사입니다. 2025년 매출은 307.1억 원으로 늘었지만 영업이익은 줄었고, 지금은 생성형 AI 보안, SSE, 클라우드로 사업을 넓히는 중입니다.
회사 개요
| 항목 | 내용 |
|---|---|
| 설립·상장 | 1998년 플러스기술로 설립, 2016년 사명 변경과 함께 코스닥 상장 (연혁) |
| 대표 | 정은아 대표. 2024년 단독대표, 2025년 10월 사장 승진 (보안뉴스) |
| 그룹 내 위치 | 수산그룹(발전설비 정비, 건설기계, IT보안) 상장 3사 중 IT보안 담당 (비즈워치) |
| 인원 | 약 140~160명. 2025년 8월 엔시큐어 컨설팅 사업 인수로 늘었음 (SR타임스) |
| 회사 지표 | 고객사 1,700곳 이상, 기술 인력 비율 72%, 특허 133건 (회사소개) |
| 근무지 | 본사 서울 강남구 수서동, 일부 연구 조직은 대전 |
실적 (별도 기준, 억 원, 회사 IR)
| 연도 | 매출 | 영업이익 |
|---|---|---|
| 2025 | 307.1 | 51.0 |
| 2024 | 266.7 | 56.7 |
| 2023 | 238.9 | 65.3 |
2026년 상반기는 매출 143억 원(전년 대비 +9.2%), 영업이익 11억 원입니다(비즈워치). 2024년 매출은 보안솔루션이 약 68.5%, 공유단말접속관리 서비스가 약 28.5%였습니다(회사 보도자료). 2018년에는 공유단말이 매출의 약 70%였으니 보안 중심으로 바뀐 셈입니다(아이뉴스24).
제품군
| 제품 | 하는 일 | 배치·특징 |
|---|---|---|
| ePrism SSL VA | SSL/TLS 트래픽 복호화·가시화 (핵심 제품) | 인라인과 미러 동시 지원, Forward/Reverse, 장애 시 바이패스. 복호화 트래픽을 IPS·DLP에 넘기는 DTZ 구조 |
| eWalker SWG | 유해·비업무·악성 사이트 차단 (웹 게이트웨이) | 모든 포트의 SSL 가시성, KISA 유해 DB 연동. CC·GS 인증 |
| eWalker DLP | 웹메일·메신저·클라우드 업로드 유출 차단 | 에이전트 없음. 2026년 생성형 AI 프롬프트 분석, N2SF 등급 통제 추가 |
| eWalker WAF | 웹방화벽, OWASP Top 10 대응 | In-Line / Out of Path. CC EAL4 |
| eWalker SSL VPN | 클라이언트 없는 원격접속 | 자체 OTP, 키 협상 단계 PQC 적용 개발 |
| eWalker SSG | N2SF 등급별 SaaS·생성형 AI 통제 | SSL 가시성 + SWG + DLP + 사용자 인증 통합 |
| eSafe AI | 생성형 AI 게이트웨이 (여러 LLM 통합, 개인정보·첨부파일 유출 차단) | V3 GS 1등급(2026.08) |
| ePrismX | 보안 기능을 컨테이너로 올리는 트래픽 분산 처리 플랫폼 | 싱글·멀티노드, 100G급 SSL |
| 클라우드 보안 | eCloudX WAF, SSL VA VM, SWG VM | SaaS·CSP·구축형, Auto Scaling, Forward/Reverse Proxy |
| eWalker SSE | 제로트러스트 기반 통합 플랫폼 (2025년 연혁) | 독립 제품 페이지 없음 |
| 보안 컨설팅 | 취약점 진단, 모의해킹, ISMS-P 등 | 2025년 8월 엔시큐어 사업 양수 |
| 디바이스 인증(공유단말접속관리) | 통신사 회선의 동시 접속 단말 관리 | 통신 3사 대상, 트래픽 필터링 기반 |
| 수호천사 모바일 | 자녀 유해 사이트·앱 차단 | 회사 초기 브랜드 |
| ZeroPhish | 악성메일 모의훈련 | 2025년 출시 |
최근 동향
| 시기 | 내용 |
|---|---|
| 2026.10 | 미국 cPacket Networks와 기술 파트너십, 미주·싱가포르 공략 (보도자료) |
| 2026.09 | ePrism SSL VA 국정원 보안기능확인서 (보도자료), DLP에 N2SF 등급 통제 추가 (보도자료) |
| 2026.08 | eSafe AI V3 GS 1등급 (보도자료) |
| 2026.07 | SSL VPN 키 협상 단계 PQC 적용 개발 완료 (보도자료) |
| 2026.06 | DLP 생성형 AI 대응 강화 (보도자료), 디바이스 인증 서비스 ISO 27001 (보도자료) |
| 2026.04 | 키사이트 기술 파트너십 (보도자료), 일본 파트너스데이 (보도자료) |
| 2026.01 | KG ICT와 제조·모빌리티 보안 파트너십 (보도자료) |
| 2025.12 | 과기정통부 장관상(우수 정보보호기술) (보도자료) |
| 2025.08 | 엔시큐어 컨설팅 사업 양수, 정보보호 전문서비스 기업 지정 (보도자료) |
| 2025.06 | ePrism SSL VA 우수 정보보호기술 지정 (보도자료) |
| 2025.02 | 클라비와 SeCaaS 전환 MOU (보도자료) |
| 2025.01 | 독일 NEOX NETWORKS ODM 계약, 유럽 진출 (보도자료) |
통합플랫폼연구소와 이 포지션
이 조직명은 홈페이지에는 없고 채용공고에만 나옵니다. 2026년 개발직군 공고에는 DevOps팀(GitLab CI·ArgoCD, IaC, Kubernetes)과 대전 플랫폼팀(SBOM·취약점 스캐닝, VM·컨테이너 연동, 관제 API)이 함께 있었습니다(사람인 공고). 보안연구소에는 SSE·ZTNA·AIGW(Python·FastAPI, LLM API 연동) 팀이 있습니다.
컨테이너 기반 ePrismX, SSE, 클라우드 보안 서비스를 묶는 "통합 보안 서비스 플랫폼"의 배포·운영을 DevOps팀이 맡는 구조로 보입니다. 공식 설명이 아닌 추정이니 역질문으로 확인하세요.
3. 제품 아키텍처8분
수산 제품은 거의 모두 암호화된 트래픽을 풀어 보는 엔진(ePrism의 SSL 가시성) 위에 기능을 얹는 구조입니다. SSL VA는 그 엔진만 따로 파는 장비, SWG·WAF·SSG는 엔진을 안에 넣은 제품, ePrismX는 엔진을 플랫폼으로 만들어 보안 기능을 컨테이너로 올리는 제품입니다.
| 제품 | 방향 | 배치 방식 | 하는 일 |
|---|---|---|---|
| ePrism SSL VA | 양방향 | 투명 인라인(하드웨어 바이패스) + 미러 출력 | 복호화한 평문을 다른 보안장비에 공급 |
| eWalker SWG | 나가는 | 투명 인라인, 클라우드판은 Forward Proxy | 유해·비업무 사이트, 생성형 AI 접속 통제 |
| eWalker DLP | 나가는 | 네트워크형, 에이전트 없음 | 메일·메신저·클라우드·AI로 나가는 정보 탐지·차단 |
| eWalker SSG | 나가는(업무망→SaaS) | 일체형 어플라이언스 | N2SF용. 인증 + SSL VA + SWG + DLP를 한 장비에 |
| eWalker WAF | 들어오는 | In-Line / Out of Path | 웹 서버 공격 차단, SSL 오프로딩 |
| eWalker SSL VPN | 들어오는(원격) | 웹 브라우저 기반 | 외부 사용자를 인증해 내부망에 연결 |
| ePrismX | 양방향 | 싱글·멀티노드 플랫폼 | DPI + SSL 가시성 위에 보안 기능 컨테이너 |
| eSafe AI | 나가는(사용자→LLM) | 온프레미스 게이트웨이, 포털·API | 프롬프트·첨부 검사, 마스킹 후 LLM 질의 |
| 클라우드 제품 | 제품별 | CSP 위 VM, SaaS | WAF·SSL VA·SWG의 가상화판 |
DevOps와 가장 가까운 제품은 ePrismX와 클라우드 제품입니다. 컨테이너 오케스트레이션, 고객별 VM, Auto Scaling이 공고의 Kubernetes·IaC 업무와 맞닿습니다. 다만 이 연결은 추정이니 역질문으로 확인하세요.

ePrism SSL VA

- 프록시처럼 TCP를 끊고 다시 맺지 않고, TCP 세션은 그대로 통과시키며 TLS 핸드셰이크만 둘로 나눕니다(TST). 그래서 기존 네트워크 구성을 바꾸지 않고 들어가고, 장애 때 바이패스가 쉽습니다.
- MPT: 연동 장비의 차단 페이지를 원래 세션에 맞춰 사용자에게 돌려줍니다. 우회 차단: Tor·Ultrasurf·QUIC 패턴을 수산 DB 서버가 갱신합니다.
- 연동 장비는 ICAP이 아니라 물리 포트로 붙습니다. 라인업 SPA-1000(총 1.2G, SSL 300M)~SPA-3100(SSL 10G·20G). 2026년 9월 국정원 보안기능확인서.
eWalker SWG·DLP·SSG

- SSG는 N2SF 때문에 나온 제품입니다. 망분리에서는 업무망 PC가 인터넷을 못 썼지만, N2SF에서는 보안 통제를 거치면 등급(C·S·O)에 따라 SaaS와 생성형 AI를 쓸 수 있습니다.
- DLP V10은 수집 서버와 저장 서버를 나눠 저장 쪽만 늘릴 수 있고, C/S/O 등급 문서의 반출을 막거나 경고합니다.
eWalker WAF·SSL VPN

- WAF 라인업 SWA-1000S(2.5Gbps)~SWA-10000S(37Gbps). SSL VPN은 2021년 에스지앤에서 인수한 제품이 뿌리, V10은 CC EAL4·GS 1등급.
- 제로트러스트가 나오면: "VPN은 한 번 들어오면 넓게 열리고, ZTNA는 앱 단위로 매번 확인한다."
ePrismX

- 회사가 든 핵심기술: 고성능 트래픽 분산 처리, DPI, SSL 가시성, 보안 컨테이너 오케스트레이션.
- 역질문 후보: "ePrismX의 컨테이너 오케스트레이션은 Kubernetes 기반인가요, 자체 구현인가요?"
- 확인 못 한 것: 오케스트레이터 제품명, 노드 간 트래픽 분배 방식.
eWalker SSE (방향)

- 대표는 2026년을 SSE 서비스 전환 원년이라고 밝혔습니다. 제품 페이지는 없어서 보안뉴스 리포트와 2024 시범사업 자료로만 그렸습니다.
- "통합 보안 서비스 플랫폼"이 이 구조라면, PoP를 여러 곳에 같은 구성으로 올리는 일이 IaC·GitOps의 몫입니다(추정, 질문으로 확인).
eSafe AI

- 투명 프록시가 아니라 사용자가 포털·API로 게이트웨이에 직접 붙고, 게이트웨이가 회사의 LLM API Key로 대신 질의합니다. V3 GS 1등급(2026.08).
- Claude Code 같은 AI 에이전트가 LLM에 보내는 데이터와 도구 호출도 기록·검사합니다.
클라우드 보안

- 2024년 SWG·SSL VA·WAF 클라우드 버전 출시, WAF SeCaaS 시작. eCloudX WAF는 AWS AMI(t3.large 100Mbps~t3.2xlarge 500Mbps).
- AMI 이미지 빌드, CSP별 배포, Auto Scaling 설정은 모두 IaC와 파이프라인으로 다루는 일입니다.
4. 자기소개·인성11분
인성 면접은 인재상 세 문장(협업으로 끝까지, 인성·실력으로 인정, 소통으로 가치)을 실제 장면으로 보여 주는지, 그리고 이 회사에 오래 남을 사람인지를 봅니다. 1차 실무면접에서 대부분 묻고, 2차 임원면접은 면담형이거나 압박형입니다.
자기소개·지원동기
이 묶음에서는 "왜 DevOps인가"를 한 흐름으로 말하는 것이 전부입니다. [대괄호]는 본인 사실로 채울 자리입니다.
★Q1. 1분 자기소개
공공 시스템을 운영하며 장애를 직접 막아 본 백엔드 개발자 [이름]입니다. 1년 동안 지자체 단속 시스템과 지방세 가상계좌 시스템을 맡아, 월 15건이던 장애 민원을 0건으로 줄이고 조회 응답을 85% 단축했습니다. 이후 사이드 프로젝트에 GitHub Actions CI를 붙이고, 주식 RAG 파이프라인을 Kubernetes 위에 Kustomize dev/prod 오버레이로 배포하며 배포와 인프라를 코드로 다루는 일에 재미를 느꼈습니다. 수산INT의 통합 보안 서비스 플랫폼을 GitOps로 안정적으로 올리는 일에 기여하고 싶습니다.
Q2. AI 엔지니어 과정을 듣는데 왜 DevOps에 지원했나요?
RAG 파이프라인과 SKALA 모델 서빙 과제를 하면서, 모델보다 배포·환경 분리·재학습 같은 운영 단계에서 더 많이 막혔습니다. 그래서 AI를 버린 것이 아니라 AI를 포함한 서비스가 돌아가는 플랫폼을 만드는 쪽을 택했다고 말하세요. 수산이 AI 내재화와 eSafe AI를 밀고 있다는 점을 붙이면 자연스럽습니다.
★Q3. 왜 수산INT인가요?
대표가 온프레미스 장비 중심에서 통합 보안 플랫폼·SSE·클라우드로 전환하겠다고 밝혔고, 이 포지션이 그 플랫폼의 인프라를 맡습니다. 전환기에 파이프라인을 처음부터 설계하는 경험을 할 수 있다는 점, 공공 고객을 아는 제 경험이 쓰일 수 있다는 점을 말하세요.
★Q4. 1년 1개월 만에 퇴사한 이유는?
반복 업무를 기술로 줄이는 일을 체계적으로 배우려고 SKALA를 선택했다는 사실대로 답하세요. 인수인계 문서를 남기고 나왔다는 점을 덧붙이면 책임감을 보여줄 수 있습니다. 전 회사에 대한 불만은 말하지 않습니다.
Q5. 입사는 언제 가능한가요?
SKALA 일정(2026년 12월 수료 예정)을 먼저 밝히고 [정확한 수료일]과 조율 가능 여부를 미리 확인해 두세요. 일정을 모른다고 답하는 것이 가장 안 좋습니다.
★Q6. 신입인데 필수 요건인 GitOps·IaC는 해봤나요?
없는 것은 없다고 먼저 말하고, 해본 것과 준비한 것을 구분하세요. 예: "Kustomize로 dev/prod를 나눠 배포해 봤고, ArgoCD는 [구동해 봤다 / 설계까지 했다], Terraform은 [실습한 범위]입니다." 면접 전에 이 문장의 빈칸을 실습으로 채우는 것이 가장 효과가 큽니다.
★Q7. 상사가 부당한 지시를 하면? (실제 후기에 나온 질문)
바로 거부하기보다 의도를 먼저 확인하고, 위험이 있으면 근거와 대안을 들고 다시 이야기한다고 답하세요. 법·보안 규정을 어기는 일은 하지 않는다는 선을 분명히 하면 정도경영 키워드와도 맞습니다.
Q8. 회사까지 거리가 멀면? (실제 후기에 나온 질문)
실제 통근 시간과 경로를 말하고, 시차출퇴근제(07~10시 출근)를 활용하겠다고 답하면 회사 제도를 알고 있다는 인상도 줍니다.
Q9. 장애 대응이나 야간 작업이 있어도 괜찮은가요?
공공 시스템 운영에서 장애 민원을 직접 처리해 봤다는 점을 근거로 수용한다고 답하고, 동시에 장애를 줄이는 자동화가 DevOps의 목표라는 점을 덧붙이세요.
★Q10. 영어로 자기소개해 보세요 (후기 2건에 나옴)
I'm a backend developer who ran public-sector systems for a year. I cut recurring incidents from about fifteen a month to zero and reduced query time by 85 percent. Since then I've been building CI pipelines and deploying services on Kubernetes, and I'd like to help Soosan INT run its integrated security platform with GitOps.
★Q11. 협업하며 갈등이 있었던 경험은?
출근하자! 2인 팀에서 PR 리뷰로 설계를 조율한 사례나, 가상계좌 풀 생성 때 기획자와 요구사항을 맞춘 사례를 STAR(상황·과제·행동·결과)로 준비하세요. 인재상의 '협업'과 '소통'에 그대로 맞습니다.
Q12. 5년 뒤 모습은?
보안 제품을 만드는 회사의 플랫폼을 책임지는 DevSecOps·플랫폼 엔지니어. 특히 파이프라인에 SBOM과 서명을 기본으로 넣고, 개발자가 셀프서비스로 배포하는 환경을 만드는 사람이라고 구체적으로 말하세요.
인재상별 질문
★Q1. 중간에 멈추고 싶었지만 끝까지 해낸 일은?
공공 시스템을 운영하며 겪은 대용량 이미지 전송 장애입니다. 5,000×5,000px가 넘는 이미지에서 Delphi 메모리 오류가 반복됐고, 레거시 내부 문제라 참고할 자료가 거의 없었습니다. 작은 이미지로 재현해 범위를 좁히고, 리사이징과 청크 분할 전송을 넣어 월 15건이던 민원을 0건으로 만들었습니다.
- 기술 설명은 한 문장으로 줄이고, 멈추고 싶었던 이유와 계속한 이유를 말합니다. [멈추고 싶었던 순간, 누구와 검증했는지]
Q2. 팀 의견이 내 의견과 다를 때 어떻게 하나요?
근거를 먼저 맞추고, 말로 안 정해지면 작게 만들어 비교합니다. 출근하자! 2인 백엔드 팀에서 [어떤 설계를 두고 의견이 갈렸고, PR 리뷰에서 무엇을 근거로 정했는지]. 결정이 나면 내 안이 아니어도 그대로 따르고, 우려한 점은 테스트나 모니터링으로 남깁니다.
Q3. 팀에 새 방식을 들여온 경험은?
KLID 차량조회를 사람이 반복하던 것을 자동화해 하루 약 2시간을 줄였고, 오류 보정으로 정확도를 95% 이상으로 올렸습니다. 출근하자!에는 GitHub Actions CI(lint → test → build)를 붙였습니다. "반복되는 일을 보면 자동화한다"는 습관을 DevOps 지원 이유로 이어 말합니다.
Q4. 동료나 상사에게 어떤 사람이라는 말을 듣나요?
실제로 들은 말 하나와 그 장면을 짝으로. [들어 본 표현] → [그 장면]. 퇴사 전 인수인계 문서를 남긴 일은 "남은 사람이 덜 고생하게 한다"는 근거가 됩니다.
★Q5. 본인의 단점은?
실제 단점 하나, 고치는 규칙, 최근 결과 순서. 예: "한 문제를 혼자 오래 붙잡는 편입니다. 그래서 [30분] 넘게 막히면 상황을 정리해 공유한다는 기준을 두고 있습니다." [본인에게 맞는 단점인지 확인]
- 장점처럼 들리는 단점(완벽주의, 일 중독)은 압박 질문을 부릅니다.
Q6. 실수로 일을 그르친 적이 있나요?
[실제 실수 1건]을 골라 바로 알린 시점 → 복구 → 재발 방지 순서로. 마지막에 "그래서 사람 손을 거치는 배포를 파이프라인으로 바꾸는 일에 관심이 생겼다"고 이으면 직무와 연결됩니다.
Q7. 신입이 연구소 선배보다 잘할 수 있는 것은?
공공 운영 현장에서 고객이 실제로 겪는 장애를 보고 온 경험, 새 도구를 직접 띄워 보며 익히는 속도. "선배보다 잘한다"가 아니라 "선배가 덜 쓰는 시간을 메울 수 있다"는 톤으로.
Q8. 비개발자와 일하며 어려웠던 점은?
우체국·새마을금고 가상계좌 풀을 만들 때 기획자와 요구사항을 맞춘 사례. [무엇이 엇갈렸고, 어떤 문서나 예시로 맞췄는지] 핵심은 용어를 상대의 말로 바꾼 장면입니다.
Q9. 고객 불만을 직접 다뤄 본 적이 있나요?
공공 시스템 장애 민원을 다룬 경험. [민원을 직접 받았는지, 담당 공무원을 거쳤는지] 수산 고객의 많은 수가 공공기관이라는 점을 마지막 한 줄로.
Q10. 방금 말한 '○○'을 비전공자도 알게 설명해 보세요.
후기에 반복해 나오는 방식입니다.
- GitOps: 서버를 사람이 직접 바꾸지 않고, Git에 적힌 설정대로 시스템이 스스로 맞춰지게 하는 배포 방식
- 컨테이너: 프로그램과 실행에 필요한 것을 한 상자에 담아 어느 서버에서나 똑같이 돌게 하는 기술
- IaC: 서버와 네트워크 구성을 문서가 아니라 코드로 적어, 같은 환경을 몇 번이든 똑같이 만드는 방법
- SSL 복호화: 암호화된 통신을 잠깐 풀어 위험한 것이 있는지 보고, 다시 암호화해 보내는 것
경험 카드(STAR)
경험 하나로 여러 질문에 답할 수 있게 상황 → 행동 → 결과를 정리했습니다. 질문을 듣고 오른쪽 열에서 카드를 고르면 됩니다.
| 경험 | 상황 | 내 행동 | 결과 | 답할 수 있는 질문 |
|---|---|---|---|---|
| 대용량 이미지 전송 장애 | 5,000×5,000px 이상 이미지에서 Delphi 메모리 오류, 월 15건 민원 | 작게 재현해 원인을 좁힘, 리사이징(최대 1,800×1,300px), 청크 분할 전송 | 민원 0건, 메모리 약 60% 감소, 전송 성공률 100% | 끝까지 해낸 일, 압박 속 문제 해결, 고객 불만 |
| 가상계좌 조회 성능 | 조회 응답 400~500ms | 복합 인덱스 재설계, 은행코드 리스트 파티셔닝, Parallel Query 힌트 | 50~60ms(약 85% 단축) | 성과를 낸 경험, 스스로 개선점을 찾은 일 |
| KLID 차량조회 자동화 | 사람이 반복 조회, API 오류 잦음 | 오류 케이스 분류·보정, 반복 조회 자동화 | 정확도 95% 이상, 하루 약 2시간 절감 | 새 방식 도입, 비효율을 바꾼 일 |
| 가상계좌 동시 발급 | 여러 VM에서 같은 계좌를 중복 발급할 위험 | FOR UPDATE SKIP LOCKED | 중복 없이 발급, 대기 감소 | 위험을 미리 본 경험 |
| 가상계좌 풀 요구사항 조율 | 우체국·새마을금고 가상계좌 풀 생성 | 기획자와 요구사항 조율 [구체 행동] | [결과] | 비개발자 소통, 의견 차이 조정 |
| 퇴사 전 인수인계 | SKALA 입과로 1년 1개월 만에 퇴사 | 인수인계 문서 작성 | [후임이 바로 할 수 있었던 일] | 책임감, 퇴사 이유 |
| 출근하자! 2인 팀 | 그룹웨어 백엔드를 2명이 개발 | PR 리뷰로 설계 조율, GitHub Actions CI | [결과] | 의견 충돌, 협업 방식 |
| SKALA EtchGuard | 식각 장비 이상 탐지 AIOps 조별 기획 | [본인 역할] | [결과] | 팀에서의 역할, 빠르게 배운 일 |
| 대학 동아리 30명 운영 | [상황] | [행동] | [결과] | 조직을 이끈 경험, 갈등 조정 |
조직 적합성(압박형 대비)
1년 1개월 퇴사 이력과 SKALA 수강 때문에 "오래 다닐 사람인가"를 확인하는 질문이 거의 확실히 나옵니다.
★Q1. 다른 곳도 지원했나요? SK AX에 붙으면 어디로 가나요?
SKALA가 이력서에 있어 숨기면 바로 드러납니다. 진행 중인 곳이 있다는 사실은 인정하고 고르는 기준을 말하세요. 예: "플랫폼을 처음부터 만드는 단계에 들어가 배포 체계를 직접 설계할 수 있는지가 기준이고, 이 포지션이 그 자리입니다." [실제 진행 상황과 본인의 우선순위]
★Q2. 우리 회사에는 얼마나 다닐 생각인가요?
기간보다 해보고 싶은 일의 순서로. 1년 차 GitLab CI·ArgoCD 표준 익히기, 2년 차 IaC로 환경을 하나의 코드로 맞추기, 3년 차 이미지 스캔·서명을 파이프라인 기본값으로.
Q3. 희망 연봉은?
1차 뒤 처우협의가 따로 있습니다. "내규를 따르되, 경력 1년을 반영해 주시길 바란다" 수준으로 답하고, 숫자 범위는 미리 정해 둡니다. [희망 범위] (참고: 대졸 초임 3,600만 원, 1인 평균 6,000만 원)
Q4. 보안 회사 직원으로서 지켜야 할 것은?
수산 제품은 고객의 암호화 트래픽을 풀어 봅니다. 고객 데이터·로그·인증 정보는 필요한 만큼만 접근하고, 시크릿을 평문으로 두지 않고, 업무 자료를 개인 PC나 외부 AI에 올리지 않는다고 답합니다. 마지막 항목은 eSafe AI가 막으려는 상황과 같다고 연결할 수 있습니다.
Q5. 고객사 현장 지원이나 출장도 괜찮나요?
괜찮다고 답하고, 지방세운영지원단 파견 근무로 고객 현장에서 일해 본 경험을 근거로 듭니다. 폐쇄망 반입 절차를 겪어 봤다는 점도 공공 고객이 많은 회사에서는 강점입니다.
Q6. 하기 싫은 일을 맡으면 어떻게 하나요?
일단 맡아서 끝내고, 반복되는 일이면 줄일 방법을 찾는다고 답합니다. KLID 반복 조회 자동화 카드가 근거가 됩니다.
Q7. 수산그룹에 대해 아는 것이 있나요?
발전설비 정비, 건설기계, IT보안을 하는 그룹이고 상장 3사 가운데 수산INT가 IT보안을 맡는다는 한 문장이면 충분합니다.
Q8. 스트레스는 어떻게 푸나요?
[본인 방법 한 가지]를 짧게. 장애 대응처럼 긴장되는 상황을 어떻게 넘기는지 한 문장을 더하면 충분합니다.
Q9. 마지막으로 하고 싶은 말은?
한 문장으로 핵심 메시지를 다시 말하고, 준비한 역질문 하나로 이어 갑니다.
상황 질문(부당한 지시·갈등·윤리)
"이럴 때 어떻게 하겠나"를 묻는 질문입니다. 정답보다 판단 기준이 일관된지를 봅니다. 기준은 세 가지면 충분합니다: 법·보안 규정은 넘지 않는다, 근거를 들고 한 번은 말한다, 결정이 나면 따르고 기록한다.
★Q1. 상사가 부당한 지시를 하면 어떻게 하나요? (자주 나오는 질문, 위 Q7을 유형별로 나눈 답)
지시의 종류에 따라 다르게 대응한다고 답합니다.
- 법·보안 규정을 어기는 지시(고객 데이터를 개인 PC로 옮기기, 인증받지 않은 버전 납품, 운영 DB를 고치고 기록 지우기): 하지 않습니다. 어떤 규정에 걸리는지 말하고, 그래도 요구하면 팀장이나 보안 담당 같은 정해진 경로로 확인을 구합니다.
- 내 생각과 다르거나 비효율적인 지시: 의도를 먼저 묻고, 위험과 대안을 근거와 함께 한 번 말한 뒤, 결정이 나면 따르고 결과를 기록합니다.
- 업무와 관계없는 사적인 부탁: 업무에 지장이 없으면 가볍게 돕고, 반복되면 정중하게 선을 긋습니다.
마무리 한 줄: "보안 회사인 만큼 첫 번째 경우의 선은 분명히 지키겠습니다."
Q2. 상사가 틀렸다는 확신이 있는데 그대로 밀어붙이면?
말이 아니라 데이터로 한 번 더 제안합니다. 작게 재현한 결과, 비슷한 장애 사례, 비용 비교를 준비합니다. 그래도 결정이 유지되면 따르고, 롤백 계획이나 모니터링 알람처럼 위험을 줄이는 장치를 함께 넣자고 제안합니다. 결과가 나온 뒤 "제 말이 맞았다"는 태도는 피합니다.
★Q3. 동료가 맡은 일을 제대로 하지 않아 내 일이 늘어난다면?
먼저 사정을 묻습니다. 다른 급한 일이 있었는지, 일을 다르게 이해했는지 확인하고 함께 일정을 다시 맞춥니다. 그래도 팀 일정에 영향이 생기면 누구 탓이 아니라 "일정이 이만큼 밀린다"는 사실로 팀장에게 공유합니다. 혼자 조용히 떠안으면 문제가 늦게 드러납니다.
★Q4. 동료가 시크릿을 코드에 올리거나 고객 데이터를 밖으로 가져가는 것을 봤다면?
바로 말합니다. 시크릿 커밋은 실수인 경우가 많으니 당사자에게 알려 키를 즉시 폐기·교체하고 Git 이력에서도 지우게 합니다. 고객 데이터 반출은 개인 판단으로 넘기지 않고 회사 보안 절차대로 보고합니다. 친한 동료라도 보안 사고는 덮지 않는다는 기준을 말하고, 재발 방지로 pre-commit 시크릿 스캔(gitleaks)과 CI 차단을 제안한다고 이으면 직무와 연결됩니다.
★Q5. 내 실수로 운영 장애가 나면?
숨기지 않고 바로 알립니다 → 원인 분석보다 복구(롤백)가 먼저입니다 → 복구 뒤 원인과 타임라인을 정리해 공유합니다 → 사람 탓이 아니라 구조를 고치는 회고를 하고, 확인 절차를 파이프라인 단계로 자동화합니다. [실제 장애 대응 경험이 있으면 한 줄]
★Q6. 퇴근 직전이나 개인 약속이 있을 때 긴급 장애가 나면?
장애 대응이 먼저입니다. 다만 혼자 다 하려 하지 않고 당직·담당자와 역할을 나눠 빨리 복구하고, 약속 상대에게는 미리 양해를 구합니다. 같은 호출이 반복되지 않게 알람과 자동 복구를 고치는 것까지가 DevOps의 일이라고 덧붙입니다.
★Q7. 마감은 급한데 품질 문제가 보이면, 일정과 품질 중 무엇을 택하나요?
보안이나 데이터에 관한 문제면 품질입니다. 출시 보류를 제안합니다. 그 밖의 문제는 위험을 정리해 결정권자에게 선택지를 드립니다: 일정을 지키고 알려진 문제와 후속 패치 일정을 공유, 범위를 줄이기, 일정 연기. 혼자 몰래 미루거나 몰래 넘기지 않는 것이 핵심입니다.
Q8. 여러 사람이 동시에 급한 일을 요청하면?
기준은 장애·보안 > 고객 납기 > 내부 개선입니다. 기준으로도 판단이 어려우면 팀장에게 우선순위를 확인합니다. 요청한 사람들에게는 언제 가능한지 먼저 알려 기다림을 관리합니다.
Q9. 나이가 어린 선배나 상사와 일할 수 있나요?
네. 회사에서는 경력과 역할이 기준이고, 신입으로서 먼저 배우는 입장입니다. [다양한 연차·나이의 동료나 공무원과 일한 장면 한 줄]
★Q10. 입사 후 기대와 다른 일(고객사 기술지원, 문서 작업)을 맡으면?
먼저 맡은 일을 해냅니다. 고객사 지원은 제품이 실제로 어떻게 설치·운영되는지 배울 기회이고, 거기서 본 반복 작업을 자동화 과제로 가져오면 DevOps 일과 이어집니다. 장기적으로 하고 싶은 일은 면담에서 정식으로 말합니다.
Q11. 고객사가 무리한 일정이나 요구를 하면?
혼자 약속하지 않습니다. 가능한 범위와 위험을 정리해 담당 영업·PM과 함께 답합니다. 우체국·새마을금고 가상계좌 풀을 만들 때 요구사항을 조율한 경험을 예로 듭니다.
Q12. 팀에서 나만 반대 의견이라면?
반대 이유를 한 번 분명히 말하고, 내가 놓친 것이 있는지 듣습니다. 결정이 나면 따르고, 우려한 점은 테스트나 모니터링 항목으로 남깁니다.
Q13. 내 성과를 다른 사람이 자기 것처럼 말하면?
감정적으로 대응하지 않고 커밋·PR·이슈 기록으로 사실을 정리해 당사자와 먼저 이야기합니다. 함께 한 일이라면 함께 한 것으로 인정합니다. 평소에 작업을 PR과 문서로 남겨 두면 이런 일이 줄어듭니다.
Q14. 모르는 것을 물어보면?
모른다고 먼저 말하고, 아는 것과 연결해 추론하거나 어떻게 확인할지 말합니다. 예: "직접 써 보지는 않았지만 ~와 같은 원리라면 ~일 것 같습니다. 확인해 보겠습니다." 아는 척이 가장 큰 감점입니다.
★Q15. 연봉을 더 주는 곳에서 제안이 오면 옮기나요? (압박 질문)
지금 기준은 연봉보다 맡을 일, 특히 플랫폼을 처음부터 만드는 경험이라 바로 옮기지 않는다고 답합니다. 1년 1개월 퇴사 이력 때문에 나오는 질문이니 퇴사 이유와 같은 논리로 답하고, "평생 다니겠다" 같은 과한 약속은 하지 않습니다.
Q16. 이번에 떨어지면 어떻게 할 건가요? (압박 질문)
부족했던 부분(예: IaC 실무)을 채워 DevOps 직무에 계속 지원하겠다고 담담하게 답합니다.
Q17. 최근 관심 있게 본 기술 이슈는?
실제로 읽은 것 하나를 회사와 이어서 말합니다. [본인이 읽은 이슈] 예: Terraform 라이선스 변경과 OpenTofu, PQC 전환, N2SF 망 보안체계. 읽지 않은 것은 말하지 않습니다.
Q18. 원하지 않는 회사 문화는?
"문제를 숨기는 문화"처럼 일과 관련된 것으로 답하고, 반대로 기대하는 문화(장애 회고를 공유하는 팀)를 말합니다. 야근·회식 같은 답은 피합니다.
피해야 할 답변
| 패턴 | 왜 감점인가 | 대신 |
|---|---|---|
| 공고 용어를 나열하고 설명을 못 함 | 답변 속 용어를 하나씩 풀어 달라는 면접 스타일 | 입에 올릴 단어만 고르고 한 문장 정의를 준비 |
| 해보지 않은 GitOps·IaC를 해봤다고 함 | 꼬리질문 두세 번이면 드러남 | "구조는 설계했고 구동은 [범위]까지"처럼 구분 |
| 전 회사나 공공 SI 환경 험담 | 수산도 같은 공공 고객을 상대함 | "그래서 자동화를 배웠다"로 바꿈 |
| SKALA·SK AX 일정을 숨기거나 흐림 | 이력서에 있어 신뢰를 잃음 | 수료일과 입사 가능일을 날짜로 |
| "열심히 배우겠습니다"로 끝맺음 | 계획 없는 의지로 들림 | 입사 전 실습 계획(Terraform, ArgoCD)을 구체적으로 |
| 제품 이름을 틀림 | 관심도를 보여 주는 가장 쉬운 신호 | SSL 가시성은 ePrism, 웹 보안 계열은 eWalker |
| 결과 통보를 재촉 | 후기상 30일 넘게 걸린 사례가 여러 건 | 면접 끝에 일정만 한 번 물음 |
인재상과 경영철학
인재상의 축은 협업, 인성, 소통이고 대표 메시지의 축은 R&D 투자, 통합 보안 플랫폼, AI와 글로벌입니다. 공식 비전·미션·CEO 인사말 페이지는 홈페이지와 채용 사이트 어디에도 없어서 대표 인터뷰로 보완했습니다. 수산그룹 공통 경영이념도 찾지 못했습니다.
인재상 (채용 페이지, 아래는 뜻을 옮긴 것이니 면접 전 원문을 한 번 읽어 두세요)
- 협업을 통해 도전과 혁신을 끝까지 해내는 사람
- 인성과 실력으로 동료에게 인정받는 사람
- 소통으로 서비스의 가치를 만드는 사람
채용 슬로건은 각자의 땀과 슬기를 모아 함께 보람을 만든다는 뜻입니다.
목표와 경영 기반 (회사소개)
- 목표: 기술혁신으로 깨끗하고 안전한 인터넷 세상을 만든다.
- 경영 기반: 기술경영, 정도경영, 인재경영.
- 슬로건: Delivering Innovative Security Solutions and Service.
대표 메시지 흐름 (정은아 대표)
| 시기 | 메시지 |
|---|---|
| 2026.08 | 공저 『대표님, 보안은 IT가 아니라 경영입니다』: 보안을 CEO의 경영 판단 문제로 봐야 한다 (보도자료) |
| 2026.03 | 온프레미스 중심에서 SSE형 서비스(제로트러스트, CASB, IAM)와 컨설팅을 아우르는 통합 보안 플랫폼 기업으로 (보도자료) |
| 2026.01 | 키워드는 고객 중심, AI 내재화, 지속 가능한 성장. 고객과 AI 중심의 글로벌 종합 보안기업을 목표로 제시 (지디넷코리아) |
| 2025.03 | 2025년을 글로벌 진출 원년으로. 매년 영업이익의 1/3 이상을 R&D에 쓴다고 밝히며 "R&D 투자는 선택이 아니라 필수"라고 말함 (보도자료) |
| 2025.02 | '수산아이앤티 2.0'을 내걸고 클라우드, 통합보안서비스, 글로벌을 3대 축으로 제시 (지디넷코리아) |
답변에 녹이는 법
| 회사 키워드 | 꺼낼 내 경험 |
|---|---|
| 협업으로 도전·혁신 | 출근하자! 2인 백엔드 팀의 PR 기반 협업, SKALA 조별 미니 프로젝트 |
| 인성·실력으로 동료의 인정 | 가산에서 월 15건 장애 민원을 0건으로, 퇴사 전 인수인계 문서 작성 |
| 소통으로 서비스 가치 | 우체국·새마을금고 가상계좌 풀 생성 때 기획자와 요구사항 조율, 대학 동아리 30명 운영 |
| 통합 보안 플랫폼 | 이 포지션이 그 플랫폼의 인프라를 맡는다는 점을 지원동기의 핵심으로 |
| AI 내재화 | RAG 파이프라인, FastAPI 서빙, LangGraph. eSafe AI·AIGW 팀과 연결되는 감각 |
| R&D 투자 | Velog 기술 블로그, CKA 준비, SKALA 과정 |
| 서비스 연속성 | 가상계좌 시스템 DR 서버 구축 |
5. 이력서·프로젝트6분
면접관은 이력서 한 줄을 골라 "본인이 정확히 무엇을 했는지"를 끝까지 파고듭니다. 숫자마다 측정 방법을, 작업마다 본인 범위를 준비하세요.
★Q1. DR 서버는 어떻게 구축했나요? (DevOps 면접관이 가장 깊게 물을 항목)
- 답변 틀: 무엇을 복제했는지(DB인지 서버 전체인지) → 복제 방식 → 전환 절차 → 전환 테스트 여부 → 본인 담당 범위. [실제 내용으로 채우기]
- 꼬리질문 대비: RPO(얼마나 데이터를 잃어도 되나)와 RTO(얼마나 빨리 복구해야 하나), Active-Standby와 Active-Active의 차이.
- 범위가 작았다면 그대로 말하고 "지금이라면 IaC로 운영·DR 환경을 같은 코드로 만들겠다"로 연결하세요.
★Q2. 장애 민원을 월 15건에서 0건으로 줄인 과정은?
5,000×5,000px 이상 이미지에서 Delphi 메모리 할당 오류와 전송 실패가 났고, 비율 유지 리사이징(최대 1,800×1,300px)과 바이트 단위 청크 분할 전송으로 해결했습니다. 메모리는 약 60% 줄고 전송 성공률은 100%가 됐습니다.
- 꼬리질문: 장애를 어떻게 알았나요? 민원으로 알았다면 "지금이라면 전송 실패율 메트릭과 알람을 먼저 걸겠다"고 덧붙이세요.
- 꼬리질문: 메모리 60%는 무엇으로 재었나요? [측정 도구·방법]
★Q3. 조회 응답을 400~500ms에서 50~60ms로 줄인 방법은?
복합 인덱스를 재설계하고, 은행코드 기준 리스트 파티셔닝으로 읽는 범위를 줄이고, Parallel Query 힌트를 적용했습니다.
- 꼬리질문: 실행계획을 어떻게 봤나, 왜 은행코드를 파티션 키로 골랐나, Parallel Query의 부작용(동시 세션이 많을 때 CPU 경합)은 무엇인가.
Q4. FOR UPDATE SKIP LOCKED는 어떻게 동작하나요?
다른 트랜잭션이 잠근 행은 기다리지 않고 건너뛰어, 잠기지 않은 행부터 처리합니다. 여러 VM에서 발급 요청이 몰려도 같은 가상계좌를 중복 발급하지 않고 대기 시간도 줄어듭니다. 작업 큐 테이블 패턴이라고 설명하면 좋습니다.
Q5. 기술스택에 Jenkins가 있는데 무엇을 했나요?
파이프라인을 직접 짰는지, 있는 잡을 실행만 했는지 정확히 말하세요. [실제 범위] 범위가 작다면 이력서에서 빼거나 'Jenkins(사용)'처럼 낮춰 쓰는 편이 안전합니다.
Q6. 공공 환경에서 배포는 어떻게 했나요?
- 답변 틀: 빌드 산출물, 전달 방식(망분리라면 반입 절차), JEUS 배포 절차, 롤백 방법. [실제 내용]
- 마무리: "수동 절차의 실수 가능성을 격어봤기 때문에 아티팩트 버전 고정과 자동 배포의 가치를 안다." 수산 제품도 공공 폐쇄망에 들어가서 이 경험이 강점이 될 수 있습니다.
Q7. KLID 차량조회 API 오류는 어떻게 보정했나요?
오류 케이스를 분류하고 보정 로직을 넣어 정확도를 95% 이상으로 올린 과정을 설명하고, 반복 조회를 자동화해 하루 약 2시간을 줄인 점을 "반복 작업을 보면 자동화하는 습관"으로 묶으세요.
Q8. Tibero·JEUS 같은 공공 표준 환경에서 어려웠던 점은?
자료가 적어 레거시 코드와 내부 구조를 직접 파야 했던 경험을 말하고, 낯선 시스템을 대하는 방법(작게 재현 → 원인 좁히기)을 보여주세요.
Q9. Delphi 레거시는 어떻게 익혔나요?
문서와 코드를 반복해 읽고 작은 단위로 테스트하며 원인을 좁혔다는 답이 자소서와도 이어집니다. Python 영상 처리 파이프라인을 Delphi와 연동한 사례를 붙이면 언어가 달라도 시스템을 잇는 능력을 보여줄 수 있습니다.
프로젝트 그림



프로젝트 질문
프로젝트 질문은 "왜 그렇게 했나"와 "운영 환경이었다면"으로 이어집니다. 아키텍처 그림의 내 프로젝트 3개를 손으로 그리며 답하는 연습을 하세요.
출근하자!
★Q1. CI는 있는데 CD는 없는 이유는?
lint → test → build로 품질 게이트를 먼저 만들었고, 배포 대상이 아직 고정되지 않아 CD는 다음 단계로 놓았다고 답하세요. 이어서 "지금 만든다면 이미지 빌드·스캔 후 GitOps 저장소 태그를 올리고 ArgoCD가 당겨가게 하겠다"고 D1 그림으로 연결하세요.
★Q2. RabbitMQ 무한 재시도 장애(PR #72)를 설명해 보세요.
채팅방 개설자 id가 참여자 목록에 섞여 중복 행이 생겼고, 단건 조회에서 예외가 나면서 리스너가 ack를 못 해 메시지가 끝없이 재전달됐습니다. 로컬 재현 중 로그가 몇 초 만에 7,900만 줄까지 늘었고, 코드 필터와 DB unique 제약으로 두 격 막았습니다.
- 꼬리질문(거의 확실): 인프라 쪽 안전장치는? → 재시도 횟수 제한, DLQ(Dead Letter Queue)로 격리, 로그 로테이션과 디스크 알람, 큐 길이 알람. "코드로 원인을 막고, 인프라로 폭발 반경을 제한한다"는 선으로 답하세요.
Q3. 연차 동시성에 왜 비관적 락을 썼나요?
연차 차감은 충돌이 드물어도 한 번 어긋나면 돈·인사 문제가 되고, 재시도 로직보다 잠금이 단순해서 골랐다고 답하세요. CountDownLatch로 8개 스레드를 동시에 돌려 잔여 5일을 넘지 않는지 TDD로 검증한 것이 핵심입니다.
Q4. N+1은 어떻게 막았나요?
findAllById로 IN 쿼리를 한 번만 날리고, Hibernate Statistics로 쿼리 수를 세는 회귀 테스트를 넣었습니다. 참여자 1명 방과 5명 방이 똑같이 5쿼리인지 확인했다는 숫자까지 말하세요.
Q5. CORS 보안 문제는 무엇이었나요?
allowedOriginPatterns("*")와 allowCredentials(true)를 함께 쓰면 어떤 사이트든 세션 쿠키를 싣어 요청할 수 있습니다. 화이트리스트로 바꾸고 허용되지 않은 origin은 403, 허용된 origin은 200이 나오는 회귀 테스트로 증명했습니다. 보안 회사라 반응이 좋을 소재입니다.
Q6. WebSocket과 SSE를 왜 둘 다 썼나요?
접속 중인 사용자에게는 양방향 WebSocket, 그렇지 않으면 단방향 SSE로 읽음 상태를 보냈습니다. 꼬리질문으로 스케일아웃 시 연결이 여러 인스턴스에 흩어지는 문제가 나오면, MQ나 Redis Pub/Sub으로 인스턴스 간 메시지를 퍼뜨린다고 답하세요.
Q7. 일부러 남겨둔 이슈가 있다던데?
로그인 직후 Redis 세션 레이스 컨디션(#65)은 프론트 지연으로 완화만 했고, 우선순위 판단으로 미뤄다고 솔직하게 말하세요. 운영에서 완벽보다 위험 대비 비용을 따지는 태도로 보여줄 수 있습니다.
주식 RAG 파이프라인
Q8. 컴포넌트가 너무 많지 않나요? 리소스는?
학습 목적으로 수집·저장·처리·서빙을 일부러 나눠 각 컴포넌트의 역할을 익혔다고 분명히 말하세요. "실제 서비스라면 Kafka·Spark 없이 Airflow와 벡터 DB만으로 시작했을 것"이라는 판단을 덧붙이면 오버엔지니어링 의심을 풀 수 있습니다.
★Q9. Kustomize 오버레이 구조를 설명해 보세요.
base에 공통 매니페스트(ConfigMap, Secret, PVC, PostgreSQL StatefulSet, API Deployment, HPA, Ingress, CronJob)를 두고, overlays/dev는 레플리카 1·DEBUG, overlays/prod는 HPA 3~10·PVC 20Gi·WARNING으로 덮어씁니다. kubectl apply -k overlays/prod로 합쳐진 결과를 본다는 것까지 말할 수 있게 코드를 다시 열어 보세요.
Q10. 인프라는 Helm, 앱은 CI/CD로 나눈 이유는?
Kafka·MinIO·ES는 검증된 차트를 설정만 바꿔 쓰는 것이고, FastAPI·DAG·Spark Job은 코드가 자주 바뀌어 빌드·배포 자동화가 필요하기 때문입니다. 변경 주기가 다른 것을 다른 도구로 관리했다고 정리하세요.
★Q11. ArgoCD는 실제로 써 봤나요?
[실제 구동 여부] 설계만 했다면 그대로 말하고, 면접 전까지 Minikube에 ArgoCD를 올려 overlays/dev와 overlays/prod를 Application 두 개로 연결해 두면 "해봤다"가 됩니다.
SKALA
Q12. Helm으로 Airflow를 배포하며 무엇을 바꿨나요?
values에서 바꾼 항목(예: executor, DAG 동기화 방식, 리소스)과 helm upgrade, helm rollback을 설명하세요. [실제 바꾼 values] 카카오톡 알림을 붙인 블로그 모니터링 DAG도 자동화 사례로 쓸 수 있습니다.
Q13. EtchGuard에서 MLflow는 왜 필요했나요?
모델이 노트북 안에만 있으면 어떤 버전이 서비스 중인지 모르기 때문에, 학습 이력과 버전을 남기고 게이트를 통과한 모델만 승격하도록 설계했다고 답하세요. "CI/CD의 품질 게이트를 모델에 적용한 것"이라고 말하면 DevOps 직무와 이어집니다.
6. 기술 질문9분
질문 65개라 9분 안에 모두 읽기는 어렵습니다. ★ 질문의 답을 읽고, 나머지는 질문만 훑으며 한 문장으로 답할 수 있는지 확인하세요.
CI/CD·GitOps

공고의 첫 번째 담당업무라 가장 많이 물어볼 영역입니다. 개념 정의 → 동작 원리 → 내가 한다면 어떻게, 순서로 답하세요.
Q1. CI, 지속적 전달, 지속적 배포의 차이는?
CI는 변경을 자주 합치고 자동으로 빌드·테스트하는 것입니다. 지속적 전달은 언제든 배포 가능한 상태를 유지하되 운영 반영은 사람이 승인하고, 지속적 배포는 그 승인까지 자동입니다. 보안 제품처럼 인증·고객 납품이 엮힌 곳은 지속적 전달이 현실적이라고 덧붙이세요.
Q2. GitLab CI 구조를 설명해 보세요.
.gitlab-ci.yml에 stages(순서)와 jobs(단위 작업)를 정의하고, Runner가 잡을 실행합니다. Runner executor는 shell, docker, kubernetes 등입니다.rules로 브랜치·변경 파일에 따라 실행 여부를 정하고,needs로 스테이지를 기다리지 않는 DAG 실행을 만듭니다.artifacts는 잡 사이 산출물 전달,cache는 의존성 재사용입니다. Protected 브랜치에서만 쓰는 Protected/Masked 변수로 시크릿을 다룹니다.- GitHub Actions와 비교: workflow·job·step과 stage·job이 대응되고, runner 개념도 같아서 출근하자! 경험을 그대로 옮길 수 있다고 말하세요.
Q3. GitLab CI, GitHub Actions, Jenkins는 어떻게 다른가요?
Jenkins는 설치형 서버에 플러그인으로 확장해 자유도가 높지만 서버·플러그인 관리 부담이 큽니다. GitLab CI는 저장소·MR·레지스트리·보안 스캔이 한 플랫폼에 있고 설치형도 가능해 폐쇄망 환경에 잘 맞습니다. GitHub Actions는 마켓플레이스 액션이 풍부한 클라우드 중심입니다.
★Q4. GitOps란 무엇인가요?
원하는 상태를 Git에 선언하고, 클러스터 안의 에이전트가 그 상태를 당겨와 실제 상태와 계속 맞추는 운영 방식입니다. OpenGitOps의 4원칙은 선언적, 버전 관리·불변, 자동으로 당겨옴, 지속적 조정입니다.
★Q5. Push 방식 배포와 Pull 방식(GitOps)의 차이는?
Push는 CI가 kubectl로 직접 배포하므로 CI에 클러스터 권한을 줘야 합니다. Pull은 클러스터 안의 ArgoCD가 Git을 읽어가므로 외부에 운영 클러스터 자격증명을 두지 않아도 됩니다. 보안 회사에서 강조하기 좋은 포인트입니다.
★Q6. ArgoCD는 어떻게 동작하나요?
- Application = Git 경로와 대상 클러스터·네임스페이스의 연결입니다. ArgoCD는 두 상태를 비교해 Synced/OutOfSync, Healthy/Degraded를 보여줍니다.
- 자동 동기화, self-heal(누가 kubectl edit로 바꿔도 되돌림), prune(Git에서 지운 리소스 삭제) 옵션이 있습니다.
- Sync wave·hook으로 DB 마이그레이션·순서를 제어하고, App of Apps나 ApplicationSet으로 여러 환경·클러스터를 한꺼번에 관리합니다.
Q7. 새 이미지 태그는 어떻게 GitOps 저장소에 반영하나요?
CI가 이미지 푸시 후 GitOps 저장소의 kustomization 이미지 태그를 바꾸는 커밋이나 MR을 올리는 방법이 일반적입니다. ArgoCD Image Updater로 자동 갱신하는 방법도 있습니다. 태그는 latest 대신 커밋 SHA나 버전, 가능하면 다이제스트로 고정합니다.
Q8. 앱 저장소와 설정(GitOps) 저장소를 왜 나누나요?
코드 변경과 배포 변경의 이력·권한을 분리하고, 설정만 바꿔도 앱 CI가 돌지 않게 하려는 것입니다. 운영 배포 승인을 설정 저장소의 MR 승인으로 관리할 수 있습니다.
★Q9. 롤백은 어떻게 하나요?
GitOps에서는 문제가 된 커밋을 git revert하면 ArgoCD가 이전 상태로 동기화합니다. ArgoCD UI의 이력 롤백은 긴급용이고, 이후 Git도 맞춰야 다시 덮어쓰이지 않습니다.
★Q10. 배포 전략을 비교해 보세요.
롤링은 파드를 조금씩 교체(기본값), 블루·그린은 새 환경을 통째로 올리고 트래픽을 한 번에 전환, 카나리는 일부 트래픽만 새 버전으로 보내며 지표를 보고 늘립니다. ArgoCD 환경에서는 Argo Rollouts로 블루·그린과 카나리를 구현합니다.
Q11. 파이프라인이 느리면 어떻게 줄이나요?
의존성 cache, Docker 레이어 캐시(자주 바뀌는 파일을 Dockerfile 아래쪽에), needs로 병렬화, rules: changes로 바뀐 서비스만 빌드, 빠른 테스트를 앞에 두기입니다.
Q12. GitOps 저장소에 시크릿은 어떻게 두나요?
평문은 절대 두지 않고, Sealed Secrets(클러스터 키로 암호화한 값만 커밋), SOPS, External Secrets Operator(Vault 등 외부 저장소 참조) 중 하나를 씁니다.
Q13. 누가 클러스터에서 직접 설정을 바꾼다면?
ArgoCD가 OutOfSync로 드리프트를 보여주고, self-heal이 켜져 있으면 Git 상태로 되돌립니다. 근본적으로는 RBAC로 운영 클러스터 직접 수정 권한을 줄이고 모든 변경을 MR로 받습니다.
IaC·환경 분리

경험이 비어 있는 영역이라 개념을 정확히 말하고, 실습한 것을 하나라도 보여주는 것이 목표입니다.
★Q1. IaC를 왜 쓰나요?
인프라를 코드로 두면 변경이 리뷰·이력으로 남고, 같은 환경을 여러 번 똑같이 만들 수 있으며, 사람의 수작업에서 오는 환경 차이(드리프트)를 줄입니다. 가산 DR 구축 경험에 연결해 "운영과 DR을 같은 코드로 만들면 전환 신뢰도가 올라간다"고 말하세요.
★Q2. Terraform 작업 흐름과 state를 설명해 보세요.
init(프로바이더·백엔드 준비) →plan(바뀔 내용 미리보기) →apply(적용). plan 결과를 MR에서 리뷰하고 apply하는 것이 표준입니다.- state는 코드와 실제 리소스를 연결하는 지도입니다. 팀에서는 원격 백엔드(S3, GitLab 등)에 두고 잠금을 걸어 두 사람이 동시에 apply하지 못하게 합니다.
- state에는 비밀값이 평문으로 남을 수 있어 저장소 암호화와 접근 권한을 관리해야 합니다.
★Q3. Terraform과 Ansible의 차이는?
Terraform은 네트워크·VM·클러스터 같은 자원을 만드는 프로비저닝 도구로, 최종 상태를 선언하고 state로 추적합니다. Ansible은 만들어진 서버 안의 패키지·설정을 맞추는 구성 관리 도구로, SSH로 에이전트 없이 YAML 플레이북을 실행합니다. 보통 Terraform으로 만들고 Ansible로 채웁니다(D2 그림).
Q4. 멱등성이란?
같은 작업을 여러 번 실행해도 결과가 같은 성질입니다. Ansible 모듈은 이미 원하는 상태면 아무것도 바꾸지 않고(changed=0), shell 모듈을 남발하면 멱등성이 깨진다는 말까지 하면 좋습니다.
★Q5. 환경(dev/stg/prod)은 어떻게 나누나요?
공통 모듈을 두고 환경별 디렉터리와 변수 파일(tfvars)을 나누는 방식을 선호한다고 답하세요. workspace는 간단하지만 환경별 차이가 커지면 조건문이 늘고, 실수로 운영 workspace에 apply할 위험이 있습니다. 알플리케이션 단에서는 Kustomize 오버레이로 같은 원리를 적용했던 경험을 연결하세요.
Q6. 모듈은 어떻게 설계하나요?
네트워크, 클러스터, DB처럼 함께 바뀌는 단위로 나누고, 입력 변수와 출력값을 명확히 하며, 모듈 버전을 태그로 고정해 환경마다 다른 버전을 단계적으로 올립니다.
Q7. 누군가 콘솔에서 직접 바꾼 자원은?
plan을 주기적으로 돌려 드리프트를 찾고, 코드를 맞추거나 apply로 되돌립니다. 코드 밖에서 만든 자원은 import로 state에 편입합니다.
★Q8. 클라우드가 아닌 고객사 폐쇄망에도 IaC를 쓸 수 있나요?
있습니다. 가상화 플랫폼용 프로바이더나 Ansible로 서버 구성을 자동화하고, 인터넷이 막힌 환경에서는 프로바이더·패키지·이미지를 내부 미러에 미리 두고 씁니다. 공공 망분리 환경에서 일해 본 경험과 연결하면 수산 고객 환경을 이해한다는 인상을 줍니다.
Q9. Helm과 Kustomize의 차이는?
Helm은 템플릿과 values로 매니페스트를 생성하고 릴리스 단위로 설치·업그레이드·롤백하는 패키지 관리자입니다. Kustomize는 템플릿 없이 base YAML에 패치를 덮는 방식이라 결과가 읽기 쉽습니다. 외부 오픈소스는 Helm, 자체 앱의 환경 차이는 Kustomize로 쓰는 조합이 흔하고, 제 프로젝트도 그렇게 나눴다고 답하세요.
Q10. Terraform 라이선스 이슈를 알고 있나요?
HashiCorp가 2023년 Terraform 라이선스를 BSL로 바꾼 뒤 리눅스 재단 산하 포크인 OpenTofu가 나왔고, 문법이 거의 같아 전환이 쉬운 편입니다. 알고 있다는 정도면 충분합니다.
★Q11. 직접 해본 것은?
[면접 전 실습 결과] 추천 실습은 Minikube에 Terraform의 kubernetes·helm 프로바이더로 네임스페이스와 Airflow Helm 릴리스를 코드화하고, dev·prod 변수 파일로 두 번 만들어 보는 것입니다. 비용 없이 init·plan·apply·state를 모두 경험할 수 있습니다.
Kubernetes·Helm·Kustomize·컨테이너
가장 자신 있는 영역이니 "실습에서 직접 본 것"을 섯어 답하세요.
★Q1. Kubernetes 아키텍처를 설명해 보세요.
컨트롤 플레인에는 kube-apiserver(모든 요청의 입구), etcd(상태 저장), scheduler(파드를 노드에 배치), controller-manager(원하는 상태로 맞춤)가 있습니다. 워커 노드에는 kubelet, kube-proxy, 컨테이너 런타임이 있습니다. "선언한 상태를 컨트롤러가 계속 맞춘다"는 점이 GitOps와 같은 사고방식이라고 연결하세요.
Q2. Deployment, StatefulSet, DaemonSet, Job의 차이는?
Deployment는 상태 없는 앱, StatefulSet은 고정 이름·전용 볼륨이 필요한 DB류, DaemonSet은 노드마다 하나씩(로그·모니터링 에이전트), Job·CronJob은 한 번 또는 주기적으로 끝나는 작업입니다. 주식 파이프라인에서 PostgreSQL을 StatefulSet으로, 수집을 CronJob으로 뒤던 것을 예로 드세요.
Q3. Service 타입과 Ingress는?
ClusterIP는 클러스터 내부용, NodePort는 모든 노드의 같은 포트를 열고, LoadBalancer는 외부 LB를 붙입니다. Ingress는 호스트·경로 기반 L7 라우팅과 TLS 종료를 한 곳에서 다룹니다.
★Q4. Probe 3종의 차이는?
liveness 실패는 컨테이너 재시작, readiness 실패는 트래픽에서만 제외(재시작 없음), startup은 느리게 뜨는 앱이 준비될 때까지 다른 probe를 미룹니다. 블로그 예제에서 세 가지를 모두 구현했다고 말하세요.
★Q5. 무중단 롤링 업데이트는 어떻게 보장하나요?
maxUnavailable 0과 maxSurge로 새 파드가 뜨기 전에 기존 파드를 내리지 않게 하고, readiness가 통과한 파드만 트래픽을 받게 합니다. 종료 쪽은 preStop과 graceful shutdown으로 처리 중인 요청을 마무리합니다.
Q6. HPA는 어떻게 동작하나요?
metrics-server가 수집한 CPU·메모리 사용량을 requests 대비 비율로 보고 레플리카를 조절합니다. requests가 없으면 동작하지 않고, scaleDown 안정화 창으로 줄었다 늘었다를 반복하는 현상을 막습니다.
Q7. requests와 limits, OOMKilled는?
requests는 스케줄링 기준이자 보장치, limits는 상한입니다. 메모리가 limit을 넘으면 OOMKilled, CPU는 죽지 않고 스로틀링됩니다. 가산에서 고해상도 이미지로 메모리 오류를 잡은 경험과 연결해 "원인 코드를 고치는 것과 limit을 올리는 것을 구분한다"고 답하세요.
★Q8. 파드가 안 뜨면 어떻게 하나요?
kubectl get pods로 상태 확인: Pending, ImagePullBackOff, CrashLoopBackOff, OOMKilledkubectl describe pod의 Events: 스케줄링 실패(자원 부족, PVC 미바인딩), 이미지 주소·인증 오류kubectl logs(필요하면--previous): 앱 기동 오류, 설정 누락- probe 설정과 ConfigMap·Secret 마운트, Service selector 라벨 일치 확인
Q9. ConfigMap과 Secret의 차이는?
둘 다 설정을 주입하지만 Secret은 base64 인코딩일 뿐 암호화가 아닙니다. etcd 암호화와 RBAC, 외부 시크릿 저장소 연동이 필요하다는 말까지 해야 보안 회사 면접에서 점수를 받습니다.
Q10. PV, PVC, StorageClass는?
PVC는 앱이 저장소를 요청하는 것, PV는 실제 볼륨, StorageClass는 PVC가 오면 PV를 동적으로 만드는 규칙입니다. prod 오버레이에서 PVC를 20Gi로 늘린 것을 예로 드세요.
Q11. Helm 차트 구조와 업그레이드·롤백은?
Chart.yaml, values.yaml, templates/로 이뤄지고, helm upgrade --install로 배포하며 릴리스 이력이 남아 helm rollback으로 되돌릴 수 있습니다. ArgoCD와 쓸 때는 ArgoCD가 차트를 렌더링하므로 롤백도 Git으로 합니다.
Q12. 컨테이너 이미지를 어떻게 최적화하나요?
멀티스테이지 빌드로 빌드 도구를 빼고, 작은 베이스 이미지(slim, distroless)를 쓰고, 자주 바뀌는 레이어를 뒤로 두고, non-root 사용자로 실행합니다. 블로그 예제 Dockerfile에서 멀티스테이지와 non-root를 적용했다고 말하세요.
Q13. 컨테이너와 VM의 차이는?
VM은 하이퍼바이저 위에 OS를 통째로 올리고, 컨테이너는 호스트 커널을 공유하며 네임스페이스·cgroup으로 격리합니다. 컨테이너가 가볍지만 격리가 약해 보안 제품은 VM과 컨테이너를 함께 쓰게 됩니다. 수산이 SSL VA VM과 컨테이너 기반 ePrismX를 모두 갖고 있다는 점을 연결하세요.
DevSecOps·컨테이너 보안·인증

우대사항이지만 보안 회사라 비중이 큽니다. 도구 이름보다 "파이프라인 어디에 무엇을 둔다"를 D1 그림과 함께 말하세요.
★Q1. DevSecOps와 시프트 레프트란?
보안 점검을 출시 직전이 아니라 커밋·빌드 단계로 당겨 자동화하는 것입니다. 늦게 발견할수록 고치는 비용이 커지기 때문입니다.
Q2. SAST, DAST, SCA의 차이는?
SAST는 소스 코드를 실행 없이 분석, DAST는 띄운 서비스에 실제 공격 요청을 보내 검사, SCA는 오픈소스 의존성의 알려진 취약점과 라이선스를 검사합니다. 파이프라인에서는 SAST·SCA를 빌드 전에, DAST를 스테이징 배포 뒤에 둡니다.
★Q3. 이미지 스캔에서 Critical CVE가 나오면?
Critical·High는 MR을 막고, 베이스 이미지·패키지 업데이트로 고칩니다. 수정 버전이 없거나 실제 악용 경로가 없으면 사유와 기한을 적어 예외 처리하고, 이미 배포된 이미지는 SBOM으로 영향 범위를 찾습니다.
Q4. 이미지 서명은 왜 하나요?
레지스트리에 있는 이미지가 우리 파이프라인이 만든 것인지 증명하려는 것입니다. CI에서 cosign으로 서명하고, 클러스터에서 Kyverno 같은 정책 엔진이 서명 없는 이미지를 거부합니다.
Q5. Kubernetes를 어떻게 안전하게 운영하나요?
RBAC 최소 권한, NetworkPolicy 기본 차단, Pod Security Standards(restricted), runAsNonRoot·readOnlyRootFilesystem, Secret 암호화와 외부 저장소, 이미지 다이제스트 고정을 순서대로 말하세요(보안 핵심 개념의 Kubernetes 보안 기본).
Q6. CI 러너 자체의 보안은?
러너는 코드와 시크릿을 모두 보므로 공격 대상입니다. Protected 브랜치에서만 배포용 변수를 열고, 운영 배포용 러너를 분리하고, privileged 도커 빌드 대신 Kaniko·Buildah 같은 rootless 빌드를 고려한다고 답하세요.
★Q7. SBOM은 왜 중요한가요?
새 취약점이 발표됐을 때 어떤 제품·버전에 그 라이브러리가 들어 있는지 바로 찾기 위해서입니다. 공공 SW 공급망 보안 로드맵과 수산 플랫폼팀의 SBOM 업무를 함께 언급하면 회사 맥락에 맞습니다.
★Q8. OAuth 2.0, OIDC, SAML의 차이는?
OAuth 2.0은 권한 위임, OIDC는 그 위에 ID Token을 얹은 인증, SAML은 XML Assertion 기반 SSO입니다. 새 시스템은 OIDC, 기업·공공 레거시 연동은 SAML을 여전히 많이 씁니다(D3 그림).
Q9. JWT는 어떻게 검증하고 무엇이 약점인가요?
header.payload.signature 구조이고, IdP 공개키(JWKS)로 서명을 검증한 뒤 만료(exp), 발급자(iss), 대상(aud)을 확인합니다. 발급 후 취소가 어려워 수명을 짧게 두고 Refresh Token으로 갱신합니다.
Q10. PKCE는 왜 필요한가요?
인가 코드가 가로채여도 code_verifier 원문을 모르면 토큰을 받을 수 없게 하는 장치입니다. 클라이언트 시크릿을 안전하게 보관할 수 없는 SPA·모바일에서 필수고, 지금은 모든 클라이언트에 권장됩니다.
Q11. GitLab·ArgoCD에 SSO를 어떻게 붙이나요?
Keycloak 같은 IdP에 각 도구를 OIDC 클라이언트로 등록하고, IdP 그룹을 ArgoCD RBAC 역할과 GitLab 권한에 매핑합니다. 퇴사자 계정을 IdP에서 한 번만 막으면 모든 도구 접근이 끊긴다는 것이 핵심 장점입니다.
Q12. 출근하자!는 왜 토큰이 아니라 세션을 썼나요?
단일 서비스 그룹웨어라 서버가 세션을 바로 끊을 수 있는 쪽이 더 단순하고, Redis로 세션을 공유해 서버를 늘려도 되도록 했다고 답하세요. 서비스가 여러 개로 나뉘면 OIDC로 가는 것이 자연스럽다는 선까지 연결하세요.
리눅스·네트워크·보안 도메인
신입 개발직 후기에서 가장 자주 나온 것이 "기본 네트워크 지식"과 "우리 회사가 뭐 하는 회사냐"였습니다. 이 묶음은 짧고 정확하게 답하는 연습을 하세요.
리눅스
★Q1. 서버가 느리다는 신고가 오면 무엇부터 보나요?
top·uptime(load average와 CPU) → free -h(메모리·스왑) → df -h·du(디스크 더러참) → iostat(디스크 I/O) → ss -tanp(연결 수·상태) → journalctl·앱 로그 → dmesg(OOM killer) 순서로 본다고 답하세요. 출근하자!에서 로그가 7,900만 줄 쌓인 경험을 디스크 더러참 사례로 연결할 수 있습니다.
Q2. 특정 포트를 쓰는 프로세스는 어떻게 찾나요?
ss -lntp | grep <포트> 또는 lsof -i :<포트>로 찾고, systemctl status로 서비스 상태를 봅니다.
Q3. 파일 권한 755와 644는?
소유자·그룹·기타의 읽기(4)·쓰기(2)·실행(1) 합입니다. 755는 소유자만 쓰기, 모두 읽기·실행, 644는 소유자만 쓰기, 모두 읽기입니다. 비밀키 파일은 600으로 둡니다.
네트워크
Q4. TCP 3-way handshake와 4-way handshake는?
연결은 SYN → SYN-ACK → ACK, 종료는 FIN → ACK → FIN → ACK입니다. 먼저 끊은 쪽에 TIME_WAIT가 남고, 연결을 많이 만들고 끊는 서버는 TIME_WAIT가 쌓여 포트가 부족해질 수 있다는 것까지 말하세요.
Q5. 브라우저에 URL을 치면 일어나는 일은?
DNS 조회(캐시 → 리졸버 → 루트·TLD·권한 서버) → TCP 연결 → TLS 핸드셰이크 → HTTP 요청·응답 → 렌더링. 수산 면접에서는 "회사망이라면 이 경로 중간에 SWG·SSL 가시성 장비가 끼어 검사한다"고 덧붙이세요.
Q6. TLS 핸드셰이크와 인증서 검증은?
보안 핵심 개념의 SSL/TLS 항목대로 답하고, 인증서는 서버 인증서 → 중간 CA → 루트 CA 체인을 단말에 있는 신뢰 루트로 검증한다고 설명하세요. Forward 방식 SSL 가시성에서 사설 루트 CA를 배포하는 이유가 바로 이것입니다.
Q7. L4와 L7 로드밸런서의 차이는?
L4는 IP·포트로 나누고 빠르며, L7은 URL·헤더·쿠키를 보고 나눌 수 있어 TLS 종료가 필요합니다. Kubernetes에서는 Service가 L4, Ingress가 L7에 가깝습니다.
★Q8. 방화벽, IPS, WAF의 차이는?
방화벽은 IP·포트 기반 허용·차단, IPS는 패킷 내용에서 공격 시그니처를 탐지·차단, WAF는 HTTP 요청을 해석해 SQL 인젝션·XSS 같은 웹 공격을 막습니다. 세 장비 모두 암호화 트래픽은 못 보기 때문에 SSL 가시성이 필요하다는 것으로 이어집니다.
보안 도메인·회사
★Q9. 우리 회사가 뭐 하는 회사인가요? (실제 후기에 나온 질문)
트래픽 분석 기술을 바탕으로 SSL 가시성·유해사이트 차단·DLP 같은 네트워크 보안 솔루션과 통신사 부가서비스를 하는 회사이고, 지금은 생성형 AI 보안·SSE·클라우드를 묶는 통합 보안 플랫폼으로 가고 있다고 두 문장으로 답하세요.
★Q10. 우리 제품 중 1위 제품은? (실제 후기에 나온 질문)
SSL 복호화·가시화 제품인 ePrism SSL VA를 중심으로 답하세요. 회사는 SSL 복호화와 유해사이트 차단 솔루션을 시장점유율 1위 제품으로 소개합니다(잡플래닛 기업소개). 2025년 우수 정보보호기술 지정과 2026년 국정원 보안기능확인서까지 말하면 충분합니다.
★Q11. SSL 가시성 장비는 왜 필요하고, 인라인으로 두면 위험하지 않나요?
암호화 트래픽을 기존 보안장비가 못 보기 때문에 필요하고, 인라인 장애 위험은 바이패스와 이중화로 대응한다고 답하세요(D4 그림). "장애가 나도 트래픽은 흐르게"라는 설계가 무중단 배포와 같은 사고방식이라고 연결하면 DevOps 지원자답게 마무리됩니다.
Q12. N2SF, 제로트러스트, PQC를 아나요?
각각 한 문장으로 답할 수 있게 보안 핵심 개념을 읽어 두세요. N2SF는 등급별 망보안, 제로트러스트는 매 요청 검증, PQC는 양자컴퓨터 이후에도 안전한 암호입니다.
Q13. 생성형 AI를 회사에서 쓸 때 보안 위협은?
프롬프트·첨부파일로 개인정보·기밀이 외부 LLM에 나가는 것이 가장 크고, 지니친 권한의 에이전트와 프롬프트 인젝션도 있습니다. 수산은 eSafe AI 게이트웨이와 DLP의 프롬프트 분석으로 대응한다고 말하고, RAG를 만들며 LLM 입출력을 다뤄 본 경험을 연결하세요.
★Q14. 보안 회사의 DevOps는 일반 서비스 회사와 무엇이 다를까요?
인증받은 버전과 실제 납품 바이너리가 같아야 해서 재현 가능한 빌드와 변경 이력이 더 중요하고, 고객사 폐쇄망에 납품하는 어플라이언스와 클라우드 서비스를 동시에 다루며, 파이프라인 자체가 공급망 공격 대상이라 더 엄격하게 지켜야 한다고 답하세요. 이 질문은 안 나와도 마지막 한마디로 쓸 수 있습니다.
7. Jenkins·K8s·IaC 도구·리눅스13분
공고 필수 요건의 CI/CD 도구에 Jenkins가 있고, 이력서에도 Jenkins가 있어 반드시 한 번은 나옵니다. 쿠버네티스는 "동작 원리 → 장애 대응" 순서로, 리눅스는 "증상 → 명령어" 순서로 답하면 됩니다. 6장과 겹치지 않는 질문만 담았습니다.
Jenkins
★Q1. Jenkins 구조를 설명해 보세요.
Controller(예전 이름 master)는 UI, 잡 설정, 스케줄링, 빌드 이력과 플러그인(JENKINS_HOME)을 맡습니다. 실제 빌드는 Agent에서 돌고, executor 수가 동시에 돌 수 있는 빌드 수입니다. 에이전트는 SSH나 inbound(JNLP)로 붙고, 보안과 부하 때문에 컨트롤러에서는 빌드를 돌리지 않는 것(executor 0)이 원칙입니다.
★Q2. Declarative와 Scripted Pipeline의 차이는?
Declarative는 pipeline { agent, stages, steps, post } 틀이 정해져 있어 읽기 쉽고 문법 검증이 되므로 기본으로 씁니다. Scripted는 node { } 안에 Groovy를 자유롭게 쓰는 방식이라 유연하지만 복잡해집니다. Declarative 안에서 꼭 필요한 부분만 script { }로 Groovy를 씁니다.
★Q3. Jenkinsfile을 저장소에 두는 이유는?
파이프라인도 코드처럼 리뷰·버전 관리·롤백을 하려는 것입니다(Pipeline as Code). Multibranch Pipeline은 브랜치·MR마다 Jenkinsfile을 찾아 잡을 자동으로 만들어 줍니다. UI에서 잡을 손으로 고치면 누가 언제 바꿨는지 남지 않습니다.
Q4. 빌드는 어떻게 트리거하나요?
GitLab·GitHub webhook(push, MR)이 기본입니다. Poll SCM은 주기적으로 저장소를 확인해 비효율적이고, 야간 빌드는 triggers { cron('H 2 * * *') }처럼 씁니다. H는 잡마다 시간을 흩어 동시에 몰리지 않게 합니다.
★Q5. 시크릿·자격증명은 어떻게 다루나요?
Credentials에 저장하고(ID/PW, Secret text, SSH 키, 파일) withCredentials나 environment { TOKEN = credentials('id') }로 주입합니다. 로그에는 ****로 가려집니다. Jenkinsfile에 평문을 두지 않고, 폴더 단위 권한과 Vault 연동으로 범위를 좁힙니다.
★Q6. Jenkins를 Kubernetes에서 어떻게 돌리나요?
Kubernetes 플러그인으로 빌드마다 에이전트 파드를 띄우고 끝나면 지웁니다. podTemplate(또는 agent { kubernetes { yamlFile } })에 gradle·trivy·kaniko 같은 컨테이너를 정의합니다. 유휴 에이전트가 없고 빌드끼리 격리됩니다. 이미지 빌드는 Docker 소켓 마운트 대신 Kaniko·Buildah처럼 권한이 필요 없는 도구를 쓰고, 컨트롤러는 Helm으로 설치해 JENKINS_HOME을 PVC에 둡니다.
★Q7. Jenkins와 ArgoCD는 역할을 어떻게 나누나요?
Jenkins는 테스트·스캔·이미지 빌드·푸시, 그리고 GitOps 저장소의 이미지 태그를 바꾸는 커밋까지만 합니다. 실제 배포는 클러스터 안의 ArgoCD가 Git을 당겨 와 맞춥니다. 그래서 Jenkins에 운영 클러스터 kubeconfig를 줄 필요가 없습니다. 공고에 Jenkins와 ArgoCD가 함께 나오는 이유를 이렇게 설명하면 됩니다.
Q8. Shared Library는 무엇인가요?
여러 서비스가 쓰는 공통 단계(빌드, 스캔, 알림)를 별도 Git 저장소의 Groovy 라이브러리로 두고 @Library('ci-lib') _로 불러 씁니다. 서비스마다 Jenkinsfile을 복사하지 않아도 되고, 스캔 기준을 한 곳에서 바꿉니다. 공고의 "표준화"와 같은 이야기입니다.
Q9. 빌드 시간을 어떻게 줄이나요?
parallel로 테스트와 정적 분석을 동시에, 의존성 캐시(PVC·로컬 저장소), Docker 레이어 캐시, when { changeset 'module/**' }로 바뀐 모듈만 빌드, 빠른 테스트를 앞에 둬 일찍 실패시키기, options { timeout() }으로 멈춘 빌드 정리.
Q10. 빌드가 실패하면 어떻게 보나요?
Console Output에서 처음 실패한 단계를 찾고, 다시 돌려도 같은지(에이전트·캐시 차이) 봅니다. 에이전트 디스크·메모리, 최근 플러그인 업데이트 여부도 확인합니다. Replay로 Jenkinsfile을 고쳐 다시 돌려 보고, post { failure { } }로 실패 알림을 보냅니다.
★Q11. Jenkins 운영에서 어려운 점과 보안은?
플러그인 버전 충돌, 컨트롤러 단일 장애점, JENKINS_HOME 백업이 운영 부담입니다. 보안은 컨트롤러 executor 0, Role 기반 권한, Script Console 접근 제한(서버에서 임의 코드가 돈다), 보안 패치 주기 관리입니다. 설정은 JCasC(Configuration as Code)로 코드화해 서버를 다시 만들 수 있게 합니다.
Q12. Jenkins를 GitLab CI로 옮긴다면?
stage는 stages·job으로, Credentials는 Masked·Protected 변수로, 에이전트 label은 Runner tag로, Shared Library는 include 템플릿으로 옮깁니다. 새 서비스부터 옮기고, 같은 이미지·스캔 단계를 유지해 결과를 비교하며 점진적으로 바꾼다고 답합니다.
예시 Jenkinsfile (면접에서는 단계 이름과 이유만 말할 수 있으면 됩니다)
pipeline {
agent { kubernetes { yamlFile 'ci/pod.yaml' } } // gradle, trivy, kaniko 컨테이너
options { timeout(time: 20, unit: 'MINUTES') }
environment { IMAGE = "registry.local/app:${env.GIT_COMMIT.take(7)}" }
stages {
stage('Test') { steps { container('gradle') { sh './gradlew test' } } }
stage('Scan') {
parallel {
stage('SAST') { steps { container('gradle') { sh './gradlew sonar' } } }
stage('Trivy') { steps { container('trivy') { sh 'trivy fs --exit-code 1 --severity CRITICAL .' } } }
}
}
stage('Image') { steps { container('kaniko') { sh '/kaniko/executor --context . --destination $IMAGE' } } }
stage('GitOps') {
when { branch 'main' }
steps {
withCredentials([string(credentialsId: 'gitops-token', variable: 'TOKEN')]) {
sh './ci/bump-tag.sh $IMAGE' // overlays/dev의 이미지 태그 변경 커밋
}
}
}
}
post { always { junit 'build/test-results/**/*.xml' } }
}쿠버네티스 심화
★Q1. kubectl apply를 치면 파드가 뜨기까지 무슨 일이 일어나나요?
apiserver가 인증·인가(RBAC)·Admission을 거쳐 etcd에 저장합니다. Deployment 컨트롤러가 ReplicaSet을, ReplicaSet 컨트롤러가 Pod를 만들고, scheduler가 노드를 정합니다. 그 노드의 kubelet이 containerd로 이미지를 받아 실행하고 CNI가 IP를 줍니다. readiness가 통과하면 EndpointSlice에 들어가고 kube-proxy 규칙이 바뀌어 트래픽을 받습니다.
★Q2. 파드가 Pending이면?
스케줄이 안 된 것입니다. kubectl describe pod의 Events에서 FailedScheduling 이유를 봅니다: 노드 자원 부족(requests가 큼), nodeSelector·affinity 불일치, taint를 허용하지 않음, PVC가 바인딩되지 않음.
★Q3. CrashLoopBackOff의 원인과 해결은?
컨테이너가 떴다가 계속 죽는 상태입니다. kubectl logs --previous로 직전 로그, describe의 Last State와 Exit Code를 봅니다. 1은 앱 오류, 137은 SIGKILL(대개 OOMKilled), 143은 SIGTERM입니다. 흔한 원인은 설정·환경변수 누락, 너무 빡빡한 liveness probe(startupProbe나 initialDelay로 해결), 메모리 limit 부족입니다.
Q4. ImagePullBackOff는?
이미지 이름·태그 오타, 프라이빗 레지스트리 인증(imagePullSecrets) 누락, 레지스트리 접근 불가가 원인입니다. 폐쇄망 고객사라면 내부 레지스트리 미러에 이미지를 미리 넣어야 합니다.
★Q5. 파드 종료와 graceful shutdown은 어떻게 되나요?
삭제 요청이 오면 Terminating이 되고 Endpoint에서 빠지는 것과 동시에 preStop이 실행된 뒤 SIGTERM이 갑니다. terminationGracePeriodSeconds(기본 30초)가 지나면 SIGKILL입니다. 앱은 SIGTERM을 받으면 새 요청을 받지 않고 처리 중인 요청을 끝내야 하고(Spring Boot server.shutdown=graceful), Endpoint 제거가 퍼지는 동안 요청이 들어오지 않게 preStop에 몇 초 sleep을 둡니다.
Q6. Service는 어떻게 파드로 트래픽을 보내나요?
Service selector에 맞고 Ready인 파드 IP가 EndpointSlice에 모이고, 각 노드의 kube-proxy가 iptables(또는 IPVS) 규칙으로 ClusterIP를 파드 IP로 바꿉니다. 이름은 CoreDNS가 서비스.네임스페이스.svc.cluster.local로 풀어 줍니다. Cilium 같은 eBPF CNI는 kube-proxy 역할을 대신하기도 합니다.
Q7. CNI는 무엇인가요?
파드마다 IP를 주고 노드 사이 통신을 만드는 네트워크 플러그인 규격입니다(Calico, Flannel, Cilium). NetworkPolicy는 CNI가 지원해야 동작하므로 Flannel만 쓰면 적용되지 않습니다.
★Q8. NetworkPolicy로 무엇을 하나요?
기본은 모든 파드가 서로 통신할 수 있습니다. 네임스페이스마다 default deny를 걸고 필요한 ingress·egress만 라벨과 포트로 엽니다. 보안 회사 면접에서는 "클러스터 안에서 하는 제로트러스트"라고 연결하면 좋습니다.
★Q9. RBAC과 ServiceAccount는?
Role·ClusterRole이 "무엇을 할 수 있나", RoleBinding이 "누구에게 주나"입니다. 파드는 ServiceAccount 토큰으로 API를 부르므로, 필요한 권한만 주고 쓰지 않는 파드는 automountServiceAccountToken: false로 토큰을 끕니다. CI 러너와 ArgoCD 권한 범위를 정할 때 그대로 쓰는 개념입니다.
Q10. 특정 노드에만 파드를 두거나 흩어 두려면?
nodeSelector(라벨 일치), nodeAffinity(필수·선호), taint·toleration(노드가 허용한 파드만 받음, 전용·GPU 노드), podAntiAffinity나 topologySpreadConstraints(같은 앱을 다른 노드·존에 분산)를 씁니다.
★Q11. 노드 점검·업그레이드를 무중단으로 하려면?
kubectl cordon으로 새 배치를 막고 kubectl drain --ignore-daemonsets로 파드를 옮긴 뒤 작업하고 uncordon합니다. PodDisruptionBudget(minAvailable)으로 한 번에 내려가는 파드 수를 제한합니다. 클러스터 업그레이드는 컨트롤 플레인 먼저, 노드는 한 대씩, 마이너 버전은 한 단계씩 올립니다.
Q12. etcd와 클러스터 백업은?
etcdctl snapshot save로 주기 백업하고 snapshot restore로 복구합니다. 매니페스트는 Git에 있어 다시 만들 수 있지만, Secret·PV 데이터는 Velero 같은 도구로 따로 백업합니다.
Q13. init 컨테이너와 사이드카는?
init 컨테이너는 본 컨테이너 전에 순서대로 실행되고 끝나야 합니다(DB 대기, 설정 준비). 사이드카는 함께 돌며 로그 수집·프록시를 맡습니다. 1.29부터는 initContainers에 restartPolicy: Always를 준 네이티브 사이드카를 씁니다.
Q14. ResourceQuota와 LimitRange는?
ResourceQuota는 네임스페이스 전체 사용량 상한, LimitRange는 컨테이너별 기본값과 최대 requests·limits입니다. 팀이나 고객별로 네임스페이스를 나눌 때 한쪽이 자원을 독차지하지 못하게 합니다.
Q15. Operator와 CRD는?
CRD로 새 리소스 종류를 정의하고, Operator는 그 리소스를 원하는 상태로 맞추는 컨트롤러입니다(DB 백업·장애조치 자동화). ArgoCD의 Application, cert-manager의 Certificate도 CRD입니다. "쿠버네티스의 조정 루프를 내 도메인으로 확장하는 것"이라고 답합니다.
Q16. 파드 보안 설정은 무엇을 넣나요?
Pod Security Standards(privileged·baseline·restricted)를 네임스페이스 라벨로 적용하고, runAsNonRoot, readOnlyRootFilesystem, capabilities: drop: [ALL], privileged 금지를 기본으로 둡니다.
Q17. 자주 쓰는 디버깅 명령은?
get -o wide, describe, logs -f --previous, exec -it, port-forward, top pod/node, get events --sort-by=.lastTimestamp, kubectl debug(이미지에 셸이 없을 때 임시 컨테이너), rollout status / history / undo.
Terraform
6장 IaC 질문(왜 쓰나, state, Ansible과 차이, 멱등성, 환경 분리, 모듈, 드리프트)의 다음 단계 질문입니다.
Q1. Terraform의 기본 구성 요소는?
provider(AWS·쿠버네티스 등 대상 API), resource(만들 자원), data(이미 있는 자원 조회), variable(입력), output(다른 모듈·사람에게 넘길 값), module(묶음 재사용)입니다. terraform init으로 provider를 받고 plan으로 차이를 본 뒤 apply합니다.
Q2. state를 팀에서 어떻게 관리하나요?
로컬이 아니라 원격 backend(S3 + DynamoDB 잠금, GitLab managed state 등)에 두고 잠금을 걸어 동시에 apply하지 못하게 합니다. state에는 비밀번호 같은 값이 평문으로 들어갈 수 있어 접근 권한과 암호화가 필요합니다. 환경마다 state를 분리합니다.
★Q3. count와 for_each의 차이는?
count는 숫자 인덱스라 중간 항목을 빼면 뒤의 자원 번호가 밀려 재생성될 수 있습니다. for_each는 키(map·set)로 구분해 하나를 빼도 나머지가 그대로입니다. 그래서 이름이 있는 자원 목록은 for_each를 씁니다.
Q4. 환경은 workspace와 디렉터리 중 무엇으로 나누나요?
workspace는 같은 코드에 state만 나눠 간단하지만 실수로 다른 환경에 apply하기 쉽습니다. 실무에서는 envs/dev, envs/prod 디렉터리마다 backend와 tfvars를 두고 공통 모듈을 부르는 방식을 많이 씁니다.
Q5. 운영 자원이 실수로 지워지지 않게 하려면?
lifecycle { prevent_destroy = true }, 교체가 필요하면 create_before_destroy, 파이프라인에서 plan 결과를 MR에 남겨 사람이 보고 승인한 뒤에만 apply합니다. plan에 destroy가 있으면 멈추게 하는 규칙도 둡니다.
Q6. Terraform을 CI/CD에 어떻게 넣나요?
MR에서 fmt -check → validate → plan(결과를 MR 코멘트·아티팩트로), main 병합 후 승인을 거쳐 apply입니다. tfsec·Checkov로 보안 설정을 정적 검사합니다. 같은 plan 파일을 apply해야 검토한 내용 그대로 반영됩니다.
module "cluster" {
source = "../../modules/k8s"
env = "prod"
node_count = var.node_count
}
resource "helm_release" "airflow" { # 실습 계획: Airflow 설치를 코드로
name = "airflow"
chart = "airflow"
repository = "https://airflow.apache.org"
values = [file("values-prod.yaml")]
}Ansible
★Q1. Ansible은 어떻게 동작하나요?
에이전트 없이 SSH로 접속해 Python 모듈을 실행합니다(agentless). inventory(대상 서버 목록·그룹), playbook(무엇을 할지), role(재사용 묶음), task(한 단계), handler(변경됐을 때만 실행, 예: 설정 바뀌면 재시작)로 구성됩니다.
Q2. 멱등성을 어떻게 지키나요?
shell·command 대신 apt, copy, template, service처럼 상태를 확인하는 모듈을 씁니다. 그러면 이미 원하는 상태면 changed가 아니라 ok로 끝납니다. 꼭 shell을 써야 하면 creates나 changed_when으로 조건을 겁니다.
Q3. 비밀값은 어떻게 다루나요?
ansible-vault로 변수 파일을 암호화하고, CI에서는 vault 비밀번호를 시크릿 변수로 주입합니다. 로그에 찍히지 않게 no_log: true를 씁니다.
Q4. 운영 서버에 적용하기 전에 확인하는 방법은?
--check --diff로 무엇이 바뀌는지 미리 보고, --limit으로 한 대·한 그룹부터 적용하고, serial로 몇 대씩 나눠 롤링 적용합니다.
★Q5. Terraform이 있는데 Ansible이 왜 필요한가요?
Terraform은 VM·네트워크·클러스터를 만드는 일, Ansible은 만들어진 서버 안의 OS 설정·패키지·하드닝을 맞추는 일입니다. 수산처럼 고객사에 VM·어플라이언스를 납품하거나 폐쇄망 서버를 다루면 Ansible(오프라인 패키지 저장소와 함께)이 특히 쓸모 있습니다.
- hosts: web
become: true
roles: [hardening]
tasks:
- name: nginx 설치
apt: { name: nginx, state: present }
- name: 설정 배포
template: { src: nginx.conf.j2, dest: /etc/nginx/nginx.conf }
notify: restart nginx
handlers:
- name: restart nginx
service: { name: nginx, state: restarted }Helm
Q1. Helm 차트는 어떻게 구성되나요?
Chart.yaml(이름·버전·의존성), values.yaml(기본값), templates/(Go 템플릿 매니페스트), _helpers.tpl(공통 이름·라벨)입니다. 차트 버전과 앱 버전(appVersion)은 따로 관리합니다.
★Q2. values는 어떤 순서로 덮어쓰이나요?
차트 기본 values.yaml → -f 파일(뒤에 준 파일이 우선) → --set이 가장 우선입니다. 환경별 값은 values-dev.yaml, values-prod.yaml로 나눕니다. Airflow를 Helm으로 올리며 values를 바꾼 경험을 여기에 붙입니다. [실제 바꾼 값]
★Q3. 배포 상태와 롤백은?
릴리스마다 리비전이 쌓여 helm history로 보고 helm rollback 이름 리비전으로 되돌립니다. helm upgrade --install --atomic은 실패하면 자동으로 이전 리비전으로 돌립니다. 배포 전에는 helm template이나 helm diff로 결과 매니페스트를 확인합니다.
Q4. Helm hook은 언제 쓰나요?
pre-install, pre-upgrade 같은 시점에 DB 마이그레이션 Job을 먼저 돌릴 때 씁니다. ArgoCD로 배포하면 Helm hook이 ArgoCD sync hook으로 바뀌어 동작합니다.
Q5. ArgoCD와 Helm을 같이 쓰면?
ArgoCD가 helm template으로 렌더링해 적용하므로 클러스터에 Helm 릴리스 이력이 남지 않습니다. 롤백도 helm rollback이 아니라 Git revert로 합니다.
Kustomize
★Q1. Kustomize는 어떻게 동작하나요?
템플릿 없이 순수 YAML인 base에 overlay(dev·prod)가 패치를 덮어씁니다. kubectl apply -k overlays/prod나 kustomize build로 결과를 만듭니다. 주식 파이프라인에서 dev는 레플리카 1·DEBUG, prod는 HPA 3~10·WARNING으로 나눈 것이 그대로 예시입니다.
Q2. 패치 방식은 어떤 것이 있나요?
strategic merge patch(바꿀 부분만 YAML로 적음)와 JSON 6902 patch(op·path로 정확한 위치를 지정, 리스트 항목 수정에 유리)입니다. 지금은 patches: 필드 하나로 두 방식을 모두 씁니다.
Q3. 이미지 태그는 어떻게 바꾸나요?
images: 항목에 newTag를 적거나 kustomize edit set image를 씁니다. CI가 GitOps 저장소의 이 값만 바꾸는 커밋을 올리면 ArgoCD가 배포합니다.
★Q4. configMapGenerator의 장점은?
파일에서 ConfigMap을 만들고 이름 뒤에 내용 해시를 붙입니다. 설정이 바뀌면 이름이 바뀌어 Deployment가 새로 롤링되므로, "설정만 바꿨는데 파드가 옛 값을 쓰는" 문제를 막습니다.
Q5. Helm과 Kustomize는 언제 무엇을 쓰나요?
외부에서 받아 쓰는 소프트웨어(Airflow, Kafka, 모니터링)는 공식 Helm 차트, 우리가 만든 서비스는 읽기 쉬운 Kustomize가 흔합니다. Helm으로 렌더링한 결과를 Kustomize로 다시 패치하는 조합도 씁니다.
# overlays/prod/kustomization.yaml
resources: [../../base]
images:
- name: app
newTag: "a1b2c3d"
replicas:
- name: app
count: 3
patches:
- path: hpa.yaml
configMapGenerator:
- name: app-config
literals: [LOG_LEVEL=WARNING]리눅스
공공 SI에서 다룬 서버 환경과 직접 써 본 명령이 있다면 한 줄로 준비해 두세요. [실제 다뤄 본 OS·명령]
| 증상 | 먼저 칠 명령 | 확인할 것 |
|---|---|---|
| 서버가 느림 | uptime, top, vmstat 1 | load와 코어 수, CPU us·sy·wa |
| 디스크 I/O | iostat -x 1, iotop | %util, await |
| 메모리 | free -h, dmesg -T의 oom 로그 | available, OOM killer |
| 디스크 꽉 참 | df -h, df -i, du -sh *, lsof +L1 | 용량, inode, 지웠는데 열려 있는 파일 |
| 포트·연결 | ss -tlnp, ss -s | 리슨 주소(0.0.0.0 / 127.0.0.1), TIME_WAIT 수 |
| DNS | dig, /etc/resolv.conf | 응답, nameserver |
| 서비스 | systemctl status, journalctl -u 이름 -f | 재시작 반복, 에러 로그 |
| 패킷 | tcpdump -i any port 443 | SYN만 가고 응답이 없는지 |
★Q1. load average는 무엇이고 얼마면 높은가요?
1·5·15분 동안 실행 중이거나 기다리는(I/O 대기 D 상태 포함) 프로세스 수의 평균입니다. 코어 수와 비교해 코어 4개에 4면 꽉 찬 것입니다. load는 높은데 CPU가 놀고 있으면 I/O 대기(wa)를 의심하고 iostat을 봅니다.
★Q2. free를 보니 used가 높은데 메모리가 부족한 건가요?
buff/cache는 필요하면 돌려받는 메모리라 available을 봐야 합니다. 정말 모자라면 커널 OOM killer가 oom_score가 높은 프로세스를 죽이고 dmesg에 남습니다. 컨테이너는 cgroup 한도(limits) 기준으로 죽어 OOMKilled가 됩니다.
★Q3. 디스크가 꽉 찼는데 du 합계와 df가 안 맞아요.
지운 파일을 프로세스가 아직 열고 있으면 공간이 돌아오지 않습니다. lsof +L1로 찾아 그 프로세스를 재시작합니다. 용량은 남았는데 파일을 못 만들면 inode 고갈(df -i)입니다. 로그는 logrotate로 관리합니다. 출근하자! PR #72에서 무한 재시도로 로그가 7,900만 줄 쌓인 일과 연결할 수 있습니다.
Q4. 프로세스 상태와 좀비 프로세스는?
R 실행, S 대기, D 끊을 수 없는 I/O 대기, Z 좀비(끝났지만 부모가 wait 하지 않음), T 정지입니다. 좀비는 부모 프로세스를 고치거나 재시작해야 없어집니다. 컨테이너의 PID 1이 신호 처리와 좀비 수거를 못 하면 tini 같은 init을 씁니다.
★Q5. SIGTERM과 SIGKILL의 차이는?
SIGTERM(15)은 정리할 기회를 주는 종료 요청이고 kill의 기본값입니다. SIGKILL(9)은 가로챌 수 없는 강제 종료입니다. 종료 코드는 128+신호 번호라 137은 KILL, 143은 TERM입니다. 쿠버네티스 파드 종료가 TERM → 유예 시간 → KILL인 이유입니다.
★Q6. systemd로 서비스를 어떻게 관리하나요?
systemctl start/stop/restart/status, 부팅 시 자동 실행은 enable, 유닛 파일을 고친 뒤에는 daemon-reload입니다. 유닛에는 ExecStart, Restart=on-failure, User를 둡니다. 로그는 journalctl -u 이름 -f, 그 밖에 /var/log/messages(또는 syslog)와 dmesg를 봅니다.
Q7. "Too many open files" 에러는?
파일과 소켓마다 파일 디스크립터를 쓰는데 프로세스 한도(ulimit -n, systemd는 LimitNOFILE)를 넘은 것입니다. /proc/<pid>/fd 개수로 확인하고, 한도를 올리기 전에 커넥션·파일 누수부터 의심합니다.
Q8. 하드링크와 심볼릭 링크의 차이는?
하드링크는 같은 inode를 가리키는 또 하나의 이름이라 원본을 지워도 남고, 디렉터리나 다른 파일시스템에는 못 겁니다. 심볼릭 링크는 경로를 가리키는 파일이라 원본을 지우면 깨집니다.
Q9. setuid, sticky bit, umask는?
setuid는 실행할 때 파일 소유자 권한으로 돌게 하고(passwd), sticky bit는 /tmp처럼 누구나 쓰지만 자기 파일만 지우게 합니다. umask는 새 파일의 기본 권한을 정합니다(022면 파일 644, 디렉터리 755).
★Q10. 네트워크가 안 될 때 무엇부터 보나요?
아래 계층부터 올라갑니다. ip a·ip r(IP·라우팅) → ping(L3) → dig(DNS) → nc -zv 호스트 포트나 curl -v(포트·L7) → 서버 쪽 ss -tlnp(리슨 중인지, 127.0.0.1에만 묶였는지) → 방화벽(iptables -L -n, firewall-cmd, 클라우드 보안그룹) → tcpdump로 패킷 확인.
Q11. iptables는 어떻게 동작하나요?
filter·nat 같은 테이블과 INPUT·OUTPUT·FORWARD·PREROUTING·POSTROUTING 체인이 있고, 규칙은 위에서부터 처음 맞는 것이 적용됩니다. Docker와 kube-proxy가 nat 테이블에 규칙을 써서 포트 포워딩과 Service를 구현합니다. 요즘 배포판은 nftables가 기본입니다.
Q12. SSH는 어떻게 안전하게 쓰나요?
공개키는 서버의 authorized_keys에, 개인키는 클라이언트에 두고 권한은 600입니다. sshd_config에서 비밀번호 로그인과 root 로그인을 끄고, 접속은 배스천 호스트를 거치게 하고, fail2ban으로 무차별 대입을 막습니다.
Q13. cron 작업이 셸에서는 되는데 cron에서는 안 돼요.
cron은 로그인 셸과 환경변수(PATH 등)가 다릅니다. 절대 경로를 쓰고, 출력을 로그 파일로 남겨(>> log 2>&1) 원인을 봅니다. 형식은 분 시 일 월 요일이고, 쿠버네티스에서는 CronJob이 같은 역할을 합니다.
Q14. 셸 스크립트를 안전하게 쓰려면?
맨 위에 set -euo pipefail(에러, 정의 안 된 변수, 파이프 중간 실패에서 멈춤)을 두고, 변수는 따옴표로 감싸고, trap으로 정리 작업을 하고, shellcheck로 검사합니다. CI 스크립트에서 실패가 조용히 묻히지 않게 하는 기본입니다.
Q15. 컨테이너는 리눅스의 무엇으로 만들어지나요?
namespace(pid·net·mnt·uts·ipc·user: 보이는 범위 격리), cgroup(CPU·메모리 사용량 제한), overlayfs(이미지 레이어), seccomp·capabilities(시스템 호출·권한 제한)입니다. 쿠버네티스 limits가 결국 cgroup 설정이라 메모리를 넘으면 OOMKilled가 됩니다.
8. 역질문·마무리3분
역질문은 "이 포지션에서 실제로 무엇을 하게 되는가"를 확인하는 것 위주로 2~3개만 고르세요.
역질문
- 통합 보안 서비스 플랫폼은 ePrismX, SSE, 클라우드 보안 중 어떤 제품을 묶는 것인지, 입사 후 첫 6개월에 맡게 될 일은 무엇인지
- GitLab CI와 ArgoCD가 이미 운영 중인지, 지금 도입하는 단계인지
- 고객사에 납품하는 어플라이언스·VM 이미지 빌드와 클라우드 서비스 배포를 DevOps팀이 모두 맡는지
- CC·GS 인증 버전과 릴리스를 어떻게 관리하는지
- 대전 플랫폼팀(SBOM·취약점 스캐닝), 보안연구소와 어떻게 협업하는지
- 신입에게 기대하는 첫 3개월의 모습과 온보딩 방식
면접 전 체크리스트
부록: 시간이 남으면
보안 핵심 개념
수산 제품은 대부분 "암호화된 트래픽을 어떻게 보고, 어디서 막느냐"의 문제입니다. SSL/TLS와 배치 방식을 먼저 이해하면 제품군 전체가 한 줄로 꿰어지고, DevOps 면접에서는 그 위에 파이프라인·컨테이너 보안을 얹으면 됩니다.
SSL/TLS와 SSL 가시성
- TLS 핸드셰이크: ClientHello(지원 암호스위트, SNI, 키 공유값) → ServerHello와 서버 인증서 → ECDHE로 세션키 합의 → 이후 대칭키로 데이터 암호화. TLS 1.3은 1-RTT로 줄었고, 인증서도 암호화된 상태로 오갑니다.
- 왜 가시성 장비가 필요한가: 웹 트래픽 대부분이 HTTPS라 IPS·DLP·SWG가 내용을 못 봅니다. 악성코드와 정보 유출이 암호화 터널로 그대로 통과합니다.
- Forward 방식(내부 사용자 → 외부): 장비가 사설 CA로 인증서를 다시 서명해 중간에서 복호화합니다. 단말에 사설 루트 CA를 배포해야 합니다.
- Reverse 방식(외부 → 자사 서버): 서버 인증서와 개인키를 장비에 등록해 인바운드를 복호화합니다.
- 인라인이 필요한 이유: ECDHE의 전방향 안전성(PFS) 때문에 서버 개인키만으로는 미러링한 트래픽을 사후에 풀 수 없습니다. 그래서 세션 중간에 끼어드는 인라인 프록시가 필요합니다.
- 선택적 복호화와 바이패스: 금융·의료 같은 개인정보 사이트는 복호화 예외로 둡니다. 인라인 장비가 죽으면 네트워크가 죽으므로 장애 시 트래픽을 그냥 흘려보내는 바이패스가 필수입니다. ePrism SSL VA의 DTZ와 바이패스가 바로 이 구조입니다.
배치 방식
| 방식 | 동작 | 장점 | 주의점 |
|---|---|---|---|
| 인라인(Active) | 트래픽이 장비를 직접 통과 | 실시간 차단 가능 | 장비 장애가 곧 네트워크 장애, 바이패스·이중화 필수 |
| 미러·TAP(Passive) | 스위치에서 복사한 트래픽만 봄 | 네트워크에 영향 없음 | 차단이 어렵고 TCP RST 주입 정도, PFS 트래픽은 복호화 불가 |
| Forward 프록시 | 단말이 프록시를 거쳐 외부로 | 사용자 식별·URL 통제가 쉬움 | 단말 설정·루트 CA 배포 |
| Reverse 프록시 | 서버 앞에서 요청을 받아 전달 | 서버 보호(WAF와 같은 자리) | 서버 인증서 관리 |
| Out of Path | 경로 밖에서 탐지, 필요할 때만 개입 | 서비스 영향 최소 | 차단력이 인라인보다 약함 |
보안 제품 용어
| 용어 | 한 줄 정의 | 수산 제품 |
|---|---|---|
| SWG | 사용자의 웹 접속을 검사·통제하는 게이트웨이 | eWalker SWG |
| DLP | 민감 정보가 밖으로 나가는 것을 탐지·차단 | eWalker DLP |
| WAF | 웹 애플리케이션 공격(SQL 인젝션, XSS 등) 차단 | eWalker WAF, eCloudX WAF |
| IPS | 네트워크 침입 시그니처를 실시간 차단 | 타사 장비, SSL VA가 복호화 트래픽을 넘겨줌 |
| SSL VPN | TLS 기반 원격접속, 브라우저만으로 동작 가능 | eWalker SSL VPN |
| ZTNA | VPN처럼 망 전체가 아니라 앱 단위로, 매 요청마다 검증 후 접근 허용 | eWalker SSE 안의 기능 |
| CASB | 사용자와 SaaS 사이에서 클라우드 사용을 통제 | eWalker SSG가 가까움 |
| SSE | SWG + CASB + ZTNA를 클라우드 서비스로 묶은 것 | eWalker SSE |
| SASE | SSE에 SD-WAN 같은 네트워크 기능까지 더한 것 | — |
제로트러스트와 N2SF
- 제로트러스트: 내부망에 있다는 이유로 신뢰하지 않고, 매 요청마다 사용자·기기·맥락을 검증해 최소 권한만 줍니다.
- N2SF(국가망보안체계): 국정원이 주도하는 공공 망보안 체계입니다. 획일적인 물리적 망분리 대신 업무 중요도에 따라 기밀(C), 민감(S), 공개(O) 등급별로 통제를 다르게 적용합니다. 국정원이 가이드라인과 통제항목을 공개했고, 2026년에도 실증사업이 이어지고 있습니다(디지털데일리).
- 수산이 SSG와 DLP에 N2SF 등급 통제를 넣는 이유가 이것입니다. 공공에서 생성형 AI·SaaS를 쓰려면 등급별 통제 장치가 필요합니다.
보안제품 인증과 DevOps
- CC인증: 국제공통평가기준(Common Criteria)에 따른 보안제품 평가로, 공공기관 도입 때 요구되는 경우가 많습니다. EAL 등급이 높을수록 검증이 깊습니다.
- GS인증: 소프트웨어 품질 인증입니다.
- 보안기능확인서: 국정원 기준으로 제품의 보안 기능을 시험해 발급하는 확인서입니다.
- DevOps와의 연결: 인증받은 버전과 실제 납품되는 바이너리가 같아야 합니다. 그래서 재현 가능한 빌드, 아티팩트 버전 고정, 변경 이력 관리가 일반 서비스 회사보다 더 중요합니다. 면접에서 꺼내면 회사를 이해하고 있다는 인상을 줄 수 있는 포인트입니다.
PQC(양자내성암호)
- 양자컴퓨터가 RSA·ECC를 풀 수 있게 되면 지금 암호화한 트래픽도 나중에 풀릴 수 있습니다(지금 수집하고 나중에 복호화).
- 미국 NIST는 2024년 8월 ML-KEM, ML-DSA, SLH-DSA를 표준으로 정했고, 한국형 알고리즘(KpqC)으로는 AIMer, SMAUG-T, HAETAE가 선정됐습니다. 한국은 2035년까지 주요 기반시설 적용을 목표로 하고, KISA가 2026년 시범전환 사업을 지원합니다(보안뉴스).
- 수산은 SSL VPN 키 협상에 PQC를 적용했습니다. DevOps 관점에서는 암호 라이브러리 버전을 한곳에서 관리하고 교체할 수 있게 해 두는 것(암호 민첩성)이 포인트입니다.
SBOM과 공급망 보안
- SBOM은 소프트웨어에 들어간 구성요소와 버전의 목록입니다. 표준 포맷은 SPDX와 CycloneDX입니다.
- 2026년 6월 범정부 SW 공급망 보안 로드맵이 나왔고, 공공 SW의 SBOM 관리가 공공 사업 요건으로 가고 있습니다(바이라인네트워크).
- 수산 플랫폼팀이 SBOM·취약점 스캐닝을 맡고 있어서, CI에서 SBOM 생성(Syft) → 취약점 스캔(Trivy, Grype) → 이미지 서명(cosign)으로 이어지는 흐름을 설명할 수 있으면 강합니다.
DevSecOps 파이프라인 점검 지점
- 시크릿 스캔: 커밋에 키·비밀번호가 섞였는지(gitleaks)
- SAST: 소스 코드 정적 분석(SonarQube, Semgrep)
- SCA와 SBOM: 오픈소스 의존성 취약점과 라이선스(Syft, Trivy)
- 이미지 스캔: 베이스 이미지와 패키지 CVE(Trivy)
- 서명: 빌드한 이미지에 서명(cosign)
- 배포 정책: 서명된 이미지만, root 실행 금지 같은 규칙을 클러스터가 강제(Kyverno, OPA Gatekeeper)
- 런타임 탐지: 컬테이너 안의 이상 행위(Falco)
- DAST: 띄운 서비스에 실제 공격 요청(OWASP ZAP)
Kubernetes 보안 기본
- RBAC 최소 권한, 서비스어카운트별 권한 분리
- NetworkPolicy를 기본 차단(default deny)에서 필요한 통신만 열기
- Pod Security Standards(privileged, baseline, restricted)를 Pod Security Admission으로 적용
- securityContext: runAsNonRoot, readOnlyRootFilesystem, 불필요한 capability 제거
- Secret: etcd 암호화, Vault·External Secrets·Sealed Secrets. GitOps 저장소에 평문 시크릿을 두지 않기
- 이미지는 태그 대신 다이제스트로 고정하고 사설 레지스트리에서만 받기
인증 체계: OAuth2, OIDC, SAML
| 구분 | 목적 | 토큰·형식 | 주로 쓰는 곳 |
|---|---|---|---|
| OAuth 2.0 | 권한 위임(인가) | Access Token, Refresh Token | API 접근. 웹앱은 Authorization Code + PKCE |
| OIDC | OAuth 2.0 위에 얹은 인증 | ID Token(JWT) | 로그인·SSO, Keycloak·Okta 등 IdP |
| SAML 2.0 | XML 기반 SSO | Assertion(XML 서명) | 기업·공공 레거시 SSO |
DevOps에서는 GitLab, ArgoCD, Grafana 로그인을 하나의 IdP(OIDC)로 묶고, Kubernetes API 서버도 OIDC로 인증해 사람별 RBAC를 거는 것이 전형적입니다.
회사 더 보기
지배구조: 최대주주 (주)수산인더스트리 19.10%, 특수관계인 합계 63.06%(2026.6.30). 2026년 1월 증여로 정석현 회장 6.38% → 0%, 정은아 사장 9.23% → 15.61%. 장녀 정은아 사장이 INT를, 장남 정보윤 씨가 인더스트리를 맡는 구도로 보도됐습니다(비즈워치).
재무: 매출 2018년 163억 → 2025년 307.1억. 영업이익 정점은 2022년 60억(이익률 27.7%). 연구개발비 2025년 35.5억(매출의 약 11.5%, 전액 비용 처리). 주당배당 2023년 125원 → 2025년 310원, 16회 연속 결산배당. 시가총액 535억 원(2026.11.03)으로 자본총계 912억 원보다 낮습니다.
공유단말접속관리: 회선당 단말 2대를 넘는 단말 1대당 5천 원을 받아 통신사와 나눕니다. 사업보고서상 경쟁사는 "현재까지 존재하지 않음", ISP별 초기 투자 약 20억 원 이상, 관련 특허 국내 31건·해외 6건.
경쟁 구도 ("국내 1위" 표현은 모두 회사 발표, 제3자 점유율 자료는 없음)
| 분야 | 국내 경쟁사 | 해외 경쟁사 | 수산의 위치 |
|---|---|---|---|
| SSL 가시성 | 엑스게이트, 모니터랩, 소만사, 한싹(2025 진입) | 기가몬, F5, A10, 시만텍, 익시아 | 중앙형 복호화는 수산과 엑스게이트만. 회사는 "8년 연속 1위" 주장 |
| SWG | 소만사, 모니터랩 | 블루코트, F5 | 사업보고서: 소만사와 양분 |
| DLP | 소만사, 지란지교, 마크애니, 소프트캠프, 파수 등 | 포스포인트, 시만텍, 트렌드마이크로 등 | 점유율 자료 없음 |
| WAF | 펜타시큐리티, 모니터랩, 파이오링크 | F5, 포티넷, 임퍼바, 아카마이 | 후발(2020 출시) |
| SSL VPN | 엑스게이트 | 확인 못 함 | 2021년 에스지앤 제품 인수로 진입 |
엑스게이트가 2026년 8월 국가용 보안요구사항 V3.0 기준 첫 SSL 가시성 보안기능확인서를 받았고, 수산은 다음 달에 받았습니다. 공공 시장에서 정면으로 부딪힙니다.
조직과 처우
| 항목 | 내용 |
|---|---|
| 인원 | 159명(2026.6, 정규직 144명), 평균 근속 4.5년 |
| 경영진 | 정석현 회장, 정은아 사장(CEO), 김종우 부사장(COO), 최병기 상무(CFO) |
| 연구소 | 기업부설연구소(2000년 설립), 연구위원 양우석(CTO)·오승용. '통합플랫폼연구소'는 공고에만 나오는 이름 |
| 사업본부 | 보안사업, 컨설팅사업, 서비스사업 |
| 급여 | 1인 평균 6,000만 원(2025), 대졸 초임 3,600만 원(잡코리아) |
| 복지 | 3년 단위 리프레시 휴가, 월 복지포인트, 저금리 사내대출, 송파구 기숙사, 도서비·영어강의, 아침 식사 |
| 평판 | 블라인드 4.4점(12건). 워라밸 4.5, 급여·복지 3.2. 장점 "능력주의", 단점 "몇몇 팀장들의 파워가 세다" |
출처
수산INT 공식
- 회사소개, 연혁, 채용·인재상, IR 재무정보
- 제품: ePrism SSL VA, eWalker SWG, eWalker DLP, eWalker WAF, ePrismX, eWalker SSL VPN, eWalker SSG, 클라우드 보안, eSafe AI, 보안 컨설팅, 디바이스 인증, 수호천사 모바일, ZeroPhish
- 보도자료 목록 (본문 링크는 각 표에 표시)
언론
- 비즈워치: 수산그룹 구조, 비즈워치: 수산INT 실적·지분
- SR타임스: 사업 비중·인수, 아이뉴스24: 2018년 사업 구조
- 보안뉴스: 정은아 사장 승진, 지디넷코리아 2025.02 인터뷰, 지디넷코리아 2026.01 인터뷰
- 디지털데일리: N2SF 실증 사업, 보안뉴스: PQC 전환 로드맵, 바이라인네트워크: SW 공급망 보안 로드맵
채용·후기
확인하지 못한 것: 2025년 사업별 매출 비중(DART 접근 불가), 공식 비전·CEO 인사말 페이지, 통합플랫폼연구소의 정식 편제. 사원 수는 출처에 따라 142~180명으로 다릅니다.
회사 심층 조사·제품 아키텍처 추가 출처
원문: Claude Docs ‘수산INT DevOps 개발자 면접 준비’(메인·회사 심층 조사·인성 질문·제품 아키텍처 탭)를 한 페이지로 재구성. 그림은 문서의 다이어그램을 이미지로 옮긴 것입니다.