본문 바로가기
반응형

전체 글500

자료구조 총 정리 1편 - Array,LinkedList,Queue,Stack,Hash,Set 자료 구조란(Data Structure)?ADT를 실제로 구현한 것을 자료구조라고 한다. 간단히 말해 어떻게 구현할 것인가를 다룬 것을 자료 구조라고 한다.ADT(Abstact data type)데이터의 궂와 연산의 속성과 특징만 다루고 실제 구현 방법은 다루지 않는다. 즉 어떻게 구현하는지에 대한 부분은 배제하고 무엇을 하는지 다루는 것을 ADT라고 한다. how에 대해서는 다루지 않는다. 프로그래밍 시점에서 예를 들어보자면 ADT는 interface, DS는 클래스라고 생각하면 된다.Array01 ADT배열은 같은 타입의 데이터를 연속된 메모리 공간에 저장한다. 각 데이터 요소는 인덱스를 통해 접근할 수 있다. 배열은 연속된 메모리 공간에 저장되므로 CPU 캐시를 효율적으로 사용할 수 있어 성능이 향.. 2024. 5. 17.
운영체제 - 스택 메모리, 힙 메모리 자세히 알아보기 +) args란 메모리 구조에 대해 알아보는데 문서로만 읽고서는 잘 이해가 가지 않아 실제 코드로 이해하고 싶어 게시글을 쓰게 되었다. 우리가 흔히 메모리의 구조에 대해 구글링 해보면 아래와 같은 형식이 나온다.01 코드 영역텍스트 영역이라고도 불린다. 기계어로 이루어진 명령어가 저장된다. 코드 영역에는 데이터가 아닌 CPU가 실행할 명령어가 담기기 때문에 쓰기가 금지된 read-only공간이다. 실행되는 프로그램의 코드가 저장되는 메모리 영역02 데이터 영역프로그램이 실행되는 동안 유지되어야 하는 데이터가 저장되는 공간이다. 대표적으로 전역변수와 정적 변수 등이 이영역에 해당된다. 이 변수들은 프로그램이 시작될때 할당되고 프로그램 종료시 소멸된다.03 힙 영역프로그래머가 직접 공간을 할당/해제하는 메모리 영역이다. 프.. 2024. 5. 15.
Unity - 랜더링 파이프라인(Rendering Pipeline) 랜더링 파이프라인개념을 들어가기 앞서 먼저 Render 영어 단어에 대해서 알아보자Render는 표현, 묘사의 뜻을 가지고 있는 단어이다. 랜더링 파이프라인(Rendering Pipeline)간단히 말하면 3D화면을 2차원으로 표현하는 과정이다.3D 입체들을 전부 그물로 표현하고, 이를 적절한 위치에 배치하여 2차원으로 납작하게 하고 그 그물의 구멍들에 어떤 색을 채워줄지를 결정하는 것이다.Input Assembly이 그물이 Mesh라고 불리는 기능이다. 이는 삼각형의 세개의 꼭짓점으로 이루어져있다.왜 삼각형으로 생겼을까?삼각형의 조합으로 다양한 형태를 만들 수 있기 때문이다. 예를 들어 삼각형 두개를 붙이면 사각형이 되고, 삼각형 3개를 붙이면 오각형이 된다. 이러한 조합으로 물체의 겉면을 수많은 삼각.. 2024. 5. 8.
C# - 상태 패턴(State Pattern) 상태 패턴이란?객체 자신의 내부 상태에 따라 행위를 변경하도록 하는 패턴이다. 즉 객체의 특정 상태를 클래스로 선언하고 해당 상태에서 할 수 있는 행위들을 메소드로 정의한다. 그리고 이러한 상태클래스를 인터페이스로 캡슐화하여 클라이언트에서 인터페이스로 호출하는 방식으로 사용한다. 상태 패턴 구조 State인터페이스 : 상태를 추상화한 고수준 모듈ConcreteState : 구체적인 각각의 상태를 클래스로 표현Context : State를 이용하는 시스템, 시스템 상태를 나타내는 State 객체를 합성하여 가지고 있다. 클라이언트로부터 요청받으면 State객체에 행위 실행을 위임한다.코드 예시상태 패턴을 사용하는 경우using System;// 상태 인터페이스public interface IState{ .. 2024. 5. 7.
C# - 전략 패턴(Strategy Pattern) 디자인 패턴이란?(소프트웨어)디자인 + (공통적으로 마주치는 문제를 해결하는 방법의)패턴이다. 전략이란?특정한 목표를 수행하기 위한 행동계획이다. 예를 들어 로봇을 만든다고 해보자로봇에는 다양한 전략 기능을 넣을 수 있다. 1) 이동 전략(걷기,뛰기, 날기) 2) 온도 전략(차갑게,뜨겁게,미지근하게) 전략 패턴이란?디자인 패턴 중 하나로, 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고 사용하며, 동적으로 전략 수정이 가능한 패턴이다.  전략 패턴 구조전략 : 모든 전략 구현체제에 대한 공용 인터페이스구체적인 전략(전략 인터페이스) : 알고리즘, 행위, 동작을 객체로 정의한 구현컨텍스트 : 알고리즘을 실행해야 할 때마다 해당 알고리즘과 연결된 전략 객체의 메소드를 호출클라이언트 : 특정 전략 객체.. 2024. 5. 7.
C# - SOLID 원칙 1. 단일 책임 원칙(Single Response Principle)이름 그대로 하나의 클래스는 하나의 책임만 갖는 원칙이다.예를 들어 플레이어와 관련된 스크립트가 있다고 해보자 그러면 플레이어의 입력, 이동 관련, 각종 사운드 관련 기능 등이 있을때 아래와 같이 별도의 스크립트로 분리해야한다. 왜 이렇게 해야할까?만약 플레이어의 움직임만 수정하고 싶을 때 단일 책임 원칙을 지키고 있다면 Movement스크립트만 수정하면 되지만 원칙을 지키지 않는 경우 모든 클래스를 수정해야한다. 01 가독성스크립트에 단일 기능만 적혀있으니 많은 기능들이 포함된 경우보다 스크립트의 길이가 짧아질 것이다. 그러므로 가독성이 좋다.02 확장성하나의 기능으로만 이루어져있기 때문에 이 클래스를 상속받아 확장하기에 용이하다.03.. 2024. 5. 6.
반응형