본문 바로가기

Unity/C#9

[C#] SOLID 원칙 :리스코프 치환 원칙(LSP) 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 지난 게시물 [C#] SOLID 원칙 : 개방 폐쇄 원칙 - OCP (Open Closed Principle)공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 전편- 단일 책임 원칙 SRP [C#] SOLID 원칙 : 단일 책임 원칙(SRP)공부용으로 작성되는 페이지입니다.hungrykang.tistory.com 리스코프 치환 원칙이란?LSP 원칙은 서브 타입은 언제나 기반(부모) 타입으로 교체할 수 있어야 한다는 원칙이다. 이는 곧 자식 클래스는 최소한 부모 클래스가 가능한 행위를 자식 클래스도 수행할 수 있어야 함을 의미한다. 결국 리스코프 치환 원칙은 다형성 원리와.. 2025. 8. 27.
[C#] 스레드(Thread)의 기본 개념 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Thread의 개념과 관련 용어 Thread의 개념을 알기 위해서는 운영체제와 프로세스의 의미에 대해서 먼저 알아야한다. 운영체제윈도우, 리눅스 등 사용자의 하드웨어와 시스템 리소스를 제어하고 프로그램에 대한 일반적인 서비스를 지원하는 시스템 소프트웨어다. 프로세스 프로세스는 운영체제 안에서 실행되는 프로그램이다. 프로세스들은 서로 독립된 객체이기 때문에 각각 메모리를 할당받고 서로에게 접근할 수 없다. 서로의 상태 정보를 받기 위해서는 별도의 커뮤니케이션 필요하다. 이러한 프로세스는 반드시 하나 이상의 스레드로 구성되어있다. 스레드프로세스 내부에서 실행되는 작은 작업 단위이다. 위에서 말했듯이 프로세스는 반드.. 2025. 8. 19.
[C#] Boids 군집 알고리즘 공부 : 구현 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. [C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는hungrykang.tistory.com -Cohension(응집) -Alignoment(정렬) Separation(분리) 규칙 기반으로 Boids를 구현해본다.준비 나의 경우에는 1. 객체 1000개 2. VR(Quest 3)에서 돌아갈 것을 고려 3. 특정 오브젝트 위치로 도달해야함 (= Target Object Position 존재) 등을 조건으로 진행.. 2025. 8. 18.
[C#] 인터페이스 vs 추상 클래스 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 두 가지의 차이점은 알고 있지만, 자꾸 언제 어떻게 써야하는지 헷갈려서 공부할겸 작성하게되었다. 추상화란?어떤 클래스의 공통된 기능을 추출하는 것을 의미한다. 예를 들어 학교를 생각해보자. 국어 선생님은 국어를, 수학 선생님은 수학을, 과학 선생님은 과학을 가르친다. 모든 선생님이 '수업'을 하지만 수업의 타입은 전부 다르다. 이때 공통된 기능인 '수업'을 추상화 시키고 이를 각 선생님이 상속받게 한 다음 과목에 맞게 재정의하여 구현하는 과정을 거치게 된다. 추상 클래스 (abstract Class) 추상 클래스는 abstract 함수를 선언할 수 있다는 점을 제외하면 일반 클래스와 크게 다를 바가 없다. 여기.. 2025. 8. 18.
[C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는 기본적으로 Separation(분리)-Alignoment(정렬)-Cohension(응집) 단계로 나눠진다. 1. Separation (무리를 피하는 방향으로 이동) 자신 주변의 객체들이 붐비는 것을 피하기 위해 주변 객체들에게 벗어나는 규칙 2. Alignoment (무리의 진행 방향으로 이동) 주변 객체들의 평균 방향으로 이동하는 규칙. 3. Cohesion (무리의 중심 방향으로 이동)모든 객체 사이의 평균점을 찾고 평균점을 향해 이동하는 규칙 이 규칙들이 동시에 고려되면서, 동료들과 비슷한 방향으로.. 2025. 8. 6.
[C#] SOLID 원칙 : 개방 폐쇄 원칙 - OCP (Open Closed Principle) 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.  전편-  단일 책임 원칙 SRP [C#] SOLID 원칙 : 단일 책임 원칙(SRP)공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.  객체 지향을 접하면서 몇 번이고 들어본 SOLID 원칙, 머리로는 알고 있는데 잘 익혔는지는 모르겠hungrykang.tistory.com    1. 개방 폐쇄 원칙(OCP)의 개념 개방 폐쇄 원칙이란? 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있어야한다는 원칙이다.확장에 대해서는 open 되어있고, 수정에 대해서는 closed 되어있다는 의미이다.즉, 객체를 직접적으로 수정하는 것을 제한해야한다는 원칙이다.  OCP = 추상화?  .. 2025. 3. 20.
[C#] Delegate : Action, Func 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.  지난 시간에 이어서 Delegate 관련을 공부해본다  [C#] Delegate(대리자) : Event, Lambda공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.   1. Delegate 란?'대리자' 라는 의미를 가지고 있으며 함수의 주소값을 가지고 대신 호출한다. Class, Ahungrykang.tistory.com 함수의 대리 호출을 위해서 선언하는 것은 번거로울 수 있으므로 EventHandler처럼 미리 선언된 Delegate를 사용해본다. Delegate의 일종이므로 앞서 배웠던 체인이나 람다식도 사용할 수 있다. 이 두 가지를 사용하는 이유는 결국 코드의 간.. 2025. 3. 16.
[C#] SOLID 원칙 : 단일 책임 원칙(SRP) 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.  객체 지향을 접하면서 몇 번이고 들어본 SOLID 원칙, 머리로는 알고 있는데 잘 익혔는지는 모르겠다.  따라서 하나하나 포스트로 정리하며 공부해볼 예정이다.  0. SOLID 원칙?SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙( SRP, OCP, LSP, ISP, DIP )을 말한다.결국 '좋은 객체지향 설계'를 위해서 지켜야할 원칙들이므로, 디자인 패턴을 공부하기 전 하나하나 복습하려한다.  SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Priciple): 개방 폐쇄 원칙LSP(Listov Substitution P.. 2025. 3. 6.
[C#] Delegate(대리자) : Event, Lambda 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다.   1. Delegate 란?'대리자' 라는 의미를 가지고 있으며 함수의 주소값을 가지고 대신 호출한다. Class, Array, Interface와 같은 참조형 타입이다.메서드를 매개변수로 전달하거나, 런타임에 호출될 메서드를 동적으로 연결할 때 유용하며 매개변수로 가져오는 덕분에 결합도를 낮출 수 있어 C언어의 포인터와 유사하다.  델리게이트는 다른 함수를 특정 함수값으로 반환하고싶거나 매개변수로 가져오고 싶을때, 혹은 Call back이 필요할 때 사용한다. 그리고 시그니처만 동일하다면 여러개의 함수를 참조할 수 있다. 2. Delegate 사용하기: 정의와 선언  Delegate를 선언할 때는 호출할 함수의 .. 2025. 3. 5.