본문 바로가기

분류 전체보기100

[Unity] MVC 모델 기술면접 대비하기 #12 MVC 모델이란? MVC 모델이란 디자인 패턴의 일종으로, 프로젝트의 구성 요소를 Model, View, Controller 세 가지로 구분한 패턴이다. 사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달한다. 사용자는 controller를 통해 또 다른 정보를 입력시킨다. 모델은 프로그램의 정보, 데이터를 나타낸다. 데이터베이스, 상수값, 초기화값, 변수 등을 담고 있으며 이런 정보를 가공하는 역할도 맡는다. 모델은 사용자가 사용하길 원하는 모든 데이터를 가지고 있어야 한다. 또한 뷰나 컨트롤러에 대해 어떤 정보도 담지 않아야 한다. 모델이 뷰나 컨트롤.. 2024. 2. 14.
[C#] 싱글톤의 장단점 기술면접 대비하기 #11 싱글톤이란? 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 1. 게임 시스템의 중추 스크립트 2. 게임 시스템상 전역 변수의 역할을 하는 스크립트 3. 씬 로드 시 데이터가 파괴되지 않고 유지 4. 여러 오브젝트가 접근을 해야 하는 스크립트의 역할 5. 한 개의 객체만 존재 1. 메모리 측면의 이점 최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 뿐만 아니라 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다. 2. 데이터 공유가 쉽다는 것 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다. 하지만 여러 클래스의 인스.. 2024. 2. 13.
[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.