일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 가상컴퓨팅
- 크루스칼
- JPA
- 코딩테스트준비
- python
- 개발자취업
- js
- til
- 생성자
- 자바의정석
- javascript
- DB
- Algorithm
- 공개키 암호화
- 항해99
- dbms
- 99클럽
- generic class
- BFS
- sql
- 코테
- jsp
- Queue
- 자료구조
- dfs
- 암호학
- spring
- Java
- 코딩테스트
- 알고리즘
- Today
- Total
목록분류 전체보기 (137)
PLOD
* Dropout 구글에서 만든 AI 특허 기술, 사용하기 편하며 성능도 우수하다. 학습시 특정 node weight에 의해 overfitting 되는 현상을 막아준다. (regularization) dropout을 사용함으로써 더 작은 신경망을 사용하는것이 정규화의 효과를 준다. dropout이 여러개의 네트워크를 학습한 후에 하나의 네트워크로 합치는 것과 같은 효과를 낸다. Why use DropOut? 1) used to avoid overfitting 2) simple to implement 3) widely adopted dropout을 사용하는 이유는 train data에 있어서 100%의 정확도를 출력하지만, 실제로 test data에 있어서 높은 예측율을 출력하지 못하기 때문이다. 학습시킬..
병행 제어에 앞서, 먼저 병행에 대해서 알아보자. 병행(Concurrency)은 매우 빠르게 여러 트랜잭션 사이를 이동하면서 조금씩 처리를 수행하는 방식이다. 따라서 실제로는 한 번에 한 트랜잭션만 수행하지만, 마치 동시에 여러 트랜잭션을 수행하는 것처럼 보이도록 하는 것이다. 병행 제어(Concurrency Control)는 이렇게 트랜잭션이 병행 수행될 때 트랜잭션이 데이터베이스의 일관성을 파괴하지 않고, 다른 트랜잭션에 영향을 주지 않도록 트랜잭션 간의 상호작용을 제어하는 것을 말한다. 병행 제어의 목적은 다음과 같다. 데이터베이스의 일관성 유지(consistency) 데이터베이스 공유 최대화 시스템 활용도 최대화 사용자 응답 시간 최소화(Minimize response time) 단위 시간당 트랜..
ACID 1. Atomicity(원자성) : 트랜잭션의 작업들이 모두 수행되거나 전혀 수행되지 않아야 함. 일부만 수행된 상태가 되어서는 안됨 2. consistency (일관성) : 트랜잭션의 수행 이후에도 데이터는 항상 일관되고 무결성이 유지된 상태에 있어야 함 -> integrity 유지 3. Isolation(격리성, 고립성) : 각 트랜잭션은 다른 트랜잭션의 수행에 영향을 끼치지 않아야 함 -> serializability : 각 트랜잭션을 따로 수행한 결과와 동일하여야 함 4. Durability(내구성, 지속성) 한번 commit된 트랜잭션의 결과는 계속적으로 유지되어야 함 Transaction Definition in SQL commit을 호출하면 트랜잭션 종료 rollback을 호출하면 ..
query optimization SQL 쿼리가 주어질 때 최단 시간내에 출력될 수 있는 최적의 query plan을 선택하는 작업, 특히 쿼리가 복잡한 경우 일반적으로 주어진 쿼리를 처리하기 위해 많은 전략에서 가장 효율적인 쿼리 평가 계획을 선택하는 프로세스 평가 계획은 각 작업에 사용되는 알고리즘과 작업 실행이 조정되는 방법을 정확하게 정의한다. query optimize를 하는 이유 : temporary result의 사이즈를 줄이기 위해 *cost-based query optimization 1) 동등성 규칙을 사용하여 논리적으로 동등한 식을 생성 2) 결과 식에 주석을 달아 대체 쿼리 계획을 가져온다. 3) 예상 비용을 기준으로 가장 저렴한 요금제 선택 평가 계획을 세울때는 관계에 대한 통계적..
1. ASLR(Address Space Layout Randomization) 리눅스 메모리 보호기법, 충분한 randomness를 요구로 하여 직접적인 메모리 참조가 힘들어 진다. 하지만 프로그램 코드에는 적용하지 못하고 오로지 라이브러리에만 적용 가능하다는 단점과 주소의 시작 주소만 바뀌기 때문에 address leak를 한다면 다른 함수도 결국 접근 가능하다는 단점이 있다. 과거의 App들은 C나 C++로 작성되었지만 현재는 Web 기반 서비스들이 주류이기 때문에 SQL injection이나 XSS, session Hijacking, CSRF 같은 공격들을 대비하여야 한다. web에서의 Request type은 GET과 POST로 나누어 진다. GET은 모든 데이터가 URL 자체에 있기 때문에 브라..
software security는 software의 어떻게 안전하게 만들것인가에 대해 초점을 맞춘다. 1. HeartBleed web에서 사용자가 서버와 통신을 할 때 주로 openSSL ,TLS를 사용하는데 사용자가 웹사이트에 접속할 때 서버로부터 정보를 암호화해서 주고 받으며 통신을 하는데 이 과정에서 서버와 사용자가 같은 데이터를 주고받지 않는 소프트웨어적인 문제점(OPENSSL bug로 가능해진 공격이다.) 2. Low-level vulnerability(C, C++) High- level (java, python) C와 C++ 는 system software language(ex . servers , OS kernels, embedded systems) 이기 때문에 attack 에 굉장히 민감하..