2024.12.18

한경식·2024년 12월 24일

데이터베이스 트리거란?


  • 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업
  • 트리거는 주로 INSERT, UPDATE, DELET와 같은 데이터 조작 언어(DML) 작업이 발생할 때 자동으로 실행


특징


  • 자동 실행 : 특정 시점에서 자동으로 실행
  • 시점 선택 : BEFORE 또는 AFTER를 통해 트리거 실행 지점 설정 가능
  • 이벤트 유형 : INSERT, UPDATE, DELETE등 이벤트에 반응
  • 행 단위 또는 문장 단위 : FOR EACH ROW를 사용해 행 단위로 실행할지, 아니면 전체 문장에 대해 한번만 실행할 지 선택 가능


장단점


  • 장점
    • 데이터 무결성 강화 : 참조 무결성 유지하고 데이터 정확성 보장
    • 업무 처리 자동화 : 특정 조건에 따라 자동으로 작업 수행
    • 보안 강화 : 민담한 데이터 변경 감지하고 처리
    • 감사 로그 : 데이터 변경 이력을 자동으로 기록
  • 단점
    - 복잡성 증가 : 데이터베이스 구조가 복잡해질 수 있음
    - 디버깅 어려움 : 자동으로 실행되는 특성으로 오류 발생 시 디버깅 어려움
    - 성능 저하 : 트리거가 추가 작업을 수행하므로 데이터베이스 성능에 영향을 줄 수 있음
    - 예상치 못한 부작용 : 트리거 간 상호 의존성으로 예상치 못한 결과 발생할 수 있음


트리거 사용 예시


  • 데이터 변경 시 자동으로 다른 테이블에 로그 기록
  • 특정 조건에 따라 데이터 입력 제한하거나 수정
  • 관련 테이블의 데이터 자동으로 업데이트
  • Unreal 내에 EventBeginPlay, EventTick도 트리거가 될 수 있고, 직접 트리거를 만들 수 도 있다


온라인 세션


  • 오늘 수업은 블루프린트로 변수, Enum, 문자 출력, 논리 연산자, 사칙연산, 반복문에 대해 배웠다
  • 이를 통해 숙제를 풀었는데 및을 확인하면 될 것 같다


숙제


  1. 수업 시간에 만든 총 게임 버그수정
    1. 총알이 다 떨어지면 못쏘게 하기
    2. 총알이 가득 차 있을 때 총알 재장전 못하게 하기
  2. 텍스트 기능 추가
    1. 총알 피격하면 HP 깍이게 만들기
    2. 체력 회복 기능
  • 완성
    • 마우스 입력시 총알이 나가며 총알이 없다면 총알이 없다는 문구가 띄어진다
    • 총알이 나갔을 때 HP를 Damage만큼 빼주면서 현재 HP 값을 출력한다
    • 이때 HP가 0이하면 총을 더이상 쏘지 못하고 3초뒤에 게임이 종료될 수 있도록 하였다
    • R을 눌렀을 때 총알이 장전되며 총알이 가득 차 있다면 장전이 안되게 하였다
    • HP가 가득 차있거나 0이 아닐 경우 H 버튼을 누르면 HP가 회복된다


  1. While Loop를 이용한 구구단



  2. 컴퓨터와 가위바위보

    a. Z,X,C를 입력하면 플레이어 Enum 변수에 바위, 가위, 보를 Set한뒤 Fuc 함수를 실행시키고 Result 함수를 실행하게 만들었다

    b. Fuc 함수는 0~2중 Random수를 입력받아 Swich On 노드를 이용하여 컴퓨터의 가위바위보 정보를 저장할 Enum 변수에 결과를 Set한다

    c. 플레이어의 Enum과 Computer의 Enum을 비교하여 두 값이 같다면 결과를 도출할 Enum 변수에 비김을 Set한다

    d. Branch가 False 라면 플레이어의 Enum에 따라 Switch On노드를 통해 Computer의 Enum과 비교해 누가 이겼는지를 결과 Enum 변수에 Set해준다

    e. Fun 함수가 끝이나면 Result 함수를 통해 플레이어와 Computer의 Enum 값을 출력하고 결과 Enum에 따라 승부 결과를 출력해 주었다


  • 부가적 기능들
    • Begin Play에서 총 게임과 가위바위보 게임의 입력을 못하게 막고 게임 선택 문구를 출력해준다
    • 1,2,3번으로 게임을 선택하며 각각의 게임에 막아 놓은 입력을 풀어 게임 시작시 입력이 가능하게 해준다
    • 4번은 게임을 종료하는 함수를 호출해준다
    • EndGame 함수는 QuitGame을 호출해주는 함수로 게임을 종료 시켜주는 함수이다
  • 숙제를 하면서 느낀점
    - 숙제는 코딩 경험이 있어 대체로 쉬웠던 것 같다
    - 하지만 가위바위보 게임을 만들 때 Switch On 노드 때문에 어떻게 활용해야 될까 고민을 하여 시간이 좀 걸렸던 것 같다
    - 이번 숙제를 통해 블프 기능들을 다시 한번 복습도 하고 기회가 있다면 로직을 좀더 간결화 하여 문자 출력 게임이 아닌 그래픽적 요소를 추가하는 게임을 만들어봐도 괜찮을 것 같다


코딩테스트


팰린드롬인지 확인하기 (1)

농구 경기 (1)

ROT13 (1)

  • 오늘은 위의 세 문제를 풀었다
  • 이번 문제는 쉬워 빠르게 풀었지만 ROT13 문제에서 생각없이 문제를 풀어서 시간이 좀 오래 걸리고 애를 먹었다
  • 쉬운 문제라도 생각해보고 수도코드를 하는 등 분석을 한 뒤 푸는 연습을 계속 해야겠다

DirectX


  • 오늘 강의에서는 지금까지 Game의 시작과 끝을 관리하는 클래스에서 GameObject를 출력하고 Render하는 부분을 다른 클래스로 옮겨와 관리하게 만들어주는 작업을 하였다
  • Scene 에서 GameObject를 추가하고 관리하는데 이러한 Scene이 여러개 존재할 수 있으므로 이 Scene을 관리하는 SceneManager class를 만들었다
profile
게임 개발 지망생

0개의 댓글