ETC/Software Development Methodology 4

[Software] Porting, Converting에 대

소프트웨어 공학에서, "포팅(Porting)"과 "컨버팅(Converting)"의 개념이 나오는데, 두 가지 개념이 비슷한 듯 하나 서로 다른 개념이다. 각각의 의미와 차이점에 대해 살펴보자. 포팅 (Porting) 포팅은 한 플랫폼에서 다른 플랫폼으로 소프트웨어를 이식하는 작업을 의미한다. 일반적으로 플랫폼은 운영 체제(OS)나 하드웨어 아키텍처를 가리킨다. 포팅은 기존에 작성된 소프트웨어를 새로운 환경에서도 동작하도록 변경하는 프로세스를 포함한다. 소스 코드를 수정하거나 기존 코드를 새로운 환경에 맞게 컴파일하거나 재작성하는 것이 일반적인 포팅 방법이다. 이렇게 함으로써, 소프트웨어는 다른 운영 체제나 하드웨어에서도 동작할 수 있게 된다. 포팅은 크로스 플랫폼 호환성을 갖춘 소프트웨어를 제공하는 데 ..

블로킹(Blocking), 논블로킹(Non-blocking)에 대해

블로킹과 논블로킹은 프로그래밍에서 자주 사용되는 두 가지 동작 모델 또는 방식을 나타낸다. 이 두 개념은 주로 입출력(IO) 작업, 네트워킹, 멀티스레딩 등과 관련이 있으며, 어떻게 코드가 실행되고 제어가 처리되는지에 영향을 미친다. 아래에서 각 개념을 상세히 살펴보자. 1. 블로킹(Blocking) 블로킹은 어떤 작업이 완료될 때까지 프로그램이 다음 작업으로 진행하지 않고 대기하는 동작 방식을 의미한다. 주로 입출력 작업에서 발생하며, 예를 들어 파일을 읽거나 네트워크에서 데이터를 받아올 때 블로킹 작업이 발생할 수 있다. 블로킹 호출을 하면 해당 호출이 완료 될 때까지 제어가 호출한 코드에 반환되지 않는다. 이는 다른 작업들도 대기 상태에 놓이게 하고, 전반적으로 프로그램의 응답성을 저하시킬 수 있다..

클린 아키텍쳐(Clean Architecture) 에 대해

클린 아키텍쳐에대해 공부하기 위해 포스팅을 찾던 중, 잘 정리된 외국 포스팅이 있어서 이를 번역하여 포스팅하고자 한다. The Clean Architecture Diagram 지난 몇 년 동안 우리는 시스템 아키텍처에 관한 다양한 아이디어를 보았다. 여기에는 다음이 포함된다. Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn, Steve Freeman, Nat Pryce가 멋진 책 Growing Object Oriented Software에서 채택 Jeffrey Palermo의 Onion Architecture Screaming Architecture James Coplien 및 Trygve Reenskaug의 DCI. Iva..

[디자인 패턴] MVC, MVP, MVVM이란?

1. 개요 디자인 패턴은 설계자로 하여금 재사용이 가능한 설계는 선택하고, 재사용을 방해하는 설계는 배제하도록 도와준다. 또한 패턴을 쓰면 이미 만든 시스템의 유지보수나 문서화도 개선할 수 있고, 클래스의 명세도 정확하게 할 수 있으며, 객체 간의 상호작용 또는 설계 의도까지 명확하게 정의할 수 있다. 간단히 말해, 디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와준다. 2. MVC MVC패턴은 Model + View + Controller를 합친 용어이다. Model과 View는 MVC패턴과 동일하고, Controller 대신 Presenter가 존재한다. MVP 패턴의 구조, 동작, 특징, 장점, 단점을 살펴보자. 2.1 구조 Model: 어플리케이션에서 사용되는 데이터와 그 데이터를..

반응형