STUDY(39)
-
[운영체제] OS, 운영체제란 무엇인가
이 글은 '쉽게 배우는 운영체제' 서적을 기반하여 각종 블로그에서 추가적은 정보를 얻어 작성되었습니다.[운영체제의 정의]소프트웨어를 잘 알지못하는 사람도 '운영체제'라는 말은 한 번쯤 들어봤을 것이다. 간략하게 'OS(Operating System'라고도 일컫는 운영체제는 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어로 대표적으로 윈도우나 Mac OS, 유닉스, 리눅스 등이 있다. 운영체제의 필요성초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요없었다. 그러나 메모리 CPU등의 성능이 향상되고, 여러 작업을 동시에 할수 있는 컴퓨터 환경이 조성되면서 사용 규칙이 필요해졌다. 복잡한 작업 환경에 규칙이 없으면 기계를 망가뜨릴 수 도 있지 않겠는가? 이를 위해 등..
2024.12.11 -
[Design Pattern] 커맨드 패턴(Command pattern)
이 글은 'level up your code with game programming patterns' 서적을 기반으로 각종 블로그에서 추가적인 정보를 얻어 작성하였습니다.[커맨드 패턴]만약 실행 취소/다시 실행 기능이 사용되거나 입력 내역이 목록으로 유지되는 게임을 플레이해 본 적이 있다면 아마 커맨드패턴을 본적이 있을 것이다. 사용자가 실제로 여러 턴을 실행하기 전에 계획할 수 있는 전략 게임을 생각해보면 그것이 바로 커멘드 패턴이다.커맨드는 어떠한 요청(캐릭터를 앞으로 이동시킨다)를 요청에 대한 모든 정보를 포함한 독립실행형 객체로 변환하는 행동 디자인 패턴이다. 즉 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 메서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또..
2024.12.09 -
[Design Pattern] MVC 패턴과 MVP 패턴
이 글은 'level up your code with game programming patterns' 서적을 기반으로 각종 블로그에서 추가적인 정보를 얻어 작성하였습니다.[MVC 패턴]MVC(모델 뷰 컨트롤러) (이하 MVC) 패턴은 사용자 인터페이스를 개발할 때 흔히 사용되는 일련의 디자인 패턴이다. MVC의 기본 아이디어는 소프트웨어의 논리적 부분과 데이터 및 프레젠테이션에서 분리하는 것이다. 그러면 불필요한 종속 관계를 줄이는 데 도움이 되며, 잠재적으로 스파게티 코드도 줄일 수 있다.이름에서 알 수 있듯 MVC 패턴은 다음 3가지의 레이어로 분할된다.Model : 데이터를 저장한다. 모델은 전적으로 값을 저장하는 데이터 컨테이너이며 게임플레이 로직이나 계산을 수행하지 않는다.View : 인터페이스..
2024.12.09 -
[Design Pattern] 팩토리 패턴(Factory Pattern)
이 글은 'level up your code with game programming patterns' 서적을 기반으로 각종 블로그에서 추가적인 정보를 얻어 작성하였습니다.객체 지향 디자인 패턴의 기본 원칙은 확장에 있어서는 열려 있어야 하며, 수정에 있어서는 닫혀 있어야 한다는 것이다.(OCP, Open Closed Principle)여기서 수정에 있어서 닫혀 있어야 한다는 말에 주목 해보자. 코드를 수정하지 않아도 모듈의 기능을 확장하거나 변경 할 수 있어야 한다. 때문에 수정이 일어날 가능성이 큰 부분과 그렇지 않은 부분을 분리하는 것이 좋다. 객체는 속성과 함수가 변경 또는 추가될 수 있다. 때문에 객체의 생성을 담당하는 코드는 변경의 가능성이 높다. 객체의 생성을 담당하는 클래스를 한 곳에서 관리..
2024.12.09 -
SOLID 원칙
*SOLIDSRP(단일책임의 원칙 : Single Responsibility Principle) : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙이다.-> serialNumber는 변화요소라 할수 없고 고유정보에 해당-> 나머지 요소는 모두 기타의 특성과 관련된 정보이므로 변경이 발생할 수 있는 부분으로, 이 부분은 변화요소라 할 수 있다. 따라서 특정 정보에 변화가 발생하면 항상 해당 클래스를 수정해야하는 부담이 발생할 수 있으므로 이부분이 SRP적용의 대상이 된다.-> 이렇게 분리하면 특성 정보에 변경이 일어나면 GuitarSpec 클래스만 변경하면 된다.OCP(개방폐쇄의 원칙 : Open Close Principle..
2024.12.08 -
[C#] async, await
이글은 서적 '이것이 C#이다'를 기반하여 각종 블로그에서 추가적인 정보를 토대로 작성된 글입니다. 같이 보면 좋은글비동기 개념 [async와 await의 개념] C#의 async와 await 키워드는 비동기 프로그래밍을 쉽게 구현할 수 있도록 도와주는 핵심적인 도구이다. 이를 통해 코드가 실행되는 동안 작업을블록하지 않으면서도 동기식 코드처럼 간결하고 이해하기 쉬운 형태로 작성할 수 있다.async메서드가 비동기적으로 실행된다는 것을 나타낸다.async를 붙인 메서드는 반드시 반환값으로 Task, Task, 또는 void를 사용해야 한다.void를 사용하게 되면 비동기 메서드를 호출하는 쪽에서 비동기 제어할 수 없다. 종종 이벤트 핸들러로 사용할 때 void를 사용하곤 하는데 UI버튼을 클릭하면 일어..
2024.12.04