제어권이란
EWOULDBLOCK ?
넌블록킹 모드에서는 자원이 사용 불가능한 경우에는 블록킹 되지 않고 -1 로 발환되어 실패한다.
- EAGAIN 이나 EWOULDBLOCK 에러가 발생. ( 리눅스에서는 두 값을 같은 값으로 명시 )
- 기존 블록킹 모드는 시스템 에러나 연결 이상을 제외하고는 블록킹되어 대기상태가 된다.
java Selector is asynchronous or non-blocking architecture
동기vs비동기, 블로킹vs논블로킹? JS 더 깊게 이해하기(1)
관심사란 컴퓨터 프로그램 코드에 영향을 미치는 정보의 집합이다.
public class UserDao {
public void add(User user) throws SQLException {
// 1
Connection c = DriverManager.getConnection("mySQL");
c = DriverManager.getConnection("mySQL");
// 2
PreparedStatement ps = c.prepareStatement("insert");
ps.setString(1, user.getId());
ps.execute();
// 3
ps.close();
c.close();
}
}
UserDao 에는 크게 보면 3개의 관심사가 있다.
첫 번째는 DB 커넥션, 두 번째는 쿼리와 결과 받아오기 세 번째는 자원 반납이다.
위 예시처럼 하나의 객체에 여러개의 관심사를 두지 않고
관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게하고,
관심이 다른 것은 가능한 한 따로 떨어져서 서로 영향을 주지 않도록 분리하는 것을 관심사의 분리라 한다.
하나의 관심사가 중복되어 있거나, 여기저기 흩어져 다른 관심의 대상과 얽혀 있으면,
변경이 일어나면 엄청난 고통의 원인이다.