본문 바로가기

DB index (인덱스) Index- RDBMS에서 검색속도를 높이기 사용하는 하나의 기술- 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것- 검색(SELECT)이 많고 INSERT, UPDATE, DELETE문이 적게 일어나는 테이블에서 인덱스를 사용하면 좋음 장점- key-value를 기초로 하여 테이블에서 검색과 정렬 속도를 향상시킵니다.- 시스템에 걸리는 부하를 줄여 시스템 전체 성능을 향상시킴 단점- 인덱스를 만들 추가적인 공간이 필요- 인덱스를 생성하는데 시간이 많이 소요될 수 있음- 데이터 변경 작업이 자주 일어날 경우에 인덱스를 재작성해야 할 필요가 있기에 성능에 영향을 끼칠 수 있음 참고 (youtube)
트랜잭션(Transaction) 트랜잭션(Transaction)- DB의 상태를 변화시키기 해서 수행하는 작업의 단위- 하나의 트랜잭션은 Commit되거나 Rollback 됨- DB의 완전성을 보장하기 위한 것- Commit(커밋) : 해당 Connection의 요청을 완료하고 특별한 에러가 없다면 결과를 DB에 반영- RollBack(롤백) : 해당 Connection 수행 중 예기치 않은 에러가 발생하였다면 모든 과정을 취소하고 DB를 Connection이 수행되기 이전상태로 변경 Atomicity(원자성)- 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함- 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 ..
추상화 (Abstraction) 추상화(Abstraction)- 중요하지 않은 부분은 지우고 중요한 부분만 남겨서 문제, 사건, 사물 등을 단순화 시키는 작업- 객체 지향 프로그래밍에서 추상화(Abstraction)는 객체들의 공통적인 프로퍼티와 메서드를 뽑아내는 작업- 전체에서 핵심만을 뽑아내 전체를 표현- 목적이나 원하는 기능에 따라 여러 추상화 모델이 생성될 수 있음 추상화의 이점- 문제 해결을 위한 과정이 한 눈에 보여 더 쉽게 문제 해결 참고 (youtube)참고2 (youtube)
Dark Web / Tor Dark Web- 일반적인 인터넷 이용자라면 평생 들어갈 일도, 들어갈 수도 없는 곳- 다크웹에 있는 정보들은 대부분 불법적인 것들이기 떄문에 일반인들은 찾을 이유가 없음- 해킹으로 얻은 개인정보, 가짜 시민권 거래, 살인 청부, 마약 거래, 무기 구입, 경쟁사의 고객정보, 영업비밀 등이 거래됨- 철저한 익명을 보장하는, 즉 사용자와 자금 흐름의 추적이 거의 불가능한 특정 브라우저만을 통해서 접속할 수 있음 Tor (The Onion Router)- 익명 인터넷 통신 시스템- 데이터 송수신 과정 중간에 임의의 3개 토르 라우터를 두어 추적이 어려움- 양파처럼 겹겹이 암호화되어 전송되기 때문에, 어떤 서버도 출발지부터 최종 목적지까지 전체 경로를 알 수 없음- 다크웹에 접속하기 위한 브라우저로 많이 사용되..
Zero Day / Bug Bounty Zero Day- 새로운 보안 취약점이 '발견'되는 시점부터 그 취약점을 없애는 패치가 나올 때 까지의 사이에 이루어지는 공격- 악성코드의 감염위협 중 가장 위험한 형태의 공격(새로운 취약점에 대한 존재 자체를 아예 모르거나,안다고 해도 해당 취약점을 없애는 패치가 아직 나오지 않은 상태이기 때문) Bug Bounty- 사이트 등의 취약점을 발견하고, 이를 해당 회사에 통보하여 그에 따른 포상금을 받는 제도- 보안전문가들에게는 개인의 역량을 높이고 인지도를 상승시키는 역할뿐만 아니라 실질적인 포상을 받을 수 있음- 기업들은 빠르게 보안 패치를 적용해 사고 피해를 예방할 수 있으며 사용자들에게 보안에 대한 신뢰를 얻을 수 있음
Brute Force Attack / Deface Attack / Watering Hole Attack Brute Force Attack - 무작위 대입 공격- 될 때까지 경우의 수를 모두 대입하여 공격 Deface Attack - 외관을 훼손하는 공격- 웹사이트의 화면을 해커가 마음대로 바꿈- 정치적 메세지를 전달하거나 해킹을 성공했다는 실력을 과시하기 위한 용도 Watering Hole Attack- 먹이가 나타날 법한 물 웅덩이를 골라숨어 있다가 먹이가 지나가는 순간을 포착해 뒤에서 공격하는 것- 표적에 대한 정보를 수집해 주로 방문하는 웹사이트를 파악해서 그 웹사이트에 미리 악성코드를 감염시킴- 특정한 대상을 타깃으로 하는 공격으로, 주로 산업스파이 활동과 같이 기밀 정보를 빼내기 위해 사용
재귀함수 재귀함수- 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수- 종료조건이 꼭 포함 되어야한다 EX 1 장점- 직관적이다- 가독성이 높아진다 단점- 메모리를 많이 차지하며 성능이 반복문에 비해 느리다- 호출하는 횟수가 많아지면 스택오버플로우가 발생할 수 있다
해싱 과 암호화 hash 함수- 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수- 단방향 함수 (복호화가 존재하지 않음) - 결과값(해시)을 가지고 원래의 정보를 알아내기 어려움- 원정보에 아주 조금의 변화라도 발생한다면, 해시값은 전혀 다른 값이 됨- 정보의 양과 종류에 상관없이, 일정한 길이로 산출된 임의의 알파벳과 숫자의 조합의 모양을 갖음- 대표적인 해시함수: sha512 암호화- 어떤 정보를 의미 없는 문자의 나열로 바꾸는 것- 키를 필요로 함- 암호화, 복호화 가능- 평문이 같아도 키가 다르면 암호문도 달라짐 참고 (youtube)