목록개발 기타/테크톡 (5)
취미가 좋다
JVM : 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 메모리 관리, Garbage Collector 수행 Garbage Collector : 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 Stack : 정적으로 할당한 메모리 영역 원시 타입의 데이터가 값과 함께 할당. Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 Heap에 있는 객체의 주소를 갖는다. Heap : 동적으로 할당한 메모리 영역 모든 Object 타입의 데이터가 할당. Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 객체가 들어간다. Garbage Collector 과정 1. (Mark) Garbage Collector 가 Stack 의 모든 변수를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btarhS/btrgQBQGQJe/Gz56epn2q0kM1CF847BMgk/img.png)
Proxy Server 클라이언트와 서버 사이에 위치하여 통신을 대리 수행하는 서버이다. 캐시, 보안, 트래픽 분산 등 여러 장점을 가진다. Forward Proxy 클라이언트와 인터넷 사이에 있는 프록시 서버이다. 일반적으로 말하는 프록시 서버이다. 캐싱 클라이언트가 요청한 내용을 캐싱한다. 연결된 클라이언트가 요청한 데이터를 반환할 때 저장했다가 다른 클라이언트가 동일한 데이터를 요청하면 인터넷을 거치지 않고 바로 반환해준다. 전송 시간이 절약되고 외부 요청이 감소되어 네트워크 병목 현상을 방지한다. 익명성 클라이언트가 보낸 요청을 감춘다. 클라이언트의 요청이 프록시 서버를 거치면서 프록시 서버가 요청한 것처럼 보인다. 서버가 받은 요청은 프록시 서버의 IP이므로 서버가 누가 보냈는 지 알 수 없다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/be2c3t/btrgcAssdXJ/3mFrVqnbLLgE1c3yleE67k/img.png)
관계형 데이터베이스 관리 시스템(RDBMS) 중 4가지를 살펴보자. MySQL SQL 문법 기반 거의 모든 운영체제에서 사용 가능 MySQL 데이터베이스는 무료 처리 속도가 빠르고 대용량 데이터 처리에 용이 설치 방법과 사용법이 쉬움 보안성이 우수 구글, 링크드인, 아마존, 넷플릭스, 트위터 등에서 사용 Oracle 오라클 회사에서 만든 데이터베이스 세계 점유율 1위 대부분의 운영체제를 지원 분산처리를 통해 효율성 증대 DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB응용 프로그램 실행 컴퓨터를 다르게 분산처리 대규모 데이터베이스와 영역 관리 고가의 HW를 효율적으로 활용할 수 있도록 영역 사용을 완벽하게 제어 다중 동시 데이터 베이스 사용자 지원 여러 사용자가 동일한 데이터에서 작동하는 다양한 데이터..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dKg6C6/btrfVr9HmzK/FU4iN2blzWlE9cbsI6lH31/img.png)
SQL 인젝션이란? 데이터 베이스와 연동된 웹 어플리케이션에서 공격자가 입력이 가능한 폼에 조작된 질의문을 삽입하여 웹 서비스의 데이터베이스 정보를 열람 또는 조작할 수 있는 취약점 풀어서 설명하자면, 사용자가 게시글을 올리거나 아이디와 비밀번호를 입력할 수 있는 환경이 있다. 그러한 웹 서버는 데이터 베이스와 연결되어 있다. 그곳에 공격자가 SQL문을 사용하여 원하는 데이터를 얻거나 삭제하는 공격이 가능하다. 이러한 공격을 SQL 인젝션이라고 한다. 아래와 같이 게시글에 글을 작성하면 SQL 문이 생성되는데 이를 활용한 공격이다. Character Escaping 이라는 방법으로 이를 방지할 수 있다. 프레임워크나 라이브러리는 이런 기능을 자동으로 제공한다. 또는 Parameter Binding이나 받..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bNonsf/btrdd4JeFN8/ymrroVQSLO7xrBCWKJDtk0/img.png)
1. Multi-Process 프로세스 : 프로그램이 실행된 것 프로그램이 프로세스가 되면서 일어나는 일 1) 프로세스 동작에 필요한 정보들이 메모리에 올라간다. 2) 해당 프로세스에 대한 정보를 담고 있는 PCB 블럭이 만들어진다. 다수의 프로세스를 동시에 실행시키기 위해, 짧은 텀을 반복하면서 전환해서 실행한다. 이를 context switching이라고 하고, 이 방식으로 Multi-process가 가능해진다. 2. Multi-thread 하지만 context switching은 cost가 많이 들고, 이를 절약하기 위한 또다른 방식이 Thread를 사용하는 방식이다. 스레드는 경량화된 프로세스라고 볼 수 있다. 하나의 프로세스 안에 여러 스레드가 있을 때, stack을 제외한 code, data,..