
DW Engineer
공고 원문
소개
플랜잇스퀘어(Planit Square)는 대형 병원을 포함한 디지털 헬스케어 데이터를 임상연구 및 경영 통계에 활용할 수 있도록 설계된 데이터 플랫폼과 솔루션(ResearchEx, ResearchHub, ResearchEMR, TrialBridge, InsightEx 등)을 제공하고 있는 국내 1위 CDW 업체입니다. DW Engineer로 합류하시면 의료 데이터 파이프라인 설계·구축부터 DW 모델링, ETL 운영, 임상 라이브러리(레지스트리) 설계까지 전반을 책임지며, 병원정보시스템의 데이터 허브를 함께 만들어갑니다.
주요업무
대형 병원 EMR 데이터를 가공해 데이터 파이프라인 설계·구축 • DW 모델링 및 실시간 분석 환경 구현을 위한 데이터 적재·전송 • 임상 질지표 & 병원 경영 통계 관리 DB 설계·운영 • 질환별 임상 레지스트리(데이터 라이브러리) 설계·배포 • 시스템 운영·유지보수, 성능 튜닝 및 데이터 품질 관리 • DW Engineer 포지션 업무의 대부분은 SQL로 수행됨 • 주로 다루는 DBMS: Vertica(경험 없어도 문제 없음), Oracle, MSSQL, PostgreSQL
자격요건
필수 조건 • PL/SQL 기본 개념 이해 · SQL*Plus, SQL Developer 등으로 PL/SQL 블록을 작성·디버깅할 수 있는 능력 • 데이터베이스 기본 지식 · 테이블, 인덱스, 뷰, 트랜잭션 제어(커밋/롤백)의 개념 이해 · PK/FK, 정규화/비정규화 개념 숙지 • 의료정보 시스템 관련 업무 유경험자(HIS, EMR, CDW 등) 신입 지원자 (아래 역량에 대한 이해가 필요하며, 프로젝트 및 과제 수행 경험이 있을 경우 가산점) • PL/SQL 블록 작성 경험 · 학교 프로젝트나 인턴십 등에서 PL/SQL 익명 블록을 작성하여 기본적인 데이터 처리 (INSERT/UPDATE/DELETE/SELECT)를 수행한 경험 • PL/SQL 함수·프로시저 개발 기초 · 매개변수(Parameter) 선언, 반환 값(Return Type) 정의, 간단한 로직을 포함한 함수(Function) 및 프로시저 (Procedure)를 작성해 본 경험 · 예시: "사원 급여를 일정 비율 인상하는 프로시저" 작성 경험 • 간단한 성능 고려 · SQL 작성 시 JOIN 순서나 인덱스 필요 여부를 고민해 본 경험 · EXPLAIN PLAN을 통해 쿼리 실행 계획을 기본적으로 확인해 본 경험 (기본적인 INDEX 사용 여부 확인 수준) • SQL 쿼리 작성 및 분석 능력 · 테이블 간 JOIN을 이용해 두 날짜 컬럼 간 기간을 계산하고, 그 기간이 정해진 임계값을 초과하는 건수를 집계하여 반환하는SQL 작성 경험 · 예: "TBL_A의 시작일·종료일과 TBL_B의 기준일을 JOIN하여 기준일과 종료일의 차이가 30일 이상인 레코드를 집계" · 가장 빈도수가 높은 기간(예: 가장 많이 존재하는 특정 일자 범위)을 찾아서 해당 기간에 속하는 모든 레코드를 한 번에 조회하는 SQL 작성 경험 · 예: "고객 행동 로그 테이블에서 7일 단위 세그먼트를 기준으로 가장 많은 트랜잭션이 발생한 구간을 식별하고, 그 구간 내 상세 데이터를 조회" · 위 두 시나리오를 하나의 복합 쿼리나 PL/SQL 블록으로 처리하여, 집계 및 상세 조회를 동시에 수행할 수 있는 능력 (예: 서브쿼리, CTE, 윈도우 함수 결합) 경력 지원자 (신입 지원자 역량 + 아래 8개 역량 중 6개 이상 가능, 능숙도에 따른 역량 기반 가산점) • 커서(Cursor) 및 단순 예외 처리 · 명시적(explicit) 커서를 사용해 다중 행 조회 후 반복 처리한 경험 · NO_DATA_FOUND, TOO_MANY_ROWS 같은 표준 예외를 EXCEPTION 블록으로 처리한 경험 • 커서 및 REF CURSOR 활용 · 다중 행 처리(Complex Cursor) 및 커서 변수(Cursor Variable)를 사용해 동적 결과 집합(Return Set)을 반환하는 프로시저 구현 경험 · SYS_REFCURSOR를 통한 결과셋 반환 및 이를 호출 프로그램(Java, PL/SQL 등)에서 처리한 경험 • 기본 트리거(Trigger) 작성 · 삽입 또는 갱신 시점에 간단한 로깅/데이터 검증 로직을 AFTER/BEFORE 트리거로 구현해 본 경험 (예: INSERT 시 컬럼 값 체크 후 오류 발생) • 트리거(Trigger)로 복잡한 비즈니스 로직 구현 · UPDATE/INSERT/DELETE 시점에 변경 전·후 값을 비교하여 이력 테이블에 자동 기록(Audit Log)하거나, INSERT 시 유니크 조건을 추가 검증하는 등 고급 트리거 로직 작성 경험 · 트리거 내부에서 커서 호출, PL/SQL 함수 호출 등 복합 로직을 실행하여 데이터 무결성 및 감사 기능을 구현한 경험 • 동적 SQL 및 바인드 변수 사용 · EXECUTE IMMEDIATE 또는 OPEN cursor_name FOR 구문으로 입력 파라미터(WHERE 절 조건이 가변적일 때)를 동적으로 조립하여 SQL을 실행한 경험 · 동적 SQL 작성 시 SQL 인젝션을 방지하기 위한 바인드 변수 사용 경험 • 예외 처리 및 트랜잭션 제어 · NO_DATA_FOUND, TOO_MANY_ROWS 이외에 사용자 정의 예외(Custom Exception)를 선언·발생시키고, SAVEPOINT/ROLLBACK TO SAVEPOINT을 활용해 트랜잭션 오류 복구 로직을 구현한 경험 · 예시: "잔액 업데이트 중 음수 잔액 발생 시 ROLLBACK TO SAVEPOINT로 복구 후 별도 처리" 같은 시나리오 설계 및 구현 경험 • PL/SQL 성능 최적화 및 코드 품질 관리 · EXPLAIN PLAN 분석 실행 계획에 따른 인덱스 재설계(Clustered/Non-Clustered), 파티셔닝(Partitioning) 또는 힌트(HINT) 적용을 통해 쿼리 성능을 개선한 경험 · PL/SQL 코드 가독성을 위해 적절한 모듈화, 주석, 네이밍 컨벤션을 준수하며, 주기적으로 코드 리뷰·리팩토링을 수행한 경험 · 예시: "월별 1억 건 이상 로그 테이블에 대해 인덱스/파티셔닝 전략을 적용해 쿼리 응답 시간을 5초 500ms로 줄인 경험" • 테스트 및 디버깅 스킬 · PL/SQL 단위 테스트(Unit Test) 작성 또는 DBMS_OUTPUT.PUT_LINE을 활용한 로직 검증 경험 · SQL Developer, TOAD, PL/SQL Developer 등의 도구로 복잡한 스택 추적(Trace) 및 디버깅을 수행한 경험
우대사항
• SQL 관련 공인 시험 점수 · 프로그래머스 PCSQL 점수 등 공인 점수 우대 (단, 온라인 테스트 결과는 불인정) • ETL/ELT 개발 경험 · Pentaho, Informatica, Talend, SSIS 등의 ETL 도구와 연계하여 PL/SQL 기반 데이터 파이프라인을 구현한 경험 • 데이터 모델링 툴 활용 경험 · PowerDesigner, Erwin 등으로 논리/물리 모델을 설계하고, 해당 모델을 바탕으로 PL/SQL 코드 작성 경험 • 클라우드 DW 플랫폼 경험 · AWS Redshift, Google BigQuery, Snowflake 등 클라우드 환경과 온프레미스 Oracle 간 연동(DB Link) 경험 • CI/CD 및 자동화 배포 경험 · Git, Jenkins, Ansible 등을 활용하여 PL/SQL 코드의 자동 빌드·테스트·배포 파이프라인을 구축한 경험
혜택 및 복지
• 고용 형태: 정규직 (학력 무관) • 채용 인원: 0명 • 채용 조건: 정규직의 경우 3개월 수습기간 후 정규직 전환 여부 협의하며, 이 경우 3개월 근무 기간은 정규직 근무 기간에 포함 • 근무지: · 운영 업무: 서울 강남구 역삼로 111 (본사) · 프로젝트 팀: 본사 원격 근무 중심 + 필요 시 고객 병원 출장 • 복리후생: 4대 보험, 도서구매·교육·개발툴 구독 지원, 10시 이전 자율 출퇴근, 매주 금요일 6시간 근무, 노트북 구매 지원(250만원 4년연한) 등
플랜잇스퀘어 지원하기 전 이력서 Check
시간이 없다면 AI와 한번에 수정해보세요