All Honey Tip

[카테고리:] IT

  • [Unity Tip] 3. 오브젝트 풀링(Object Pooling)

    [Unity Tip] 3. 오브젝트 풀링(Object Pooling)

    수정 일:

    발행 일:

    오브젝트 풀링이란? Unity에서 게임을 개발할 때 일명 “소환” 이라는 기능을 구축해야 할 상황이 많이 놓여집니다. 일반적으로는 이럴때 Instantiate 라는 함수를 사용해 게임 오브젝트를 생성하곤 하는데요, 소규모의 게임 프로젝트에서는 괜찮겠지만, 게임의 규모가 커질수록 객체를 생성하는 행위는 게임 성능에 악영향을 미칠 수 있습니다. 그래서 대게 Programming Strategy(전략) 중 하나인 오브젝트 풀링 이라는 기술을 사용해줍니다. 오브젝트 풀링은 미리…

  • [기술 면접] 3. 상속과 조합을 설명해보세요.

    [기술 면접] 3. 상속과 조합을 설명해보세요.

    수정 일:

    발행 일:

    저번 시간에 이어서, 이번엔 상속과 조합에 대해 알아본 후에 Call by Value와 Call By Reference에 대해 알아보도록 하겠습니다. Q: 상속과 조합을 설명해보세요. 상속은 is – A이고 조합은 have – B로 말씀드릴 수 있습니다. 추가로, 상속에서 부모의 변화는 자손에게 영향을 끼치므로 유연하지 못 하고, 조합은 다른 클래스를 소유한 클래스가, 포함되는 클래스에 영향을 끼치지 못 합니다. 상속 조합 Q:…

  • [기술 면접] 3. TCP와 UDP를 비교해서 설명해주세요.

    [기술 면접] 3. TCP와 UDP를 비교해서 설명해주세요.

    수정 일:

    발행 일:

    저번 시간에 이어서, TCP와 UDP에 대해서 알아보겠습니다. 통신 프로토콜로써 자주 비교되는 개념입니다. 각 프로토콜의 특징과 차이, 그리고 통신 방법까지 알아보겠습니다. Q: TCP와 UDP를 비교해서 설명해주세요. TCP는 연결형, 신뢰성 전송 프로토콜입니다. 연결 지향적 서비스를 제공하기 위해 데이터를 전송하기 전에 3-way handshake를 하여 두 호스트의 전송 계층 사이에 논리적 연결을 설립합니다. 신뢰성 있는 서비스를 제공하기 위해 오류제어,…

  • [Unity Tip] 2. Target 겨냥하기 (1-1)

    [Unity Tip] 2. Target 겨냥하기 (1-1)

    수정 일:

    발행 일:

    Unity에서 Target 겨냥하기 Unity 게임 개발을 하시는 분이라면, 몬스터, 혹은 물체를 인식하여 자동으로 Aim 및 Targeting하는 상황을 생각보다 자주 마주합니다. 그렇다면, 어떻게 물체가 타겟을 겨냥하는지 Tower 오브젝트를 활용해 간단히 배워보도록 하겠습니다. [유니티 URP에서 분홍 프리팹 해결하는 방법] 물리적 충돌 Collider 오브젝트 생성하기 우선 Zone1이라는 오브젝트를 Tower prefab안에 만들어줍니다. Zone1의 속성값은 위 사진처럼, 스피어 콜라이더와 하나의…

  • [기술 면접] 3. RDB와 NoSQL을 비교해서 설명해주세요.

    [기술 면접] 3. RDB와 NoSQL을 비교해서 설명해주세요.

    지난 시간에 이어서, 이번엔 RDB(Relation DataBase)와 NoSQL(Not Only SQL)에 대해 알아보겠습니다. 자주 등장하는 내용이며, 프로젝트 기획 시에 DB를 선택할 수 있는 기본 지식이니 꼼꼼하게 알아보도록 합니다. Q: RDB와 NoSQL을 비교해서 설명해주세요. RDB는 사전에 엄격하게 정의된 Schema를 기반으로 정형 데이터만 저장할 수 있으며, NoSQL은 Schema 없이 비정형 데이터를 저장할 수 있도록 지원합니다. RDB는 중복을 허용하지 않기…

  • [기술 면접] 3. Process를 설명해주세요.

    [기술 면접] 3. Process를 설명해주세요.

    수정 일:

    발행 일:

    이전 시간에 이어서 운영체제의 기본, Process에 대해 알아보겠습니다. Process는 앞으로 나오는 내용들의 기초가 되는 핵심 개념입니다. Process가 무엇인지, 어떤 특징을 가지는지 꼼꼼하게 정리하고 넘어가시길 바랍니다. Q: Process를 설명해주세요. 프로세스란, 실행 중인 프로그램을 의미합니다. 즉, 실행파일 형태로 존재하던 프로그램이 Memory에 적재되어 CPU에 의해 실행(연산)되는 것을 프로세스라 합니다. Q: Process의 Memory 영역에 대해서 설명해주세요. 프로세스가 운영체제에서 할당받는…

  • [기술 면접] 3. Linked List에 관해서 설명해 주세요.

    [기술 면접] 3. Linked List에 관해서 설명해 주세요.

    수정 일:

    발행 일:

    저번 시간에 이어 Linked List는 배열과 같은 기능을 하는 것으로 보이지만, 내부 구조와 작동 방법이 다릅니다. 이번 시간엔 Linked List의 특징과 Array와 다른 점이 무엇인지 알아보겠습니다. Q: Linked List에 관해서 설명해 주세요. Node라는 구조체로 이루어져 있는데, Node는 데이터 값과 다음 Node의 address로 구성됩니다. Linked List는 물리적인 메모리상에서는 비연속적으로 저장 되지만, 각각의 Node가 다음 Node의 address를 가리킴으로써 논리적인 연속성을…

  • [카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼

    [카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼

    수정 일:

    발행 일:

    지난 포스팅에 이어서, 아파치 카프카(Apache Kafka)의 브로커, 클러스터, 그리고 주키퍼 등의 기본 개념에 대해 알아보겠습니다. 주키퍼는 카프카 클러스터를 운영하기 위해 필요한 Application이고 1개의 클러스터는 n개의 브로커루 구성되어 있습니다. 일반적으로 장애에 대비하여 최소 3개 이상의 브로커 서버를 클러스터로 그룹핑하여 사용합니다. 용어 설명 이해를 돕기 위해 각 용어의 간단한 설명으로 시작하고 본론에서 상세 설명을 시작하겠습니다. N개의 카프카…

  • MSA(MicroService Architecture) 전환 2편 – Toss Bank

    MSA(MicroService Architecture) 전환 2편 – Toss Bank

    수정 일:

    발행 일:

    지난 시간엔, MSA와 Monolithic 의 특징을 알아보고 Toss Bank의 “지금 이자 받기”에 대해 간략하게 말씀드렸습니다. 이번 시간엔 해당 기능이 무엇인지와 어떤 과정을 거쳐서 MSA로 전환되었는지, 좀 더 깊이 있게 탐구합니다. 우선 해당 기능의 기본적인 비즈니스 로직부터 알아보도록 하겠습니다. (※ 본문에 나오는 Code는 필자의 개인 Code, 의견인 점을 참고해주시기 바랍니다.) 지금 이자받기 Business Logic 지금 이자받기의…

  • [카프카] 1. 아파치 카프카가 무엇일까?

    [카프카] 1. 아파치 카프카가 무엇일까?

    수정 일:

    발행 일:

    카프카(kafka)라고 불리는 Apache Kafka에 대해 알아봅니다. 카프카는 2011년 LinkedIn에서 파편화된 데이터 수집 및 분배를 고려하여 만든 아키텍처입니다. 데이터를 생성하고 적재하기 위해서는 Source Application(데이터 생성)과 Target Application(최종 적재)을 연결해야 하는데, 초기에는 Source Application에서 Target Application으로 단방향 통신을 함으로써 운영했지만, 아키텍처가 복잡해지고 Application의 개수가 많아지면서 많은 문제가 발생했습니다. 일부 Target Application에 장애가 생기면, 해당 Application을 바라보고 있는…