본문 바로가기

TIL

TIL#38(옹알이(2), 트랜잭션)

오늘 한일
  • 옹알이(2)

문제 풀이

babbling배열에서 for문으로 모든 단어를 검사하였고 babble에 babbling에 있는 단어를 하나 넣은 후 babble의 단어가 발음 할 수 있는 단어를 includes와 repeat으로 반복으로 포함되는지 확인 하였고 babble를 발음할 수 있는 단어 기준으로 나눈 후 공백을 넣어주었다. 그 후 babble를 공백 기준으로 배열을 만들어 그 길이가 0이 아니면 answer에 1을 더해주었다.

 

  • 트랜잭션(transaction)

트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적 작업 단위를 말한다. 트랜잭션은 데이터베이스 시스템에서 데이터 무결성과 일관성을 유지하는 중요한 역할을 하며, 보통 여러 개의 데이터 조작 작업(DML: Data Manipulation Language)을 하나의 묶음으로 처리한다. 트랜잭션은 ACID 특성을 준수해야 한다.

 

  1. Actomicity(원자성) : 트랜잭션의 모든 작업이 모두 성공하거나 모두 실패해야 한다는 것을 의미한다. 
  2. Consistency(일관성) : 트랜잭션이 완료되면 데이터베이스는 일관성 있는 상태로 유지되어야 한다.
  3. Isolation(고립성): 하나의 트랜잭션이 수행되는 동안 다른 트랜잭션이 동시에 수행되더라도 서로 간섭하지 않아야 한다.
  4. Durability(지속성): 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 데이터베이스에 저장되어야 한다. 

트랜잭션의 주요 단계

 

  • BEGIN: 트랜잭션의 시작을 표시한다.
  • COMMIT: 트랜잭션의 모든 작업이 성공적으로 완료되었음을 표시하고, 변경 사항을 데이터베이스에 영구적으로 반영한다.
  • ROLLBACK: 트랜잭션 수행 중 오류가 발생하면 모든 변경 사항을 취소하고 데이터베이스를 트랜잭션 시작 전 상태로 되돌린다.

 

어려웠던 점
  • 발음 가능한 단어 문자열 사이에 발음 가능한 단어가 있는 경우(ex : y'aya'e) 이런 식 일때는 예외 처리를 해주어야 했는데 어떻게 해야할 지 고민을 많이 하였다. (aya로 나눌 때 그 공간에 " "(공백문자)를 넣어 해결 할 수 있었다.)
  • 트랜잭션에 대한 개념은 이해하였지만 실제로 사용해보는데는 아직 미숙한 것 같다. (트랜잭션을 실제 코드로 많이 구현해봐야 할 것 같다.)
오늘의 TIP
  • 자바스크립트의 repeat() 함수는 주어진 문자열을 옵션의 count 만큼 반복하여 붙인 다음에 새로운 문자열로 반환하는 함수이다.