2022.12.01.THU

ronglong·2022년 12월 1일
0

코드스테이츠 Day31

  1. SQL (Structured Query Language)
  • 데이터베이스 용 프로그래밍 언어
  • SQL을 사용하려면 데이터가 구조가 고정되어 있어야 함.(MySQL 등)
  • NoSQL : 데이터의 구조가 고정되어 있지 않은 데이터베이스(몽고DB 등)
  • 데이터베이스 관련 명령어 : CREATE DATABASE, USE, DESCRIBE 등
  • SQL 명령어 : SELECT, FROM (테이블명), WHERE (필터링 조건), ORDER BY, LIMIT, SELECT DISTINCT, JOIN, LEFT(RIGHT) OUTER JOIN, AS 등

2. ACID

  • 트랜잭션(transaction) : 여러 개의 작업을 하나로 묶은 실행 유닛
  • ACID : 데이터베이스에서 일어나는 하나의 트랜잭션의 안전성을 보장하기 위해 필요한 성질
    • Atomicity(원자성) : All or Nothing. 전부 성공 또는 전부 실패.
    • Consistency(일관성) : 트랜잭션 이후에도 데이터베이스 상태(규칙) 유지
    • Isolation(격리성, 고립성) : 트랜잭션 동시 실행과 연속 실행의 데이터베이스 상태가 동일해야 함.
    • Durability(지속성) : 트랜잭션이 성공 후 로그(기록)는 영구적.
  1. 기타
  1. 아침 데일리 코딩에서 짠 코드
public class Solution { 
	public String decryptCaesarCipher(String str, int secret) {
    String result ="";
    
    // 빈 문자열 거르기 
    if(str.length()==0) return result;

    // 배열에 알파벳 넣어서 인덱스 순서로 복호화?
    char[] arr = new char[26];
    for(int i=0; i<arr.length; i++){  //ASCII Code를 char로 형변환하여 배열에 알파벳 담기 
      arr[i] = (char)('a'+i);
    }

    for(int i=0; i<str.length(); i++){ // 이중 포문으로 돌기. 각 문자에 맞는 알파벳 있는지. 
      for(int j=0; j<arr.length; j++){
        if(str.charAt(i)==' ') {
          result += ' ';
          break;
        }
        if(str.charAt(i)==arr[j]) {
          if(j-secret >= 0) {
            result += arr[j-secret];
            break;
          }
          else {
            result += arr[j-secret+26];
            break;
          }
        }
      }
    }
    return result;
	} 
}

맨 처음에 result 따로 선언 안 하고, 이중 포문 안에서 바로 str = str.replace 했더니 결과가 이상했다. 그래서 혹시? 하고 result 따로 선언해서 더해주니까 정상적으로 결과 도출됨.

어제 반만 통과했던 18번 문제는 아직도 그대로인 상태. 이유가 뭘까,,

<느낀 점>
오늘은 전반적으로 수월했다. 과제가 퀴즈 풀기라서,, ㅎ
SQL은 컴활 공부할 때 잠깐 봤었는데, 지금은 가물한 기억.. ㅋㅋ
문제는 대부분 수월했는데, join이 좀 어려웠다.

0개의 댓글