목록# Study (21)
리루
- 비어있을 수 있고, 어떤 값을 갖고 있을 수 있는 컨테이너 인스턴스 - null 체크를 하지 않으면 Null Pointer Exception이라는 문제가 발생 할 경우가 잦아질 수 있다. - 매번 Null check 할 수 없고 Human error가 있을 수 있다. - Null을 반환할 수 있는 상황 자체도 문제다. 방법 1. - null이 반환될 수 있는 코드에서 미리 null check를 해서 client 코드에 편의를 제공할 수 있다. 하지만 로직상 자꾸 exception 처리를 넣는건 좋은 습관이 아니다. 방법 2. - null을 그냥 반환하고 client 코드에서 null check를 한다. - 리턴 값으로만 Optional로 사용하길 권장된다. (매개변수 등으로 사용가능하지만 호출하는 쪽..
Stream -https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html - Sequence of elements supporting sequential and parallel aggregate operations. - 연속된 데이터를 처리하는 Operation의 모임 - 데이터를 담는 저장소가 아니라 데이터를 소스로 사용해서 어떠한 처리를 하는 것 - Functional in nature : Stream으로 전달받은 데이터 다체를 변경하는게 아니라 또다른 Stream을 반환한다. - 들어오는 데이터가 무제한일 수 있다. - 들어오는 데이터가 무제한일 때 Short Circuit 메소드를 사용해 제한할 수 있다. - Stream 이 제공..
Functional Interface : Any interface with a SAM(Single Abstract Method) is a functional interface, and its implementation may be treated as lambda expressions. - Java8에서는 Interface에 static method / default method가 사용가능하다. 이러한 추가적인 함수들이 있더라도 SAM이 하나만 존재한다면 Functional Interface라고 할 수 있다. - `void do something();` 앞에는 `abstract`가 생략되어 있다고 볼 수있다. - Abstract Method가 복수개가 되면 컴파일에러가 발생한다.(`@FunctionalIn..
1. 쿠버네티스 사용 이유. - 대규모 서비스를 최대한 자원을 효율적으로 사용하기 위함. - 기존 VM(VMWare, Open Stack)들은 가상화는 되는데 효율이 안나왔다.(무거운 OS를 사용하게 돼서) - dot Cloud 라는 회사가 Linux의 cgroup이라는 자원 격리기술을 Container라는 기술로 만드들고 docker라고 회사명을 변경 - 컨테이너 가상화 기술은 서버스간 자원격리를 해서 OS를 따로 띄우지 않아도 됨. - OS 가동시간이 없기 때문에 자동화시에 엄청 빠르고 자원 효율도 매우 높음. - 근데 도커 자체는 하나의 서비스를 컨테이너로 가상화시켜서 배포를 하는거지 엄청 많은 서비스들을 운영할 때 그걸 일일이 배포하고 운영하는 역할을 하진 않는다. - 이런걸 해주는게 컨테이너 오..
1. Process vs Program 1-1) Program - 실행파일 1-2) Process- Program이 실행돼서 OS에 의해서 수행되는 되체(Instance) - Code segment와 Data segment는 프로그램 File(*.exe)에 들어가있다.- Code segment에는 전역변수, Static변수 등이 포함된다.- Stack은 Function Call 할때마다 수행된다.(Return address, Function Parameter, Local value가 저장된다) 2. Process State - 프로세스마다의 상태를 운영체제가 관리하기 위함.- Scheduling: Ready 상태의 Process들의 실행될 순서를 정해준다(Ready 상태 중에 고른다. Not in wai..
Memory Management Strategies 1. 목적 1-1. Virtual memory management의 목적 - 메모리의 구조에 대해서 잘 알지 못해도 사용자로 하여금 편하게 사용할 수 있도록 하기 위해서.(Abstraction for programming) - 한정된 메모리에 대해서 메모리가 부족해도 많이 남은 것처럼 잘 사용할 수 있게 하기 위함 1-2. Process간 Protection 2. VM(Vitrual Memory) - 사용하는 메모리 주소를 2가지(physical, logical)로 나누어 관리하는 기법 - 프로그램의 전체 주소를 물리적 주소에 두지 않아도 되는 방식. - 많은 프로그램은 코드와 데이터를 한번에 필요로 하지 않는다는 사실에서 기반. 3. Binding o..
http://m.blog.naver.com/ansdbtls4067/220886661657 --------------------------------------------------------------------------------------------------------------- 1. Parity bit란 - 패리티 비트는 시리얼 통신에서 송수신 되는 데이터의 오류를 검출하기 위해서 사용되는 일종의 오류식별자이다. - 정보의 전달 과정에서 오류가 생겼는지를 검사기 위해 추가된 비트이다. - 전송하고자 하는 데이터의 끝에 한 비트를 더하여 전송하는 방법으로 2가지 종류의 패리티 비트(홀수,짝수)가 있다. - 패리티 비트는 오류 검출 부호에서 가장 간단한 형태로 쓰인다. - 위 그림과 같이 실제 전..
[참조] http://hyeonstorage.tistory.com/265 ---------------------------------------------------------------------------------------------------------- 1. Hash - 해시를 보기에 앞서 대표적인 자료구조의 배열과 리스트를 본다. - 배열의 경우에는 인덱스를 이용하여 자료의 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보이는 반면 데이터의 삽입, 삭제 시 많은 데이터가 밀리거나 빈자리를 채우기 위해 이동해야 하기 때문에 많은 시간이 소요된다. - 연결 리스트의 경우에는 삽입, 삭제 시 인근 노드들의 참조값만 수정해줌으로써 빠른 처리가 가능하다. 단 처음과 마지막 노드 이외의 위치에서 데..
출처: http://human2p.tistory.com/entry/암호화-종류-방식 [Jack's Blog In Wonderland] --------------------------------------------------------------------------------------------------------------------------------- 1. 암호화 방식 1-1) 대칭키 방식 대칭키(비밀키 암호화) : 대칭키 암호(Symmetric-key cryptosystem) 방식에서는 암호화에 사용되는 암호화키와 복호화에 사용되는 복호화키가 동일하다는 특징이 있으며, 이 키를 송신자와 수신자 이외에는 노출되지 않도록 비밀히 관리해야 한다. 우리가 일반적으로 사용하는 암호라는 의미로 ‘관용..
출처: http://jusungpark.tistory.com/4 [정리정리정리] 1. 아래의 내용은 블로그 http://kwanseob.blogspot.kr/2012/08/java-volatile.html 에서 가저온 것입니다. -------------------------------------------------------------------------------------------------------------------------------------------------------- 원 글 Java's Volatile Keyword 을 참고하여 번역하였습니다. Java volatile 키워드는 자바 변수를 "메인 메모리에 저장 할" 표식으로 사용합니다. 좀 더 정확하게 말하자면 모든vola..