본문 바로가기

분류 전체보기

(76)
프록시란 프록시 보안상의 이유로 직접 통신할 수 없는 두 점에서 중계기로서 통신을 수행하는 기능 이 기능을 하는 것을 프록시 서버라고 함 프록시 서버 특징 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 놓음 → 응답시 응답 시간 절약 / 불필요한 외부 연결 x / 트래픽 줄여 병목현상 방지 프록시 종류 포워드 프록시(Forward) 클라이언트 호스트가 접근하고자하는 리소스 사이에 프록시 서버를 위치 시키는 것 프록시 서버는 원격요청된 리소스를 가져와서 요청자에게 응답하는 역할 수행 로컬 디스크에 데이터 저장 클라이언트 호스트들은 프록시 서버를 설정해야해서 프록시 서버를 사용하고 있다는것을 인지 가능 장점 대역폭 사용 감소 접근 정책 구현 다루기 쉬움 비용 저렴 캐시 저장 - 고속 엑세스 사용 환경 제한 가..
페이징 / 세그멘테이션 사용 이유 메모리 단편화의 해결 방안 - 페이징과 세그멘테이션 메모리 단편화 프로그램 실행시 메모리에 프로그램을 적재하고 실행 주기억장치에 메모리가 할당되고 반납하고를 반복하면 메모리가 작은 조각처럼 공간이 나뉘게 됨 이에 따라 메모리가 충분한대도 메모리 할당이 불가능한 현상 메모리 단편화 종류 내부 단편화 고정된 파티션으로 분할할 때(고정 분할 기법) 사용자 영역(파티션)이 프로그램 할당 영역보다 커서 메모리가 남는 현상 예시 - 2MB를 할당해 줬지만 1MB밖에 사용하지 않는 경우 외부 단편화 동적 분할 기법에서 나타나는 현상 - 파티션이 동적으로 생성되며 자신의 크기와 같은 파티션에 적재 작은 메모리 영역을 반납했을때 더 큰 프로세스는 그 구간에 메모리 할당을 받지 못함 예시 - 4MB 할당되고 그..
상속 / 포함 상속 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것 두 클래스를 조상 - 자손 관계를 맺어줌 조상의 모든 멤버 사용가능 (생성자, 초기화 블록 제외) 포함 한 클래스의 멤버변수로 다른 클래스를 선언하는 것 포함 예시 Class Weapon extends Item { // 상속 - 무기는 아이템이다. private int jobCode; Power power = new Power(); // 포함 - 무기는 공격성을 갖는다. public Weapon() { Power power = new Power(); power.setOffensePower(10); power.setCritical(5); this(power,0); } public Weapon(Power power, int jobCode) { thi..
클래스 Class 객체를 정의하기 위한 단위 객체를 생성하는 템플릿 역할 속성(변수)과 기능(메소드)으로 이루어져 있음 구성요소 생성자 - 객체를 생성했을때 초기화 변수 - 클래스가 가지는 속성을 저장하는 공간 메소드 - 클래스가 할 수 있는 기능 메소드 클래스 내에서 정의된 함수 객체를 이용해 호출 가능 객체의 속성과 관련된 작업 수행 가능 함수 특정 기능을 수행하는 코드블럭 프로그램 어디서든 호출 가능 속성(변수) 멤버 변수 - 초기화하지 않아도 사용가능 / 기본값 자동 초기화 인스턴스 변수 클래스마다 독립적으로 존재 객체마다 고유한 값 객체가 선언되었을때 생성 클래스 변수 클래스가 메모리에 적재되었을때 생성 모든 객체가 공유하는 값 지역변수 초기화 후 사용해야함 예시 Class Item { // 속성(클래스 변수) ..
자바 이미지 크롭 try { // Read the image BufferedImage image = ImageIO.read(new File("path/to/image.png")); // Create a CropImageFilter object to crop the image - width 100~1100 / height 0~maxHeight CropImageFilter cropFilter = new CropImageFilter(100, 0, 1100, image.getHeight()); Image img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(image.getSource(), cropFilter)); // Save the cropped imag..
가비지 컬렉션 컴퓨터 프로그램에서 메모리를 관리하기 위한 기법 프로그램에서 사용하지 않는 메모리를 자동 탐색 / 해제하여 메모리 누수 방지, 프로그램 성능 향상 JVM이 자동으로 수행 과정 메모리 관리 메모리 탐색 마킹 해제(릴리스) 압축 알고리즘 Mark-Sweep - 메모리에서 사용되지 않는 객체를 표시하고 표시된 객체들을 정리 Mark-Compact - Mark-Sweep와 비슷하지만 정리한 후 남은 객체를 한곳으로 모아 압축 Copying - 실행되는 객체들을 새로운 메모리로 복사하여 정리 힙 메모리를 두개로 나누어서 관리 - 실행되는 객체가 저장되는 영역 / 새로운 객체가 생성되는 영역 실행되는 객체들을 다른 곳에 복사하여 정리 → 실행되는 객체만 존재하는 영역 발생 객체를 복사하는데 비용으로 인한 오버헤드 ..
데이터베이스 엔진 데이터베이스의 핵심 기능을 수행하는 소프트웨어 데이터 검색, 변경, 삭제하는데 필요한 기능을 제공 다양한 기능을 수행할 때 필요한 메모리나 디스크 공간, 트랜잭션 관리, 인덱싱, 복제 등의 기능도 제공 Mysql의 InnoDB / MyISAM InnoDB 트랜잭션 여러개의 작업을 하나의 논리적인 작업으로 그룹화 일관성 보장 오류가 나면 되돌릴 수 있는 롤백기능 제공 로드 밸런싱 빠른 인덱싱 내장된 데이터 압축 디스크 공간 절약 / 성능향상 클러스터링 고가용성과 확장성을 제공하기 위해 여러 서버를 연결하여 단일시스템으로 작동하는 프로세스 여러 서버가 하나의 시스템으로 동작할 수 있도록 하는 기능 노드라고 하는 여러개의 서버가 함께 데이터를 관리하기 위해 함께 동작 한 노드가 장애 발생시 다른 노드가 해당 ..
DBMS 구성 요소 데이터베이스 엔진 실제 데이터를 저장, 검색, 변경, 삭제하는 기능을 수행하는 소프트웨어 데이터 모델 데이터베이스를 구성하는 개념적, 논리적, 물리적 구조를 정의하는 것 DDL - Database Define Language 데이터베이스 구조를 정의하는 언어 DML - Database Management Language 데이터베이스에 저장된 데이터를 검색, 변경, 삭제하는 언어 트랜잭션 관리 데이터베이스에서 수행되는 작업들을 트랜잭션으로 관리하는 것 보안 관리 데이터베이스에 접근하는 사용자나 작업을 제한하는 것 데이터 복제 사용자들이 동시에 접근할 수 있도록 복제하는것 데이터 복구 장애 또는 손실시 데이터 베이스를 복구