컴퓨터공학 3

[CS] Blocking/Non-blocking & Sync/Async 에 대해서

개요 안녕하세요. 이번 시간에는 Blocking/Non-blocking과 Sync/Async에 대해 알아보겠습니다. 이전에 공부하면서 이해하고 어느 정도 실무에 잘 반영하고 있다고 생각하고 있었는데 다시 공부하는 시점에 잘못 이해하고 있었던 부분과 시간에 지남에 따라 까먹은 부분들이 많아서 해당 주제를 다시 한번 학습하는 시간을 만들었습니다. Blocking/Non-blocking & Sync/Async 개념과 예시 상황으로 커피 매장에서 손님이 직원에게 커피 주문하는 상황을 설명하겠습니다. 개념 및 사용법 Blocking Blocking이라는 단어를 확인해 보면 다음과 같이 설명하고 있습니다. 상황에 따라 다양한 뜻이 존재합니다. 하지만 우리가 사용하는 상황에서 blocking이라는 뜻은 “블로킹(막다..

컴퓨터공학 2023.11.27

[OOP] 제어의 역전 IoC(Inversion of Control)와 의존관계 주입 DI(Dependency Injection)

- 개요 안녕하세요. 이번 시간에는 제어의 역전 IoC와 의존관계 주입 DI에 대해 알아보겠습니다. 객체 지향 프로그래밍 공부를 하면 반드시 나오는 하나의 개념입니다. 이해하시는데 도움이 되면 좋겠습니다. 혹여나 틀린 부분이 있다면 댓글을 남겨주세요. - 개념 제어의 역전 IoC(Inversion of Control) 제어의 역전은 제어의 흐름 구조가 뒤바뀌는 것이라고 생각하면 됩니다. 기존에 프로그램에서 실행에 필요한 객체 생성, 연결 그리고 실행하는 데 있어서 프로그래머가 제어하는 방식입니다. 하지만 프로그램을 하다 보면 제어해야 하는 객체가 있는 반면에 없는 객체도 있습니다. 제어하지 않는 객체를 프로그램상 위임하여 제어의 흐름을 바꾸는 방식을 제어의 역전 "IoC(Inversion of Contr..

[OOP] SOLID 5가지 원칙

-개요 안녕하세요. 이번 시간에는 객체지향에 5가지 원칙 SOLID원칙에 대해 알아보겠습니다. 가장 기본이 되며 SOLID원칙을 알아 두시면 나중에 도움이 됩니다.(참고로 저는... 알기 전후 소스 코드가 달라졌어요...) 또한 객체지향 언어로 개발 시 동료 개발자분들과 협업을 할 때 그리고 많은 면접 질문에도 종종 나와요 하하... - 개념 SOLID라는 건 5가지 유형에 대한 앞 글자를 따서 만든 단어입니다. 그렇다면 원칙이라는 단어부터 짚고 넣어가겠습니다. 원칙이라는 단어를 아시는 분도 있겠지만 모르시는 분들도 있다고 생각이 들어서 작성하겠습니다. 원칙 원칙이란 "지켜야 하는 기본적인 규칙이나 법칙"이라고 나와있습니다. 객체지향 프로그래밍을 할 때 우리가 일관되게 프로젝트 구조를 만들고, 이론에 맞..