프로그래밍(3)
-
1장 : 리액티브 시스템과 리액티브 프로그래밍
# 리엑티브 어던 이벤트나 상황이 발생했을 대, 반응을 해서 그에 따라 적절하게 행동하는 것 클라이언트의 요청을 즉각적으로 응답함으로써 지연 시간을 최소화 방법/수단(MEAN) : 주요 통신 수단으로 무엇을 사용할 것인지 - 메시지 기반 통신을 통해서 느슨한 결합, 격리성, 위치 투명성 보장 형태(FORM) : 어떤 형태를 지니는 시스템인지 - 탄력성 : 시스템의 작업량이 변화하더라도 일정한 응답을 유지하는 것 - 회복성 : 시스템에 장애가 발생하더라도 응답성을 유지하는 것 값(VALUE) : 즉각적으로 응답 가능한 시스템을 구축할 수 있음 # 리엑티브 프로그래밍 특징 Non-Blocking I/O : 스레드가 차단되지 않음 선언형 프로그래밍 : 동작을 구체적으로 명시하지 않고 목표만 선언 data st..
2023.04.30 -
1장 : 개요
스레드 : 경량 프로세스, CPI 자원 스케줄의 기본 단위 - 하나의 스레드는 다른 스레드와 상관 없이 비동기적으로 실행 - 한 프로세스 내 모든 스레드는 같은 변수에 접근하고 같은 힙에 객체 할당 - 스레드는 서로 같은 메모리 주소 공간을 공유하고 동시에 실행되기 때문에 다른 스레드가 사용중일지도 모르는 변수를 읽거나 수정할 수도 있다. - 동기화를 충분히 해두지 않으면 여러 스레드에서 실행되는 연산의 순서가 예측할 수가 없음 # 원격 객체가 대비해야 하는 두 가지 위험 1. 먼저 다른 객체와 공유될 수 있는 상태에 접근 시 적절히 조율해야하나, 원격 객체 자체의 상테에 접근할 때도 마찬가지, 2. RMI 객체도 동시에 여러 번 호출될 수 있게 작성해야 하며 스레드에 안전해야 - 동시 수행 코드를 개발..
2023.04.15 -
9장 : 일반적인 프로그래밍 원칙
아이템 57. 지역변수의 범위를 최소화하라 - 지역변수의 범위를 줄이는 가장 강력한 기법은 역시 가장 처음 쓰일 떄 선언하기- 거의 모든 지역변수는 선언과 동시에 초기화해야(try-catch 제외)- 반복문이 종료된 뒤에도 써야 하는 상황이 아니라면 while문보다 for 쓰기 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라 ## for-each 못쓰는 상황 - 파괴적인 필터링 : 선택된 원소를 제거해야 한다면 사용 불가 - 변형 : 원소의 값 일부 혹은 전체 교체시 사용 불가 - 병렬 반복 : 병렬 순회시 사용 불가 아이템 59. 라이브러리를 익히고 사용하라 # Random 사용 시 문제점 - 나머지 연산값이 2의 제곱수라면 같은 수열이 반복 - 나머지 연산값이 2의 제곱수가 아니..
2023.04.15