분류 전체보기 150

[Java] Java 1.8을 왜 많이 쓸까?

1. Java 1.8을 왜 많이 쓸까? - 1. 지원 버전 - 2. Java 버전에 맞는 JDK 이름 2. Java 1.8에 생긴 큰 변화 1. 함수형 인터페이스 -1.1 왜 나왔을까? 2. 디폴트 메소드 -2.1 왜 나왔을까? 3. 람다식 -3.1 왜 나왔을까? 4. 스트림 - 4.1 왜 나왔을까? 5. 옵셔널 - 5.1 왜 나왔을까? 1. Java 1.8을 왜 많이 쓸까? 1.1 지원 버전 Java 1.8버전은 2014년에 등장했다. (거의 10년전에 나왔네..) 1.8 버전에서 새로운 개념들이 많이 생기기도 했고, 오라클사에서 오랫동안 지원해준다고 발표했기때문이다. (2030년도까지) 요즘 많이 사용하는 1.8 , 11 , 17 버전 통틀어서 제일 오래전에 나온 1.8 버전이 제일 오랫동안 지원을 ..

JAVA 2023.06.11

[정리] 12 네트워크와 분산 시스템

목차 1. 네트워크와 인터넷 2. 분산시스템 3. 분산 시스템의 고가용성 1. 네트워크와 인터넷 1.1 통신과 네트워크 - 통신은 의사소통하는것을 뜻한다. 세월이 지나면서 아래와 같은 통신 방법들이 나오게되었다. 단방향 통신 : 한쪽 방향으로만 통신이 이루어지는 방식 > 모스부호, 라디오 , TV 등 이있다 양방향 통신 : 양쪽 방향으로 동시에 통신이 이루어지는 방식. > 일반적으로 전화기가 해당 반양방향 통신 : 단방향,양방향 통신의 중간형태. > 무전기가 대표적이다. 1.2 네트워크 환경의 발전 - 네트워크는 유/무선 통신 기술을 이용해 여러기기를 하나로 연결한것, 우리나라 말로는 '망'이라고 할수있다. 아날로그망 - 음성 신호를 전송한다. (전화기) 디지털망 - 디지털 데이터를 전송한다. (인터넷)..

[디자인패턴] 싱글톤 패턴

목차 1. 싱글톤 패턴의 기본 개념 2. 단순한 싱글톤 패턴 구현 3. 단순히 구현한 싱글톤 패턴의 문제 및 개선 방안 4. 현재 Java 진영에서 사용되고 있는 Best 방안 1. 싱글톤 패턴의 기본 개념 - 싱글톤 패턴이 필요한경우는, 프로그램 내에서 어떤 객체가 단 1개만 존재해야하고 프로그램 내부의 여러부분에서 단 1개의 객체를 공유하며 사용할때 필요하다. - 현실 세계로 예를 든다면, 프린터 라는 자원은 1개이고 여러사람은 이 1개의 프린터를 공유해 사용할때와 같은경우 적용할수있다. 2. 단순한 싱글톤 패턴 구현 - private 생성자로 외부에서 객체의 생성을 막으며, getInstance() 메소드로 하나의 동일한 instance만을 제공한다. 3. 단순히 구현한 싱글톤 패턴의 문제 및 개선..

카테고리 없음 2022.11.09

[디자인패턴] 팩토리 패턴

목차 1. 심플 팩토리 패턴 2. 팩토리 메소드 패턴 3. 추상 팩토리 패턴 1. 팩토리 패턴 - 팩토리 패턴은 크게 [ 심플 팩토리 패턴 ][ 팩토리 메소드 패턴 ] [ 추상 팩토리 패턴 ] 크게 3가지 종류가 있다. 1.1 심플 팩토리 패턴 - 간단히 말해서, 객체를 생성하는 클래스를 따로 두는것. - 단순히 객체를 만드는 작업을 하나의 팩토리 클래스에 모아두는것을 의미한다. 1.2 팩토리 메소드 패턴 - 팩토리 메소드는 심플 팩토리 패턴에 비해 달라진부분은 SimplePhoneFactory를 인터페이스화 하고, 상속받은 클래스들이 각자의 Factory에서 객체 구현체를 만든다. 1.3 추상 팩토리 패턴 - 구체적인 클래스에 의존하지않고, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 ..

카테고리 없음 2022.11.09

[정리] 11 파일시스템

