Innovating today, leading tomorrow

OpenSQL_Technical Guide
[OpenSQL] Wait Events

[OpenSQL] Wait Events

Wait Events

참고 메뉴얼

해당 문서는 공식홈페이지 내용과 소스코드의 내용&주석 설명을 참고하여 작성되었습니다.

WaitEvents 개요

14버전 기준 소스코드 내용을 포함한 세부 내용을 기술하였습니다. 주로 사용하는 함수와 변수 위주로 내용을 서술하였으니, 소스코드 내용을 볼 수 있는 https://doxygen.postgresql.org/index.html도 참고해서 보시면 될 것 같습니다.

  1. 각지에서 WAIT EVENT가 발생하면 uint32 데이터 타입의 wait_event_info 변수로 받아놓고 메모리에 업로드 한 뒤 backend process는 메모리의 wait_event_info를 PRPROC라는 구조체에 반영해 놓습니다. 사용자가 WAIT EVENT를 보고자 한다면 pg_stat_get_activity 함수가 PGPROC에서 wait_event_info를 받아와 pg_stat_activity 뷰를 통해 2번 과정을 거쳐 WAIT EVENT TYPE과 WAIT EVENT로 나눠서 보여주게 됩니다.
  2. wait_event.h 헤더파일에서 16진수 상수값으로 define된 9가지 WAIT EVENT TYPE과 이 EVENT TYPE 별로 enum 구조체를 가지고 있습니다(Lock과 LWLock은 외부에 별도로 정리). 이를 통해 wait_event_info를 WAIT EVENT TYPE과 WAIT EVENT로 구별짓고 switch – case문으로 상수값과 연산을 통해 매칭해 해당되는 WAIT EVENT TYPE/WAIT EVENT 텍스트를 변수에 할당해서 pg_stat_activity 뷰에서 이를 보여줍니다.
  3. Latch(프로세스를 sleep으로 만들며, 다른 프로세스 또는 동일 프로세스 내 signal 핸들러로 wake 설정가능한 인터페이스)를 획득하는 함수로 WAIT EVENT를 발생시키면 종료 조건 signal을 캐치하거나 timeout이 될때 까지 지속되며, 이벤트가 종료되더라도 루프를 도는 로직 안에 있을 때 루프 안의 조건이 해결이 안되면 계속 발생시키는 형태입니다. **Latch를 획득하는 함수 : WaitLatch, WaitEventSetWait, WaitLatchOrSocket, WalSndWait, ProcWaitForSignal, ConditionVariableSleep, ConditionVariableTimedSleep, BarrierArriveAndWait
  4. Latch를 활용하지 않는 경우는 pgstat_report_wait_start 및 이를 포함한 함수로 작업 직전 이벤트를 발생시키고 작업이 끝나면 pgstat_report_wait_end 함수로 이벤트를 clear합니다.

WaitEvents 항목 별 상세 내용

다음은 WaitEvent 발생 항목별로 나타나는 event 명들에 대한 자세한 설명을 기술합니다.

Event type : Activity

