CS 질문

- [Database SQL] JOIN

조인 : 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법
테이블을 연결하려면, 적어도 하나의 칼럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용한다.

종류
1. INNER JOIN : 교집합에 속하는 원소들을 보여줌



2. LEFT OUTER JOIN : 코드 기준 왼쪽 테이블 + 교집합의 원소



3. RIGHT OUTER JOIN : 코드 기준 오른쪽 테이블 + 교집합의 원소



4. FULL OUTER JOIN : 합집합



5. CROSS JOIN : 모든 경우의 수를 표현



6. SELF JOIN : 자기 자신을 가지 모든 경우의 수를 표현

- SQL Injection

조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법

공격 방법
1. 인증 우회 : input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력
추가) WHERE 절에 OR문을 추가하여 '1' = '1'과 같은 true문을 작성하여 무조건 적용되도록 수정한 뒤 DB를 마음대로 조작할 수도 있다.


2. 데이터 노출 : 시스템에서 발생하는 에러 메시지를 이용해 공격하는 방법이다. 보통 에러는 개발자가 버그를 수정하는 면에서 도움을 받을 수 있는 존재다. 해커들은 이를 역이용해 악의적인 구문을 삽입하여 에러를 유발시킨다. => 에러를 통해 해당 DB의 구조를 유추해서 활용

방어 방법

  • input 값을 받을 때, 특수문자 여부 검사하기
    로그인 전, 검증 로직을 추가하여 미리 설정한 특수문자들이 들어왔을 때 요청을 막아낸다.

  • SQL 서버 오류 발생 시, 해당하는 에러 메시지 감추기
    view를 활용하여 원본 데이터베이스 테이블에는 접근 권한을 높인다. 일반 사용자는 view로만 접근하여 에러를 볼 수 없도록 만든다.

  • preparestatement 사용하기(parameterized query)
    preparestatement를 사용하면, 특수문자를 자동으로 escaping 해준다. (statement와는 다르게 쿼리문에서 전달인자 값을 ?로 받는 것) 이를 활용해 서버 측에서 필터링 과정을 통해서 공격을 방어한다.

- 트라이(Trie)

문자열에서 검색을 빠르게 도와주는 자료구조

'네모' 모양으로 구성된 것을 확인하면 총 8개다.

- B Tree & B+ Tree

이진 트리의 문제 : 부모가 두 개의 자식밖에 가지질 못하고, 균형이 맞지 않으면 검색 효율이 선형검색 급으로 떨어진다.

B Tree : 이진 트리를 확장해서, 더 많은 수의 자식을 가질 수 있게 일반화


규칙

  • 노드의 자료수가 N이면, 자식 수는 N+1이어야 함
  • 각 노드의 자료는 정렬된 상태여야함
  • 루트 노드는 적어도 2개 이상의 자식을 가져야함
  • 루트 노드를 제외한 모든 노드는 적어도 M/2개의 자료를 가지고 있어야함 (M : tree의 degree)
  • 외부 노드로 가는 경로의 길이는 모두 같음.
  • 입력 자료는 중복 될 수 없음

B+ Tree : 데이터의 빠른 접근을 위한 인덱스 역할만 하는 비단말 노드(not Leaf)가 추가로 있음
장점 -
블럭 사이즈를 더 많이 이용할 수 있음 (key 값에 대한 하드디스크 액세스 주소가 없기 때문)
leaf 노드끼리 연결 리스트로 연결되어 있어서 범위 탐색에 매우 유리함
단점 -
B-tree의 경우 최상 케이스에서는 루트에서 끝날 수 있지만, B+tree는 무조건 leaf 노드까지 내려가봐야 함



신문

- 빌라 400채 보유 30대 갭투자자…주택압류에 세입자 "내 보증금은?"

문제는 A씨의 모든 주택이 압류되면서 세입자들이 전세 보증금을 돌려받지 못할 위기에 놓였다는 점

허허.. 모든 계산을 한 후에 투자를 하든 뭘 해야 겠다. 부동산 많아도 세금을 못 낸다? 이러면 압류해서 이를 충당할 수도 있다.

- "빚투하다 폭망, 믿을 건 은행뿐"…보름새 10조 몰린 예적금

반면 경기 둔화와 자산시장 침체 우려가 커진 탓에 증시 자금은 감소세를 이어갔다.
과도한 예대마진 수익을 단속하겠다는 공약을 내걸었던 윤석열 대통령이 당선되고, '정권 실세'로 불리는 이복현 금융감독원장이 노골적인 압박에 나서며 은행권의 예적금 금리 인상 속도가 더욱 빨라

추가적인 하락은 당연한 거다. 돈이 빠져나갔으니까..

- 수주대박에도 웃지못하는 조선주

후판 가격, 인건비 등 비용 부담이 늘어난 데다 중장기적으로 선박 수요가 지속될 수 있을지에 대한 의문이 제기되는 것이 최근 주가 부진의 이유로 거론


조선사들은 오랜 기간 부진이 굳어져 실적 발표 때마다 미리 주가가 조정받곤 했다. 이후 신규 수주 등이 확인되면 주가가 반등하는 흐름이 반복됐다.

조선사들의 실적발표 때 매수를 하고 반등을 기다리는 것도 괜찮겠다. 근데 전체적으로 조선 시장 자체가 좋지는 않은 것 같아서 판단은 해야 할 듯 하다.



0개의 댓글