목차 1. 파일과 파일 시스템 2. 디렉터리의 구조 3. 디스크 파일 할당 4. 유닉스 파일의 특징 1. 파일과 파일 시스템 - 가상 메모리에서 메모리 관리자가 메모리를 관리하듯이, 파일의 경우 파일을 보관하고 관리하는 파일 관리자를 두어 저장장치의 전체 관리를 맡긴다. 이를 파일 시스템 이라고 한다. * 파일 디스크럽터 - 사용자가 특정 파일에 접근하려면, 파일 관리자로부터 얻어내야하는 파일에 접근할수 있는 권한. 1.1 파일 분류와 확장자 - 파일은 논리적인 데이터의 집합으로 0과 1의 비트 패턴으로 이루어지며, 운영체제의 입장에선 실행파일 과 데이터 파일로 나뉜다. - 실행파일을 제외한 나머지는 모두 데이터 파일의 확장자 이다. 실행 파일 - 운영체제가 메모리로 가져와 CPU를 이용해 작업하는 파일..

[정리] 09 가상메모리 관리

목차 1. 요구 페이징 2. 페이지 교체 알고리즘 3. 스레싱과 프레임 할당 4. 프레임 관련 이슈 * 가져오기 정책 - 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책 * 배치 정책 - 가져온 프로세스를 어느 위치에 올려놓을지 결정하는 정책 * 재배치 정책 - 메모리가 꽉 찼을때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책 1. 요구 페이징 - 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정할때 가져오기 정책은 일반적으로 사용하는 방법인데, 이를 요구 페이징 이라 한다. - (현대 운영체제는 요구 페이징을 기본으로 채택해서 사용중 ). ( 필요한 모듈만 메모리에 올려 실행하고 나머지 모듈은 필요하다고 판단될 때 메모리로 불러온다. ) 장점 : 메모리 절약 ..

[정리] 08 가상 메모리 기초

목차 1. 가상 메모리의 개요 2. 페이징 기법 3. 세그먼테이션 기법 4. 세그먼테이션-페이징 혼용 기법 5. 캐시 매핑 기법 1. 가상 메모리의 개요 - 가상메모리는 물리메모리(실제 메모리)의 크기와 상관없이 메모리를 이용할 수 있도록 지원하는 기술. ( 가상메모리의 크기 : 전체 크기는 물리메모리와 스왑 영역을 합한 크기 ) 1.1 가상주소와 논리주소의 차이 논리주소 : 물리 메모리의 주소 공간 가상주소 : 물리 메모리의 공간이 아닌 가상의 주소 공간을 가진다. * 동적 주소 변환 : 메모리 관리자가 물리메모리와 스왑영역을 합쳐서, 프로세스가 사용하는 가상 주소를 실제 메모리의 물리주소로 변환하는 작업 1.2 매핑 테이블 - 메모리를 관리 할때 매핑 테이블을 작성하여 관리한다. - 가상 메모리 시스..

[정리] 07 물리 메모리 관리

목차 1. 메모리 관리의 개요 2. 메모리 주소 3. 단일 프로그래밍 환경에서의 메모리 할당 4. 다중 프로그래밍 환경에서의 메모리 할당 1. 메모리 관리의 개요 - 폰노이만 구조의 컴퓨터에서 메모리는 유일한 작업 공간이며, 모든 프로그램은 메모리에 올라와야 실행이 가능. 1.1 메모리 관리 시스템 - 메모리에는 사용자 프로세스뿐 아니라 운영체제 프로세스도 같이 공존한다. 여러 작업을 동시에 처리 할 때 메모리는 메모리 관리 시스템 이 담당해서 관리한다. 1.2 메모리 관리의 이중성 - 프로세스 입장에서 작업의 편리함과 관리자 입장에서 관리의 편리함이 충돌을 일으키는것을 말한다. ( 메모리 공간 관리는 매우 복잡하다. 작업하다 메모리가 부족하거나 빈공간이 남았을경우 어떻게 처리할지에 대한 충돌) 1.3 ..

[정리] 06 교착 상태

목차 1. 교착 상태의 개요 2. 교착 상태 필요조건 3. 교착 상태 해결 방법 1. 교착 상태의 개요 1.1 교착 상태의 정의 - 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기까지 기다리며, 작업을 더이상 진행하지 못하는 상태 ( 여러 프로세스가 작업을 진행하다보니 자연적으로 일어나는 문제이다. ) * 아사현상 - 운영체제가 잘못된 정책을 사용해, 특정 프로세스의 작업이 지연 되는 문제 (최단 작업 우선 스케줄링 알고리즘에서 작업 시간이 긴 프로세스가 작업시간 짧은 프로세스 때문에 작업이 진행 X) 1.2 교착 상태의 발생 - 교착상태는 시스템 자원, 공유변수(또는파일), 응용 프로그램등을 사용할때 발생 할수 있다. 시스템자원 - 한 프로세스가 임계구역으로 보호되는 프린터나,스캐너 등을 할당받아..