Wait Event 명event 내용
ArchiverMainarchiver 프로세스 내에서 archive library 로드 후 메인 루프를 돌 때 이벤트 발생(Latch활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
AutoVacuumMainautovacuum launcher 프로세스 내에서 메인 루프를 돌 때 shutdown request 없을 시 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
BgWriterHibernatebackground writer 프로세스 내에서 메인 루프를 돌 때, BgWriterMain 이벤트 감지 후 hibernate가 true일 때 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
BgWriterMainbackground writer 프로세스 내에서 메인 루프를 돌 때, 별도 신호를 받거나 BgWriterDelay 시간이 끝날때까지 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
CheckpointerMaincheckpointer 프로세스 내에서 메인 루프를 돌 때, 별도 신호를 받거나 다른 체크포인트 또는 xlog 파일이 switch 될 때까지 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
LogicalApplyMainlogical replication apply 프로세스 내에서 메인 루프를 돌 때, data 또는 latch를 wait하면서 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
LogicalLauncherMainlogical replication launcher 프로세스 내에서 메인 루프를 돌 때, worker를 wait하면서 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
PgStatMainstatistics collector 프로세스 내에서 메인 루프를 돌 때, 뭔가의 작업이 일어날 때까지 이벤트 발생(Latch 활용. WaitEventSetWait함수에서 이벤트를 메모리에 업로드)
RecoveryWalStreamWAL startup 프로세스 내에서 메인 루프를 돌 때, WAL 도착을 기다리면서 5초간 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)
SysLoggerMainsyslogger 프로세스 내에서 메인 루프를 돌 때, 뭔가의 작업이 일어날 때까지 이벤트 발생(Latch 활용. WaitEventSetWait함수에서 이벤트를 메모리에 업로드)
WalReceiverMainWAL receiver 프로세스 내에서 메인 루프를 돌 때, streaming이 끝날때까지 혹은 에러가 발생할 때 까지 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
WalSenderMainWAL sender 프로세스 내에서 메인 루프를 돌 때, 뭔가의 작업이 일어날 때까지 또는 time out시간까지 이벤트 발생(Latch 활용. WalSndWait함수에서 이벤트를 메모리에 업로드)
WalWriterMainWAL writer 프로세스 내에서 메인 루프를 돌 때, 별도 신호를 받거나 WalWriterDelay가 끝날 때 까지 이벤트 발생(Latch 활용. WaitLatch함수에서 이벤트를 메모리에 업로드)

Event type : BufferPin

Wait Event 명event 내용
BufferPinbackend 프로세스가 buffer에서 exclusive pin을 획득하는 것을 기다릴 때 이벤트 발생(Latch 활용. ProcWaitForSignal함수에서 이벤트를 메모리에 업로드)

Event type : Client

Wait Event 명event 내용
ClientReadclient에서 secure connection을 통해 data를 read할 때 이벤트 발생(Latch 활용. WaitEventSetWait함수에서 이벤트를 메모리에 업로드)
ClientWriteclient로 secure connection을 통해 data를 write할 때 이벤트 발생(Latch 활용. WaitEventSetWait함수에서 이벤트를 메모리에 업로드)
GSSOpenServerGSSAPI session을 구축하는동안 client에서 data를 read할 때 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
LibPQWalReceiverConnect원격 primary server와 connection을 구축하며 WAL receiver를 기다릴 때 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
LibPQWalReceiverReceive원격 primary server로부터 data를 받는 WAL receiver를 기다릴 때 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
SSLOpenServerclient와 connection을 시도하는 도중 SSL을 기다릴 때 이벤트 발생(Latch 활용. WaitLatchOrSocket함수에서 이벤트를 메모리에 업로드)
WalSenderWaitForWALWAL sender process에서 WAL을 client로 안전하게 보낼 수 있도록 disk로 flushed 할 때 이벤트 발생(Latch 활용. WalSndWait함수에서 이벤트를 메모리에 업로드)
WalSenderWriteDataWAL sender process에서 WAL reciver로 부터 어떠한 활동에 대해 reply를 기다릴 때 이벤트 발생(Latch 활용. WalSndWait함수에서 이벤트를 메모리에 업로드)

Event type : Extension

Wait Event 명event 내용
Extension설치된 Extension 소스에서, wait이 필요할 경우 이벤트 발생(Latch 활용. waitlatch, WaitLatchOrSocket등)

Event type : I/O

