전체 글 434

안정된 인터페이스 만들기

클래스는 C++의 기본 추상화 단위다.클래스를 작성할 때추상화 원칙을 적용하여 인터페이스와 구현을 최대한 분리하는 것이 좋다.특히 데이터 멤버를 private로 지정하고게더와 세더를 제공하는 것이 바람직하다.인터페이스 클래스와 구현 클래스앞서 설명한 기준과 바람직한 설계 원칙을 적용하더라도C++언어와 추상화 원칙에 잘 맞지않는 부분이 있다.C++에서는 public 인터페이스와 private(또는 protected) 데이터 멤버 및 메서드를모두 클래스 정의에 작성하기 때문에클래스 내부 구현사항이 클라이언트에 어느 정도 노출될 수밖에 없다.그러므로 비 public 메서드나 데이터 멤버를 클래스에 추가할 때마다이 클래스를 사용하는 클라이언트 코드를 매번 다시 컴파일해야 하는 단점이 있다.프로젝트가 커질수록 이..

N-항 트리를 이용한 파일 시스템 구조

N-항 트리란 무엇인가? 이번 포스팅에서 살펴볼 N-항 트리(N-ary tree)는 각 노드가 N개의 자식을 가질 수 있다.N은 임의의 양수이므로 n개의 자식 노드는 벡터를 이용하여 저장할 수 있다.그러므로 N-항 트리는 다음과 같이 구현할 수 있다. struct nTree{ int data; std::vector children;}; 위 코드에서 각각의 노드는 임의 개수의 자식을 거느릴 수 있다.그러므로 전체 트리도 임의의 형태를 가지게 된다.평범한 이진 트리를 많이 사용하지 않는 것처럼 평범한 N-항 트리도 그다지 유용하지 않다.그러나 응용 프로그램의 요구 사항에 맞는 형태의 트리를 만들어 사용해야 한다. N항 트리의 예시와 컴퓨터 분야에서의 쓰임회사의 조직도와 같은 경우를 N-항 트리..

유니티 포톤서버를 이용한 채팅 시스템 구현완료 파티기능 제작 시작

https://github.com/kwon1232/HDProject GitHub - kwon1232/HDProjectContribute to kwon1232/HDProject development by creating an account on GitHub.github.com 중간에 떠있는 건 파티 시스템 구현 하기 위해 만들어둔 UI이다.오늘은 친구랑 저녁먹고 들어와서 10분정도 밖에 못만져서 아쉽다.내일은 시간 투자좀 해야겠다.

프로그래머스 LV.3 이중우선순위

GitHub :https://github.com/kwon1232/CodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/42628.%E2%80%85%EC%9D%B4%EC%A4%91%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%ED%81%90 CodingTest/프로그래머스/3/42628. 이중우선순위큐 at main · kwon1232/CodingTestThis is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - kwon1232/..

C++ 20 중첩 클래스

중첩 클래스클래스 정의에는 데이터 멤버와 멤버 함수 뿐만 아니라 중첩 클래스, 구조체, 타입 앨리어스(typedef), 열거 타입(enum)도 선언할 수 있다.클래스 안에서 선언한 모든 것은해당 클래스의 스코프로 제한된다.public으로 선언한 멤버를 클래스 외부에서 접근할 때는ClassName::과 같이 스코프 지정 연산자를 붙여야 한다.클래스 정의 안에서 다른 클래스를 정의할 수도 있다.예를 들어 SpreadsheetCell 클래스를Spreadsheet 클래스 안에서 접근할 수 있다.그러면 Spreadsheet 클래스의 일부분이 되기 때문에이름을 간단히 cell이라고 붙여도 된다.예를 들면 다음과 같다.export class Spreadsheet{ public : class Cell ..

Unity MonoBehaviour, 코루틴 자주 쓰이는 기본 함수 문서 정리 1

항목 순서InvokeCoroutineStartCoroutineYieldInstructionWaitForSecondsWaitForEndOfFrameWaitForSecondsRealtimeWaitUntilWaitWhile Invoke 선언(Declaration) public void Invoke (string methodName, float time); 정의(Description) Invoke 메서드는 시간(초) 단위로 메서드를 호출한다.만약 타임을 0으로 정하고, 첫 프레임 업데이트 이전에 Invoke 함수를 호출하게 된다면,해당 메서드는 다음 Update 사이클이 실행될 때MonoBehaviour.Update가 호출되기 직전에 실행된다.이런 경우라면 차라리 함수를 직접 호출하는 것이 더 좋다.  참고(N..

Unity 2025.04.05

프로그래머스 LV.2 N ^ 2 배열 자르기

GitHub : https://github.com/kwon1232/CodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/87390.%E2%80%85n%EF%BC%BE2%E2%80%85%EB%B0%B0%EC%97%B4%E2%80%85%EC%9E%90%EB%A5%B4%EA%B8%B0 CodingTest/프로그래머스/2/87390. n^2 배열 자르기 at main · kwon1232/CodingTestThis is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHu..