분류 전체보기 (총 582개) 썸네일형 리스트형 1일차 (가상 서버 구축) *가상화 하나의 물리적인 서버를 복수의 논리적 서버로 분리하는 개념이다 가상화는 물리적 서버의 비용감소와 온도를 유지시키기 위한 장치의 감소 등 경제적인 면의 장점등이 있다. * 가상화를 위한 기술 1. 하이퍼바이저 : 하이퍼 바이저는 물리적인 장치로부터 운영체제, 애플리케이션을 분리해주는 소프트웨어로 하드웨어에 직접 설치된다. 2. 가상 머신 : 하나의 물리적 하드웨어 상에서 여러 컴퓨터가 구동되는 것처럼 에뮬레이션하는 것 @실습 - virtual box 새 guestpc 설치 ======== 1. 이름에 따라 맞는 서버가 선택됨 (w7-1) 2. 메모리(1024) 3. VDI(virtual box에서 사용하는 이미지) VMDK( vm ware ) VHD( 윈도우 , hiper v ) 4. 동적할당 -.. Android - 상태 저장 (SavedInstanceState) @액티비티의 종료 액티비티가 소멸되는 상황은 아래와 같다(이밖에도 더 있다) ㄱ. 사용자가 Back 버튼을 누른다 ㄴ. 액티비티가 finish()를 호출한다 ㄷ. 액티비티가 정지되어있는 상태에서 전면에 있는 액티비티가 더많은 리소스를 요구하여 시스템이 메모리 회수를 위해 액티비티를 소멸시킨다. 우리는 액티비티가 더 이상 필요없을 때 종료를 한다하지만 액티비티의 상태는 때때로 저장되어야 하는 경우가 있다그러한 경우는 다음과 같다 1. 예기치 못하게 시스템에 의해 강제 종료된 경우 지금 진행중이던 데이터를 다시 불러오기 위해 저장 2. 그 순간에만 필요한 데이터가 아닌 축적, 저장 되어야 하는 데이터인 경우(ex. 게임 캐릭터 정보) @상태저장 ㄱ,ㄴ : 액티비티가 정상적으로 종료되는 경우 영구적으로 저장할.. Java - 쓰레드 동기화 (Synchronized) 앞선 포스팅에서 멀티쓰레드의 장점과 문제점을 다루었다 ( http://galid1.tistory.com/11 )오늘은 원초적이지만 가장 간단한 멀티쓰레드의 문제점 해결방법을 포스팅 할 것이다. 해결방법은 synchronized 를 보호하고자 하는 변수, 메소드 등에 사용하는 것이다 => public synchronized void count() {acquire();try {Thread.sleep(1000);num++;} catch (InterruptedException e) {e.printStackTrace();}release();} 1. 이렇게 메소드 앞에 synchronized 키워드를 사용한다면 한 쓰레드가 해당 메소드에 접근할때 lock을 가지고 들어간다 2. 다른 쓰레드가 해당 메소드에 또 접근.. Java - 멀티쓰레드 (Multi Thread) 멀티 쓰레드는 CPU를 최대한 활용할 수 있는 도움을 주었다 하지만 쓰레드는 이와 동시에 위험을 주었다 위험이란 원자적이지 못한 메소드를 여러개의 쓰레드가 동시에 접근하여 수행할때 그 결과값이 우리가 기대하는 값과는 다를 수 있다는 것이다. 아래 예시를 보자 ----------------------------------------------------------------------------------------*Count Class : 카운트 클래스는 num이라는 변수와 count()라는 num을 1씩 증가시키는 메소드를 가지고 있다----------------------------------------------------------------------------------------1234567.. Java - InputStream 의 read()메소드는 왜 int형을 반환 하는가 InputStream 의 read()는 입력스트림의 1바이트를 읽기위한 메소드이다그런데 메소드의 시그니처를 살펴보면 반환형이 int형 인것을 볼 수 있다. 이유는 입력스트림을 읽다가 끝이란 것을 나타내기 위해 -1을 return 해야하지만byte의 경우 8bit(0 ~ 255) 이기 때문에 -1 이란 값을 리턴할 수가 없다. 따라서 -1 (int형)을 리턴함으로써 입력스트림의 끝을 나타낸다. Java - String 과 StringBuffer 클래스 * String 은 불변 클래스이다 ! String hi = "hello"; hi += " world";System.out.println(hi); => hello world ? String 은 불변 클래스라고 하지 않았던가 어떻게 이런일이 가능한지 살펴보자 java 에서는 String값에 변화가 필요할경우 아래와 같은 작업이 일어난다 1. String hi = "hello"; => 가장먼저 JVM 메모리 상수풀에 "hello" 라는 문자열이 넣어지고 그 주소를 hi 변수가 가리키게 된다. hi -> "hello" 2. hi += " world"; String은 불변객체이므로 직접 값을 바꿀수 없다 따라서 먼저 StringBuffer 란 객체를 생성하고 원래의 String 값을 넣는다 new StringB.. Java - equals 과 == 차이 1. equals 는 객체가 가진 내용이 같은지 다른지를 비교하는 메소드이다 2. "==" 는 객체의 메모리 주소를 비교한다 ex ) String a = "a"; String b = "a"; if (a.equals(b)) system.out.println("같다") => 같다 if (a == b) system.out.println("같다") => 같다 * "==" 은 메모리의 주소를 비교한다고 했는데 왜 같다 라는 결론이 나왔을까 Java 에서 Jvm에 메모리 할당시 String a = "a"; 와 같은 방식으로 할당할 경우 상수풀이란 곳에 "a" 값이 저장되게 되고 a가 그 주소를 가리키게된다 이때 String b = "a"; 를 실행 할 경우 상수풀에 이미 "a"란 값이 있으므로 b에 새로운 주소가 .. Java - Wrapper / 오토박싱 1. Wrapper 클래스 자바에는 기본형 타입들을 객체 형태로 변형 시켜주는 클래스들을 일컫는다 ex) -Integer -Long -Double -Float -Byte -Short -Character -String * 래퍼클래스(Wrapper) 를 사용하는 이유 (기본타입을 객체 타입으로 바꾸어야 하는 이유) => 1. 각각의 래퍼클래스에서 제공하는 메소드들을 사용하기 위해 ex ) 예를 들어 int -> String , String -> int 형으로 바꾸기 위해 2. 오토 박싱/언박싱 기본 타입의 값을 객체 타입으로 자동으로 바꾸고 그 반대로 하는 행위 * 왜 필요한가 ? java5 이전의 버전에서는 기본타입의 값들이 래퍼클래스의 메소드들을 사용하기 위해서는 래퍼클래스로 기본타입의 값을 변형 시킨뒤.. 이전 1 ··· 69 70 71 72 73 다음