Wait Event 명event 내용
BaseBackupReadbase backup 중 file로부터 data를 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
BufFileRead임시 파일(작업메모리 파라미터보다 더 많은 메모리가 필요할 경우 생성됨) 을 read하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
BufFileWrite임시 파일에 write하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
BufFileTruncate임시 파일이 truncate되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ControlFileReadpg_control file을 read하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ControlFileSyncpg_control file이 영구 storage에 도달하는 것을 기다리는 과정을 정의한 pg_fsync 함수를 사용하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ControlFileSyncUpdatepg_control file이 update 이후 동기화 되기 직전에 이벤트 발생(UpdateControlFile() 함수에서 이벤트를 메모리에 업로드)
ControlFileWritepg_control file에 write하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ControlFileWriteUpdatepg_control file이 update 직전에 이벤트 발생(UpdateControlFile() 함수에서 이벤트를 메모리에 업로드)
CopyFileReadfile copy 동작이 수행되는동안 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
CopyFileWritefile copy 동작이 수행되는동안 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DSMFillZeroWrite동적 shared memory backing 파일을 0으로 채우는 작업 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileExtendrelation data file size 확장된 값을 blocksize와 비교하기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileFlushrelation data file이 disk에 flush 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileImmediateSyncrelation data file이 storage에 즉시 동기화 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFilePrefetchrealtion data file이 비동기 prefetch 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileReadrelation data file에서 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileSyncrelation data file이 storage에 동기화 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileTruncaterelation data file이 truncate 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
DataFileWriterelation data file에 write 하기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileAddToDataDirReaddata directory lock file(~.lock)에 line을 추가하는 동작 중 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileAddToDataDirSyncdata directory lock file에 line을 추가하는 동작 중 storage에 동기화 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileAddToDataDirWritedata directory lock file에 line을 추가하는 동작 중 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileCreateReaddata directory lock file을 create 하는 동작 중 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileCreateSyncdata directory lock file을 create 하는 동작 중 storage에 동기화 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileCreateWritedata directory lock file을 create 하는 동작 중 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LockFileReCheckDataDirReaddata directory lock file을 recheck 하는 동작 중 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteCheckpointSynccheckpoint 도중 logical rewrite mapping이 storage에 동기화 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteMappingSync논리적 rewrite 도중 논리 rewrite mapping이 storage에 동기화 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteMappingWrite논리적 rewrite 도중 mapping data가 mapping file에 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteSyncstorage에 논리 rewrite mapping을 동기화 하기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteTruncate논리적 rewrite 도중 mapping data가 truncate 되기 전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalRewriteWrite논리적 rewrite mapping이 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
RelationMapReadrealtion map file을 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
RelationMapSyncrealtion map file을 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
RelationMapWriterealtion map file에 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReorderBufferReaddisk로 spilled 된 변경사항을 메모리로 다시 복원하는 과정에서 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReorderBufferWritedisk에 변경 사항을 직렬화 도중 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReorderLogicalMappingReadtuplecid_data에 단일 mapping을 적용하는 과정에서 reald 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReplicationSlotReaddisk에서 메모리로 replication slot control file을 로드하는 과정 중 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReplicationSlotRestoreSync메모리에 복원하는 동안 replication slot control file이 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReplicationSlotSyncreplication slot 저장, 생성과정에서 replication slot control file이 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
ReplicationSlotWritereplication slot 저장, 생성과정에서 replication slot control file에 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SLRUFlushSynccheckpoint 또는 database shutdown 도중 storage에 SLRU 데이터를 동기화하는 과정에서 발생되는 이벤트. 소스에서 따로 메모리에 올리는 부분은 없음.
SLRUReadbuffer slot내 SLRU 페이지를 물리적으로 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SLRUSyncbuffer slot으로부터 SLRU 페이지의 물리적 write 이후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SLRUWritebuffer slot으로부터 SLRU 페이지의 물리적 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SnapbuildRead스냅샷이 ‘lsn’ 표시된 위치에 저장된 경우 이를 ‘builder’로 복원하는 과정중 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SnapbuildSync다른 프로세스에서 아직 수행되지 않은 경우 ‘lsn’ 위치에서 스냅샷 ‘builder’를 직렬화하는 과정 중 write 후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
SnapbuildWrite다른 프로세스에서 아직 수행되지 않은 경우 ‘lsn’ 위치에서 스냅샷 ‘builder’를 직렬화하는 과정 중 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TimelineHistoryFileSyncstreaming replication을 통해 받은 타임라인에 대한 히스토리 파일 작성 중 write 후 storate에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TimelineHistoryFileWritestreaming replication을 통해 받은 타임라인에 대한 히스토리 파일 작성 중 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TimelineHistoryRead타임라인에 대한 히스토리 파일을 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TimelineHistorySync새로운 타임라인에 대한 히스토리 파일을 생성할 때 write후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TimelineHistoryWrite새로운 타임라인에 대한 히스토리 파일을 생성할 때 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TwophaseFileReadxid에 대한 two phase state 파일 읽기 및 유효성 검사 과정에서 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TwophaseFileSyncWAL replay 및 checkpoint 생성 과정에 사용되는 two phase state 파일을 recreate 하는 과정에서 write 후 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
TwophaseFileWriteWAL replay 및 checkpoint 생성 과정에 사용되는 two phase state 파일을 recreate 하는 과정에서 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALBootstrapSyncbootstrapping 도중 WAL가 write된 후 storage에 동기화 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALBootstrapWritebootstrapping 도중 WAL가 write 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALCopyRead기존 파일을 복사하여 새로운 WAL 파일 세그먼트를 생성하는 과정에서 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALCopySync기존 파일을 복사하여 새로운 WAL 파일 세그먼트를 생성하는 과정에서 write 이후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALCopyWrite기존 파일을 복사하여 새로운 WAL 파일 세그먼트를 생성하는 과정에서 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALInitSync새로 초기화된 WAL 파일을 생성하는 과정에서 write 이후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALInitWrite새로 초기화된 WAL 파일을 생성하는 과정에서 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALReadWAL 파일 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALSenderTimelineHistoryReadWAL sender timeline command 중 타임라인에 대한 히스토리 파일을 send처리 과정에서 read 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALSyncWAL 파일에 write 이후 storage에 동기화 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALSyncMethodAssign새로운 WAL 동기화 method를 할당하는 동안 data가 storage에 동기화 되기 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
WALWriteWAL 파일에 write 직전에 이벤트 발생(pgstat_retport_wait_start함수에서 이벤트를 메모리에 업로드)
LogicalChangesRead이벤트명이 소스에는 남아있지만 실제로 발생하지 않음. (BufFileRead로 대체해서 로직 없앤다고 커뮤니티에 명시. https://postgrespro.ru/list/thread-id/2574125)
LogicalChangesWrite이벤트명이 소스에는 남아있지만 실제로 발생하지 않음. (BufFileWrite로 대체해서 로직 없앤다고 커뮤니티에 명시. https://postgrespro.ru/list/thread-id/2574125)
LogicalSubxactRead이벤트명이 소스에는 남아있지만 실제로 발생하지 않음. (BufFileRead로 대체해서 로직 없앤다고 커뮤니티에 명시. https://postgrespro.ru/list/thread-id/2574125)
LogicalSubxactWrite이벤트명이 소스에는 남아있지만 실제로 발생하지 않음. (BufFileWrite로 대체해서 로직 없앤다고 커뮤니티에 명시. https://postgrespro.ru/list/thread-id/2574125)

Event type : TimeOut

Wait Event 명event 내용
BaseBackupThrottlebasebackup 도중 활동을 제한할 때 transfer가 예상한것보다 빠른것이 판단되면 이벤트 발생(Latch 활용. WaitLatch)
CheckpointWriteDelaycheckpoint를 수행하는 동안 write delay가 걸렸을때 이벤트 발생(pgstat_send_bgwriter)
PgSleeppg_sleep 또는 형제 함수가 호출되면 이 함수 내부에서 이벤트 발생(Latch 활용. WaitLatch)
RecoveryApplyDelaydelay 세팅으로 인해 복구 중 WAL apply를 기다리는데, GetCurrentTimestamp()와 delayUntil의 차이가 0 이상일경우이벤트 발생(Latch 활용. WaitLatch)
RecoveryRetrieveRetryInterval어떤 소스(pg_wal, archive 또는 stream)에서도 WAL 데이터를 사용할 수 없을 때 복구 대기하는데, 최신 타임라인으로 복구하도록 요청받기전 까지 루프를 돌며 이벤트 발생(Latch 활용. WaitLatch)
RegisterSyncRequest요청 큐가 가득차서 동기화 요청을 checkpointer에 보내는 동안 대기하는데, 재시도하지 않도록 중단지시가 나오기 전까지 이벤트 발생(Latch 활용. WaitLatch) VacuumDelay cost-based vauum delay point에서 대기하면서 이벤트 발생(Latch 활용. WaitLatch)

지금까지 ‘PostgreSQL Wait Events’에 관해 알아보았습니다

‘PostgreSQL Vacuum (SQL)’을 바로 이어서 확인해보세요!

광고성 정보 수신

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다.
내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보
  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
 

개인정보 수집 및 이용

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다. 내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보

  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
  •