본문 바로가기

회사업무

[TmaxTibero/기술] DBMS 기술지원 엔지니어 면접 정리

[TmaxTibero/기술] DBMS 기술지원 엔지니어

  • Tibero DBMS 기술지원
    - DB 구축 (기본 구성 및 고가용성 환경 구축)
    - DB Trouble Shooting
    - 기술문의 대응
    - DB Migration
    - SQL Tuning 및 성능분석/진단
    - Backup & Recovery

    (전형절차) 서류전형 > 1차면접 > 2차면접 > 최종합격
  • - IT 전공자
    - Unix/Linux 경험자
    - 데이터베이스 교육 이수자
    - 4년제 정규대학 졸업자 및 졸업예정자('22.8월)
    - 해외여행에 결격사유가 없는 자
  • - 데이터베이스 자격증 소지자
    - 데이터베이스 기술지원/운영 경험자 (Tibero, Oracle, MySQL...)
    - 이기종 DB, Data Migration 경험자
    - SQL Tuning 경험자
    - 장애인 및 보훈 대상자

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1차 기술면접 준비

 

안녕하세요! 면접자 이준석입니다. 우선 소중한 기회를 주셔서 감사합니다.

현재 저는 DBA를 꿈꾸며 OCP자격증을 공부중에 있으며 한참 오라클 아키텍처를 공부중입니다.

과거 직장과 현재 직장에서 오라클을 사용하면서 재미를 느꼈고 플래시백 쿼리를 알고나서 오라클시스템이 어떻게 돌아가는지 의문점을 느끼게 되었습니다. 현재 회사에서 따로 테스트 DB가 없어서 실 DB에 있는 데이터를 FULL EXPORT 시켜서 dump 파일을 개인 여분 PC에 넣고, 오라클 11g를 설치후 사용자 계정을 추가해주고 거기에 데이터를 FULL IMPORT 시키고 리스너랑 tns 파일을 수정하고 TEST DB로 만들어본적이 있습니다.

 

저는 아무래도 많이 접하고 사용한 GUI 환경인 윈도우 서버가 익숙하지만 보안적인 측면에서 강력한 유닉스와 리누스 서버에서 필요한 명령어와 쉘 스크립트는 아직 생소하지만 DB튜닝과 점검 및 자동 백업 설정 등에 필요한 부분이기떄문에 공부하겠습니다.

DBMS 기술의 꽃은 클러스터화 인거같습니다. 그런 오라클의 전유물인 RAC 기술을 국산화 시킨 국산 DB인 티베로의 DBMS 엔지니어가 되어 기술적 커리어를 쌓아 나가고싶습니다. 티베로 7과함께 클라우드 시장에 맞는 전문가로 발전하고싶습니다.

 

질문사항

DB 이관 작업이 어떻게 진행되는지? 인터넷에 검색해보니깐 tbExport 유틸리티를 사용하는거 같아보였습니다,  DB 백업과 리커버리 작업은 어떻게 진행되는지?, SQL튜닝이라는게 SGA 구성 요소간 최적의 메모리 분배 부분이나 SORT_AREA 크기 같은걸 건드리는건지? 아니면 테이블내 PK나 인덱스 설정같은건지? 아니면 SQL에 바인드변수나 서브쿼리 작성등 쿼리 자체를 수정하는건지?

 

유저프로세스, 서버프로세스, 백그라운드 프로세스, SGA, LRU 알고리즘, 데이터버퍼캐시,I/O 속도 느림,SPA, 리두 로그 버퍼, 자동 SGA 크기 관리 PK, 인덱스, 데이터 서칭 속도 증가, PGA, 바인드 변수 , 논리적 데이터베이스 구조, 물리적 데이트베이스 구조, 테이블스페이스,

 

Transportable TABLESPACE: 서로다른 머신 아케틱쳐나 운영체제에서 운영되는 오라클 데이터 파일들을 한 데이터베이스에서 다른 데이터베이스로 직접 전송, Import와 Export처럼 데이터와 Metadata의 전송이 가능

 

SGA_TARGET

1. SHARED POOL (SQL,PL/SQL 실행할 떄)

2. JAVA POOL (JAVA 실행할 떄)

3. LARGE POOL (RMAN BACKUP BUFFER)

4. BUFFER CACHE

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1차 면접때 질문받은 리스트

1. 자기소개

2. DCL,DML,DDL 설명

3. 핫백업,콜드백업,풀백업 차이

4. 만약 고객들로부터 DB속도가 느리다고 연락오면 해야할 조치

4-1. 캐시 히트율을 대답한 이유

4-2. 바인드 변수를 대답한 이유

5. 만든 트리거랑 SP가 어떤건지, 테이블 PK 설정할떄 어떤 기준으로 했는지

6. SP랑 SF 차이가 먼지

7. 첫번째 직장 퇴사 이유

8. 직장생활 하면서 인상깊었던 동료

9. 취미생활

10. 이직시 DB엔지니어 신입으로 들어올수 있는지?

11. 현재 회사 연봉

12. 마지막으로 하고싶은말

 

#기술면접 1차 합격#

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

2차 임원면접 준비

 

안녕하세요! 면접자 이준석입니다. 우선 소중한 기회를 주셔서 감사합니다.

현재 저는 DBA를 꿈꾸며 OCP자격증을 공부중에 있으며 한참 오라클 아키텍처를 공부중입니다.

과거 직장과 현재 직장에서 오라클을 사용하면서 재미를 느꼈고 플래시백 쿼리를 알고나서 오라클시스템이 어떻게 돌아가는지 의문점을 느끼게 되었습니다. 그러한 RDBMS 시장 세계 1위인  오라클 기업에 맞서 당당히 경쟁하는 국산 DB인 티베로의 DBMS 엔지니어가 되어 기술적 커리어를 쌓아 나가고싶습니다. 티베로 7과함께 클라우드 시장에 맞는 전문가로 발전하고싶습니다.

 

예상 질문

1. 티맥스 그룹 4개 말해봐라

2. 티베로 제품 아는대로 말해봐라

3. 클라우드가 뭐라고 생각하는지?

4. 최근 트랜드에 대해서 아는게 있는지?

5. 왜 티베로에 오려고 하는지?

6. 성격의 장단점

7. 퇴사 사유

8. 학부시절 성적 낮은 이유

 

RDBMS, SAP H/4 HANA, 인메모리 데이터베이스, 클라우드, 스트리밍, 어쌔신크리드 오디세이, 빅데이터, AI, 통신의 발달, 액티브 클러스터, 공유 디스크 기반, TAC, TAS, 스토리지 가상화, 액티브 스토리지, 스토리지 클러스트, SuperTibero, 클라우드 데이터베이스

 

 

 

 

 

 

 

인재상

💡 • T(Technical) 기술적으로 가장 뛰어나고

💡 • I(Interchangeable) 외산 DB와의 뛰어난 호환성을 가지고 있으며

💡 • B(Beneficial) 효율적인 기술지원 서비스를 제공하며

💡 • E(Economical) 경제적인 데이터베이스

💡 • R(Reliable) 신뢰할 수 있는 안정적인 데이터베이스

💡 • O(Opportunity) 고객에게 새로운 기회를 제공하는 데이터베이스

 

 

 

티맥스 그룹

 

TmaxOS,TmaxOffice,TmaxCloud,TmaxEdu,TmaxAI,TmaxTivine,TmaxSoft,TmaxTibero,TmaxWAPL,TmaxA&C,Tmaxmetaverse,TmaxCommerce, TmaxFintech

 

티베로 제품

 

Tibero: Tibero, ZetaData, ProSync, SysMaster, HyperData, HyperSQL

https://inky-viscose-389.notion.site/37a4059e55f448dfb9cebad1d794ce2a

 

우리는 이런 제품을 만들고 있어요

Tibero

inky-viscose-389.notion.site

 

 

티맥스소프트 제품

 

TmaxSoft: JEUS, WebtoB, TP-Monitor, InfiniCache, HyperFrame, SuperFrame, AmyLink, ProObject, ProFrame, SysMaster, OpenFrame

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

In-Memory Database
IMDB, 혹은 MMDB(Main Memory DBMS)라고도 한다.

디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있는 데이터베이스. 디스크 검색[1]보다 자료 접근이 훨씬 빠른 것이 가장 큰 장점이다. 데이터 양의 빠른 증가로 데이터베이스 응답 속도가 떨어지는 문제를 해결할 수 있는 대안이 인 메모리 데이터베이스이다. 전형적인 디스크 방식은 디스크에 저장된 데이터를 대상으로 쿼리를 수행하지만, 인 메모리 방식은 메모리상에 색인을 넣어 필요한 모든 정보를 메모리상의 색인을 통해 빠르게 검색할 수 있다.

단점이라면 매체가 휘발성이라는 것. DB 서버 전원이 갑자기 꺼져버리면 안에 있는 자료들이 초고속즉시삭제 되어버린다. 그래서 보통은 로그인 세션 같은, 서버가 꺼져서 날아가도 상관 없는 임시 데이터에 주로 쓰인다. 거기다 속도 때문에 쓰는 것이기에 압축 따윈 쓰지 않으며, 데이터에 비해 RAM 용량이 넉넉하지 않을 경우 가상메모리를 쓰게 되어 역효과가 일어나기도 한다.

물론 DBMS의 속성 중 하나인 Durability를 보장하기 위하여 메모리에 INSERT/UPDATE/DELETE된 값들은 모두 디스크에 로그로 기록하며, DBMS가 재구동될 때 디스크로부터 로그 파일을 읽어와 메모리에 DBMS 구조를 모두 재구축하기도 한다.

 

Oracle과 MySQL의 차이점

 

결론을 먼저 말하자면 Oracle과 MySQL은 서로 다른 시장을 구축하고 있기 때문에 “직접적인 비교는 옳지 않다”라고 할 수 있습니다.

오라클은 충분한 큰 예산과 복잡한 비즈니스 요구와 기업 고객을 위해 설계되었습니다.

그에 반해, MySQL은 가장 일반적으로 데이터베이스 기반 웹 사이트 및 Non-Critical 애플리케이션에 사용되는 저가의 데이터베이스입니다.

Oracle 특징

오라클의 특징이자 장점은 크게 5가지로 구분하고 있습니다.

  1. Oracle Management Server
  2. 중앙 집중 방식으로 Administration monitoring이 가능하고, Multiple databases를 튜닝 가능합니다.
  3. 다른 Admin User들과 공유가 가능합니다.
  4. Oracle Change Manager
  5. 변경 Plan을 작성하고 실제 구현하기 전에 변경 사항의 효과를 볼 수 있습니다.
  6. 생산 시스템을 방해하지 않습니다.
  7. Administrative Alerts
  8. 오류가 발생하면 오라클은 이메일이나 설정되어 있는 계정으로 연락을 줄수 있습니다.
  9. 경고는 예정된 가동 정지 시간 동안 차단 될 수 있습니다.
  10. Capacity Planning
  11. 업그레이드 관리자의 계획을 돕기 위해 사용 패턴을 추적할 수 있습니다.
  12. 병목 현상을 쉽게 파악 할 수 있습니다.
  13. Query Optimizer
  14. 쿼리 최적화 프로그램으로 오라클은 SQL문을 실행하는 가장 효율적인 방법을 선택합니다.
  15. Cost 비용을 최소화하기 위해 테이블과 인덱스를 분석 합니다. (Oracle 10g 이상부터는 Cost_Base)

MySQL 특징

  1. 제일 큰 특징으로는 사용하기가 타 DBMS보다 쉽습니다.
  2. PHPMyAdmin 같은 비용이 무료인 GUI 툴이 많습니다.
  3. 매우 적은 오버헤드를 사용합니다.
  4. MySQL은노트북에 단지 1Mb의 RAM만 사용합니다.
  5. 오라클 9i를 설치하는 경우 128Mb를 사용합니다.
  6. 고급기능을 지원하기 시작하였습니다.
  7. Stored Procedures, Triggers, View, Sub-Queries, Transactional Table, Cascading Update & Delete
  8. 타사 InnoDB Storage Engine을 사용할 수 있습니다.

TCP-UDP

3 Way-Handshake를 정리하기 앞서 TCP-UDP의 차이를 이해할 필요가 있습니다. TCP-UDP의 차이를 정리하는게 아니기 때문에 간략하게, TCP와 UDP는 Transport Layer의 대표적인 2가지 프로토콜입니다.

TCP는 신뢰성있는 데이터 통신을 가능하게 해주는 프로토콜입니다. TCP의 특징은 연결지향적이고, 흐름 제어(Flow Control), 혼잡 제어(Congestion Control), 오류 감지(Error Detection)가 있습니다.

 

UDP는 TCP보다 신뢰성이 떨어지지만 전송 속도가 일반적으로 빠른 프로토콜입니다. TCP와는 반대로 비연결지향적(Connectionless)이며, 최소한의 오류제어 기능만을 수행하고, 비교적 데이터의 신뢰성이 중요하지 않을 때 사용합니다. (ex.음성통화, 스트리밍)

TCP와 UDP의 차이점인 연결지향적, 비연결지향적인 특성에서 TCP가 연결지향적인 특성을 가지게 해주는 과정이 3 Way-Handshake입니다.

3 Way-Handshake

3 Way-Handshake는 TCP 프로토콜을 이용해서 통신을 하는 응용프로그램들이 데이터를 주고받기 전에 정확한 전송을 보장하기 위해 서로 연결이 잘 되어있는지 확인하는 과정입니다.

흔한 예시로 누군가와 통화를 할때 여보세요? 라고 말하며 상대방을 확인하는 것과 비슷합니다. 그리고 네트워크는 이러한 과정을 패킷을 주고받으며 수행하게 됩니다. 이 3 Way-Handshake가 어떻게 TCP에 적용되는지 알기위해 TCP 세그먼트 헤더를 먼저 보겠습니다.

TCP 세그먼트 헤더는 여러가지 비트로 구성되어 있는데, 여기서는SYN, ACK, FIN 세가지가 필요합니다.

(1) SYN : 'synchronize sequence numbers'의 약자로 TCP 연결을 시작하며 회선을 개설합니다. 즉 3 Way-Handshake를 시작하는 플래그 입니다.

(2) ACK : 'acknowledgement'의 약자이며 쉽게말해 전송을 제대로 받았다는 것을 의미합니다. SYN을 받으면 응답으로 SYNACK를 보내며, 이후 모든 segment에는 항상 이 플래그가 존재합니다.

(3) FIN : 'finish'를 의미하며, TCP 연결을 해제할때 사용됩니다. FIN이 세워진 segment를 받아 FIN 에대한 ACK를 응답하면 연결이 종료됩니다.

이제 3 Way-Handshake는 어떤과정인지 그림을 통해 정리하려 합니다.

(1) 왼쪽의 컴퓨터가 클라이언트, 오른쪽의 컴퓨터가 서버입니다. 위에서 부터 순서대로 클라이언트는 서버에 접속하기 위해 1비트의 SYN 플래그가 존재하고 데이터가 없는 패킷을 서버로 전송합니다. 이때 클라이언트는 SYNACK의 응답을 대기하는 SYN_SENT 상태가 됩니다.

(2) 서버가 성공적으로 SYN 요청을 받았다면 요청을 수락한다는 ACK와 1비트의 SYN 플래그가 존재하는 패킷을

클라이언트에게 다시 보냅니다. ACK는 SYN에 대한 응답이고, 서버도 클라이언트에게 연결해야 하기 때문에 1비트의 SYN 요청을 보내는 것입니다. 이때 서버는 SYN_RECEIVED 상태가 됩니다.

(3) 클라이언트는 서버가 보낸 SYN에 대한 ACK을 패킷에 담아 서버에 전송합니다. 이제부터 SYN 필드는 1비트가 아니라 0을 보내고, 연결이 이루어져 데이터가 오갈 수있기 때문에 ACK를 전송하면서 application data도 함께 전송할 수있습니다.

그러면 왜 꼭 3번의 통신이 필요한가? (1) (2)의 과정으로도 연결이 되었다고 볼 수있는것 아닌가? 에대한 의문이 생기는데, (3) 과정이 없다면 서버가 SYN을 보낼때 유실이 되었는지를 판별할 수없는 상태가 되기 때문에, 문제가 발생합니다. 그래서 서버가 보낸 SYN에 대한 수신을 확인하는 (3) 과정의 ACK까지 필요한 것입니다.

 

코딩꿈나무 조정현 : 네이버 블로그

빠르게 꾸준히

blog.naver.com

 

컴퓨터 프로그래밍에서 프레임워크는 구조적으로 고정된 부분을 재사용할 수 있도록 하고, 응용별 특정 기능을 추가적인 사용자 작성 코드에 의해 선택적으로 구현 가능하도록 하는 포괄적인 추상 구조, 그리고 이를 지원하는 소프트웨어 플랫폼을 말한다. 즉, 소프트웨어의 개발에 필수적이고 표준적인 부분에 해당하는 설계와 구현을 재사용 가능하도록, 일련의 협업화된 형태의 클래스들로 제공하는 반제품 소프트웨어 모듈이라고 볼 수 있다. 소프트웨어 프레임워크는 지원 프로그램, 컴파일러, 코드 라이브러리, 도구 세트, API 등과 같이 프로젝트나 솔루션 개발을 가능하게 하는 여러 가지 서로 다른 컴포넌트들을 포함한다.

프레임워크 기반으로 개발을 수행하는 경우, 기반 구조를 그대로 재사용하고 비즈니스 로직과 관련된 부분을 추가적으로 구현하면 되기 때문에 빠른 어플리케이션 구축이 가능하다. 또한 동일 프레임워크를 사용하는 어플리케이션들은 비슷한 뼈대 구조를 가지기 때문에 관리 및 테스트가 용이하다.

프레임워크는 명확하게 정의된 API를 가지고 코드를 재사용 가능한 형태로 구조화한다는 점에서 라이브러리와 비슷하다. 그러나 라이브러리에서는 호출 측이 전체 프로그램 제어 구조를 지정할 수 없지만, 프레임워크에서는 이러한 제어의 반전(inversion of control)이 가능하다. 또한 라이브러리와 달리 프레임워크는 사용자가 선택적 오버라이딩(overriding, 상속받은 함수를 재정의 하는 것)이나 특정 기능을 수행하는 사용자 코드로 특수화하여 코드를 확장 재사용할 수 있다.

프레임워크는 프로그래머들이 어플리케이션에 세부적인 사항을 제외한 공통 부분들의 개발에 드는 시간을 줄이고 세부 요구사항 구현에 집중할 수 있도록 하는 것을 목표로 한다. 예를 들어, 은행 웹 사이트 구축 시 웹 어플리케이션 프레임워크를 사용한다면, 개발팀은 은행 업무와 관련된 특정 기능 개발에만 주력할 수 있는 것이다. 하지만 프레임워크 내의 API가 복잡하게 얽혀 있어서 프레임워크 사용 시 코드가 비대화 되고, 프레임워크의 초기 학습 시간이 많이 소요된다는 비판도 있다. 또한 프레임워크는 서로 다른 플랫폼 제품이나 특정 공급 업체와 버전에 의존적이 될 위험이 있다. 따라서 초기에 소프트웨어 개발에 필요한 적절한 프레임워크를 선택하고 최대한 변경 및 전환할 위험을 줄이는 것이 필요하다.

사용자 응용 프로그램을 개발하기 위한 프레임워크의 예로써 다음과 같은 것들이 있다.

- 의사 결정 지원 시스템
- 웹 애플리케이션 프레임워크
- 미들웨어
- 금융 모델링 애플리케이션
- 멀티미디어 프레임워크
- 엔터프라이즈 아키텍처(enterprise architecture) 프레임워크

[네이버 지식백과] 프레임워크 [Framework] (두산백과 두피디아, 두산백과)

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

2차 면접때 질문받은 리스트 

1. 자기소개

2. 플래시백 쿼리 동작 원리

2-1. 플래시백 쿼리 장점

3. 학부시절 성적 낮은이유

4. 학부시절 가장 기억에 남는 프로젝트

5. 회사에 대해 얼마나 알고있는지

6. 본인이 생각하는 본인 성격, 친구들이 생각하는 본인 성격

7. 고객들 상대할때 커뮤니케이션 자신 있는지

8. IT인프라 관리쪽 해본적 있는지

9. 첫번쨰회사 퇴직 이유

10. 현 회사 이직이유

11. 희망연봉과 그 근거

12. 뽑았을때 이직 안할 근거

13. 마지막으로 하고싶은말

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

최종 합격!!