CS 2

동기와 비동기, 블록킹과 논블록킹

💡 블록킹(Blocking) VS 논블록킹(Non- Blocking) 블록/논블록 개념은 기술적으로 명확히 구분이 되는 개념이다. 블록킹을 이해하기 위해선 아래의 용어를 정확히 짚고 넘어가야 한다. ✔ 제어권 함수를 실행할 권리 제어권을 어떻게 처리하느냐에 따라 블록킹과 논블록킹의 차이가 나타난다. 두 개의 함수 A, B 가 있다고 가정해보자. A함수가 먼저 실행된다고 할 때, 블록킹과 논블록킹의 차이는 아래와 같다. 1) 블록킹 메인 함수가 함수 A에게 제어권을 주며 A를 호출한다. A 함수는 실행되고 A 함수가 끝날 때 까지 B함수에게 제어권을 넘겨주지 않는다. A 함수가 종료되면 B 함수에게 제어권을 주고 호출한다. 즉, 호출된 함수의 모든 코드가 끝날 때 까지 제어권을 계속 가지고 다른 함수에게 ..

CS 2024.02.13

객체지향 프로그래밍(OOP)이란? 장단점과 특징, SOLID

자바를 배우기 시작했을 때부터 자바로 프로그래밍을 하고 있는 지금까지 가장 많이 들어본 질문 3가지를 뽑아보라면, 단언컨데 OOP에 대해서 설명해보라는 질문이 가장 대표적이라고 생각한다. 그리고 OOP에 대한 정의는 책마다 조금씩 다르고 사람마다 다르게 설명을 하고있다. 그러니 단 하나의 정답은 없지만 자기만의 정리된 생각을 가지고 있을 필요는 있다는 것..!! 그래서 마음을 먹고 이 포스팅을 작성하기로 했다. 시작! 객체지향 프로그래밍(OOP)이란? 컴퓨터 프로그래밍 패러다임 중 하나로, 상태와 행위를 가진 객체를 만들어 그 객체간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 단순히 컴퓨터 프로그램을 명령어의 모음으로 바라보는 시각에서 벗어나 여러 객체의 모임으로 파악하는 것이다. 객체지향 ..

CS 2022.11.13