게임 개발 일지92 [C#] SOLID 원칙과 상속의 특징 기술면접 대비하기 #10 Q. SOLID 원칙이란 무엇인가? 객체지향 설계에서 지켜야 할 5개의 소프트웨어 개발 원칙. 1) SRP : 단일 책임 원칙 한 클래스는 하나의 책임(기능)만 가져야 한다. = 기능을 하나만 가지고 있을 때, 기능 수정이 필요할 때 코드를 변경하기 쉽기 때문. (유지보수성 상향) 2) OCP : 개방 폐쇄 원칙 확장에는 열림(Open) / 수정에는 닫힘(Closed) 즉, 기능 추가를 위해 클래스 확장을 하되 수정을 최소화하는 방식이다. 상속을 통한 클래스 구축, 추상화 사용의 이점 극대화. 3) LSP : 리스코프 치환 원칙 부모 클래스로 객체를 선언해 자식 클래스의 인스턴스를 받으면, 부모의 메서드를 사용해도 정상적으로 작동해야 한다. 오버라이딩 시 주의해야할 원칙이며, 다.. 2024. 2. 8. [C#] 객체지향(OOP)과 객체지향의 특징 4가지 기술면접 대비하기 #9 객체지향이란? 컴퓨터 프로그램을 어떤 데이터를 입력받아 순서대로 처리하고 결과를 도출하는 명령어들의 목록으로 보는 시각에서 벗어나 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미한다. 객체를 먼저 만들고 이렇게 만들어진 여러 객체들을 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론이다. 객체지향의 특징은? 객체 지향적 설계를 통해서 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다. 소프트웨어를 설계할 때 객체 지향적 원리를 잘 적용해 둔 프로그램은 각각의 부품들이 각자의 독립적인 역할을 가지기 때문에 코드의 변경을 최소화하고 유지보수를 하는 데 유리하다. 나아가, 코드의 재사용을 통해 반복적인.. 2024. 2. 7. [C#] 정렬 알고리즘, 선택 정렬 / 버블 정렬 기술면접 대비하기 #8 정렬 알고리즘이란 무엇인가? 정렬 알고리즘이란 원소를 번호순이나 사전순과 같이 일정 순서(오름차순 또는 내림차순 등)대로 열거하는 알고리즘이다. 자료구조와 원소의 유형에 따라 시간복잡도를 고려해 알고리즘을 선택하는 것이 중요하다. 정렬 알고리즘을 사용하는 이유는 탐색과 관련이 있다. 정렬된 데이터를 갖고 있다면 특정 원소를 추출했을 때 그 원소를 기준으로 어느 부분이 크고 작은지 예상할 수 있다. 이는 탐색에서 자주 쓰는 이진 탐색을 위한 중간다리 역할을 한다. 대표적인 정렬 알고리즘으로는 버블, 선택, 삽입, 힙, 병합, 퀵 정렬 등이 있다. 버블 정렬 첫 번째 원소부터 인접한 원소끼리 계속 자리를 교환하면서 맨 끝부터 정렬하는 방식. 장점 : 구현이 쉽다. 코드가 직관적이다. .. 2024. 2. 6. [Unity] 런타임 로드 방식의 차이 (resource폴더, 어드레서블, 에셋번들) Resource폴더 로드 vs 에셋 번들 vs 어드레서블 발표 내용 중 기술적 의사결정에서 어드레서블 대신 리로스 폴더 로드 방식을 선택한 이유에 대한 명확한 근거가 부족했다. 우리 조는 모바일이 아닌, 웹 PC 에서 유통할 계획이었기 때문에 데이터 양과 상관없이 쉬운 방식을 사용하면 좋을 것이라 생각했다. 하지만 차후 게임 확장성, 운영 안정성 면에서 데이터 로드 방식에 대해 다시 생각할 필요가 있었다. 어드레서블/에셋 번들이라는 선택지를 제대로 파악하지 않고 단순한 리소스 로드 방식을 선택한 것은 의사결정의 허점이 될 수 있다. 튜터님께서 질문하신 리소스 폴더 vs 에셋 번들 vs 어드레서블의 차이에 대한 공부의 필요성을 느꼈다. Q) Resource폴더 로드 vs 에셋 번들 vs 어드레서블의 명확한.. 2024. 2. 5. [C#] 스택과 힙, 값과 참조, 동적/정적 할당 기술면접 대비하기 #7 스택, 힙 메모리란 무엇이며 어떤 차이가 있는가? 스택과 힙은 동적 메모리의 유형이다. 동적 메모리는 프로그램 실행 중 해제가 가능하다. (1) 스택 지역변수와 매개변수가 저장되는 곳이다. 스택 메모리는 값(value) 형식이다. C#에서는 스택 영역의 용량이 작다. (약 1MB 정도) 0으로 초기화 되는 자료형 (ex. public int n 까지만 선언해도 알아서 0으로 초기화) 스택 메모리의 경우 가지고 있는 데이터 (주소값 등)는 사용하면 사라진다. 지역변수 (Loacal Variable) : 블록 안에서 선언된 변수들. 매개변수 (Parameter) : 함수에서 사용하기 위해 선언하는 변수들. (2) 힙 힙 메모리는 참조(reference) 형식이다. C#에서는 힙 영역의.. 2024. 2. 2. [C#] 델리게이트와 이벤트, action과 func 기술면접 대비하기 #6 델리게이트(Delegate)란? 델리게이트는 메서드를 다른 메서드/클래스로 전달하기 위해 만들어졌다. 델리게이트는 메서드의 입력 파라미터로 전달될 수 있으며, 메서드의 리턴값으로 전달 받을수도 있다. 델리게이트 정의에서 중요한 것은 입력 파라미터와 리턴 타입이다. 어떤 메서드가 델리게이트 메서드의 입력 파라미터 타입/개수, 리턴 타입이 동일하다면 그 메서드는 해당 델리게이트에서 사용할 수 있다. 델리게이트는 컴파일러에서 클래스로 변환되므로 클래스와 비슷하게 new를 사용해 객체를 생성할 수 있다. 호출할 때에는 Invoke 메서드를 주로 사용하지만, invoke 없이 바로 함수처럼 사용할 수도 있다. 위와 같은 특성 덕분에 특정 시점에서 호출해야할 여러 개의 메서드들을 미리 구독시.. 2024. 2. 1. 이전 1 2 3 4 5 6 7 ··· 16 다음