IPC(Inter Process Communication)
IPC(Inter Process Communication) 1. 메모리를 활용한 방법 1-1. shared memory 할당된 공유 메모리의 크기는 고정됩니다. 다른 두 프로세스의 VMS 가 RAM 의 같은 물리적 위치를 공유합니다. 생성된 공유 메모리는 커널에 의해 관리됩니다. 공유 메모리 영역을 사용하는 모든 프로세스가 종료 되...
IPC(Inter Process Communication) 1. 메모리를 활용한 방법 1-1. shared memory 할당된 공유 메모리의 크기는 고정됩니다. 다른 두 프로세스의 VMS 가 RAM 의 같은 물리적 위치를 공유합니다. 생성된 공유 메모리는 커널에 의해 관리됩니다. 공유 메모리 영역을 사용하는 모든 프로세스가 종료 되...
임계구역 해결 방법 출처1 : 임계구역 해결방법 결론은 하나 ‘Queue’! - 널널한 개발자 TV 출처2 : 동기화, 모니터 : Synchronization, Monitor [운영체제] 1. 임계구역은 어떤 경우에 발생하는가? ▲ 임계구역이 발생하는 경우 1-1 단일 연결 리스트로 주소록을 구현하고 전역 변수에 저장 했습니다. ...
템플릿 메소드(콜백) 패턴 (2) 2. 템플릿 메소드 패턴 적용 과정 2-1. 문제점 JDBC 를 활용한 DAO 를 작성하면 같은 함수가 매번 같은 순서로 호출되고 예외처리 코드가 중복됩니다. class UserDao { ... public void deleteAll() throws SQLException { Connection c...
템플릿 메소드(콜백) 패턴 (1) 1. 템플릿 메소드 패턴 정의 템플릿 메소드 패턴은 메소드에서 알고리즘의 골격을 정의합니다. 알고리즘의 일부는 서브클래스에서 구현해 특정 단계를 재정의 할 수 있습니다. 이런 특징으로 프레임워크 개발에 자주 쓰이는 패턴입니다. 1-1. 클래스 다이어그램 1-2. 코드 abstract class...
오프라인 동시성 패턴 (1) 1. 낙관적 오프라인 잠금 충돌이 감지되면 트랜잭션을 롤백해 동시 비즈니스 트랜잭션 간의 충돌을 방지한다. 1-1 비즈니스 트랜잭션은 여러 시스템 트랜잭션을 거쳐 실행되는 경우가 많습니다. 비즈니스 트랜잭션이 시스템 트랜잭션 범위를 벗어나면 데이터베이스의 도움만으로 레코드 데이터를 일관된 상태로 유지할 수 ...
스프링 요청 처리 과정 2 1. 핸들러 매핑 Dispatcher Servlet 은 요청을 받으면 어떤 핸들러(컨트롤러) 를 호출할 지 핸들러 매핑 전략을 통해 결정한다. 핸들러 매핑 전략은 DI 를 통해 확장할 수 있다. Dispatcher Servlet 은 핸들러 어댑터를 사용해 어떤 형식의 핸들러든 호출할 수 있다. 따라...
스프링 마인드맵
SSL 이란? 1. 인증서를 사용하는 이유 클라이언트의 요청은 네트워크를 통해 패킷으로 전달된다. 전달되는 과정에서 누군가 패킷을 훔쳐 아이디, 패스워드 같은 민감한 정보를 취하거나 수정할 수 있다. 클라이언트의 요청이 암호화 된다면 중간 공격자가 패킷을 훔쳐도 정보가 누출되지 않는다. 이를 위해 인증서를 활용한 SSL 암호화 방식을 주로 사...
스프링의 변천사 그리고 Java 9 과 Spring 5 (3) 3. 새로운 변화 새로운 위기 : 애노테이션과 메타프로그래밍 관례의 범람. 애노테이션은 컴파일러에 검증되지 않고 코드 행위를 규정하지 않는다. 규칙이나 표준이 없어 이해하기 어렵고 오해하기 쉽다. 그리고 테스트가 안된다. @Controller @RequestMaping("/path...
스프링의 변천사 그리고 Java 9 과 Spring 5 (2) 2. 스프링의 위기와 극복 2-1. 첫 번째 위기 과도한 기술로 복잡해진 코드(J2EE, EJB) J2EE, EJB 규약을 통해 애플리케이션을 개발했다. J2EE, EJB 규약은 너무 복잡하고 많은 클래스를 상속하고 의존하도록 강제되어 있어 좋은 객체지향 애플리케이션을 만들기 어...