본문 바로가기

컴퓨터공학

(10)
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)
재귀함수 재귀함수- 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수- 종료조건이 꼭 포함 되어야한다 EX 1 장점- 직관적이다- 가독성이 높아진다 단점- 메모리를 많이 차지하며 성능이 반복문에 비해 느리다- 호출하는 횟수가 많아지면 스택오버플로우가 발생할 수 있다
해싱 과 암호화 hash 함수- 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수- 단방향 함수 (복호화가 존재하지 않음) - 결과값(해시)을 가지고 원래의 정보를 알아내기 어려움- 원정보에 아주 조금의 변화라도 발생한다면, 해시값은 전혀 다른 값이 됨- 정보의 양과 종류에 상관없이, 일정한 길이로 산출된 임의의 알파벳과 숫자의 조합의 모양을 갖음- 대표적인 해시함수: sha512 암호화- 어떤 정보를 의미 없는 문자의 나열로 바꾸는 것- 키를 필요로 함- 암호화, 복호화 가능- 평문이 같아도 키가 다르면 암호문도 달라짐 참고 (youtube)
HTTP HTTP- HyperText Transper Protocol- 클라이언트와 서버가 요청을 하고 응답하기 위해 정해놓은 규칙- 요청-응답 후 연결을 끊어버림 -> 클라이언트의 이전 상태를 알수 없음 (쿠키와 세션 필요) HTTP method- GET : 정보를 요청하기위해 사용(Read)- POST : 정보를 입력하기위해 사용(Create)- PUT : 정보를 업데이트하기위해 사용(Update)- DELETE : 정보를 삭제하기위해 사용(Delete) HTTP status codes- 1xx: Informational- 2xx: Success- 3xx: Redirection- 4xx: client error- 5xx: Server error 참고(youtube)
TCP / UDP TCP- 연결형 서비스 지원- 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜- 서버와 클라이언트는 1:1로 연결 UDP- 비연결형 서비스 지원- 일방적으로 데이터를 전달하는 통신 프로토콜- 정보를 주고 받을때 신호절차를 거치지 않음- 연속성이 중요한 서비스 (실시간 서비스)에 자주 사용됨- 신뢰성이 낮고 속도는 TCP보다 빠름 참고 (youtube)
OSI 7 Layer 7 Application- 사용자가 직접 눈으로 보고 실제로 작업을 하는 계층- 사용자와 직접적으로 상호작용 하는 모든 응용 프로그램들이 속함- 웹 브라우저, HTTP, FTP, WWW, SMTP, POP 6 Presentation- 전송하는 데이터의 포맷을 결정하는 계층- 교환되는 데이터의 인코딩, 암호화 등을 담당하는 계층- ASCII,JPEG,AVI 5 Session- 통신을 하는 두 host 사이에 세션을 관리하는 기능을 담당하는 계층- port 번호를 기반으로 통신 세션을 구성- SSH, TLS 4 Transport- 데이터의 전송을 담당하는 계층- 데이터의 용량, 속도, 목적지 등을 처리- TCP, UDP 3 Network- 네트워크 장비 간에 논리적인 IP주소로 식별하여 연결을 보장하는 계층..