[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 3회차 미션 시작합니다.

 

 

이제 본격적인 유니티 게임 제작에 들어갑니다.

우왓 첫 시작이 디아블로입니다 ^^~ 자..잘.. 따라갈 수 있겠지요!?!?

 

 

우선 전체 진행 과정이 3단계로 나누어 정리되어 있습니다.

STEP 1 - 캐릭터 시스템
+ 사용자 입력
+ 캐릭터 이동
+ 애니메이션 설정
+ AI: AI는 유니티의 길찾기 및 상태머신을 구현.
+ 전투 시스템

STEP 2 - 레벨 디자인
+ 환경시스템
+ 광원 설정: 라이트 프로브, 리플렉션 프루브로 조명 기능 확장 예정..
+ 함정 이벤트 트리거
+ 퍼즐 이벤트 트리거
- 퀘스트에 따라 동적 네비게이션 처리에 대해서도 알아볼 예정.

STEP 3 - 게임 시스템 구현
+ 유지 인터페이스
+ 인벤토리 시스템
+ 상점 시스템
+ 퀘스트 시스템

 

선행 학습 요구 사항이 있습니다.
+ Unity 엔진에 대한 기본 사용 이해도
+ C#에 대한 기본 이해도
+ 게임 수학에 대한 기초 이해도

 

C#과 게임 수학은 이해하고 있지만, Unity 엔진에 대해서는 거의 초보 수준인데.. 게임 개발 교육 시작에서 기본 사용 이해도가 있어야 한다고 나옵니다 ㅠ.ㅜ; 기초 Unity 교육을 듣고 올걸 그랬나 싶지만.. 다른 기초 교육에서는 Unity 보다는 C# 등의 내용이 많다는 글을 보았었고 그래서 바로 넘어온 기억이 떠오릅니다.. 역시 열심히 따라가는 방법밖에는.. ㅋㅋ


오늘 진행 교육은 기본적인 사용자 입력과 캐릭터 이동입니다.


 

 


플레이어 캐릭터 구현하기

여러가지 방법이 있는데 각각 알아보고 RPG 게임에 맞는 캐릭터 구현을 선정하여 진행합니다.

RIGIDBODY: 게임 오브젝트를 물리엔진에서 제어하도록 하는 컴포넌트.입니다.
오브젝트에 가해진 힘에 의해서 계산됩니다. 충돌 처리를 위해 게임 클라이더 추가하여 처리할 것입니다.
+ RigidBody를 사용하는 이유: 실제 게임에서는 과장된 표현이 많아 RigidBody가 사용안되는 경우도 많지만
  일단 기본적으로 물리엔진을 경험해보고 기본적인 템플릿을 만들어 보기 위한 것입니다.
+ RigidBodyCharacter 설정하기

+ RigidBodyCharacter.cs 구현하기

 

 

 

RigidBody를 이용한 Character GameObject 구성.
1. Capsule Mesh: 캐릭터 UI 추가.
2. RigidBody Component: 물리엔진 사용.
3. Capsule Collider: 출동 연산을 위해 추가.
4. RigidBodyCharacter.cs: 사용자 입력 및 이동 처리

 

 

 


Unity
갑자기 등장한 SC_RigidBodyCharacter 프로젝트!!! 헉 어쩌어쩌지.. 미리 구성해 놓은 것이라고 하시는데...
교육 자료를 찾아봐도 없고 어떻게 배치해야할지도 모르겠습니다 ㅠ.,ㅜ; 같이 따라 만들 수 있게 맞는 자료가 있었으면 좋았겠습니다. 그래도 캐릭터 이동 구현이므로 이해하는데 지장은 없을 것 같습니다.
뒤로 가면 갈수록 어려워질텐데 더 복잡한 에셋들을 사용할 때에도 찾아보기 어려울까 걱정되긴 합니다.

Layer Ground 및 계단과 Terrain이 추가된 상태로 시작합니다. Terrain 설정은 추후 다른 강의로 설명하신답니다.


1. Hierarchy에서 "Create Empty"하여 비어있는 "GameObject"를 추가합니다.
2. Inspecter에서 해당 오브젝트에 "Capsule Collider"를 "Add Component" 해줍니다.
3. Hierarchy에서 "GameObject"의 자식으로 "3D Object - Capsule" 오브젝트를 추가하고, 부모 "GameObject"의 이름을 "RigidBodyCharacter"로 변경합니다.
4. Hierarchy에서 "Capsule"을 선택하고, Inspect에서 "Capsule Collider" 우클릭하여 "Remove Component"하여 제거합니다. Capsule 자체의 충돌을 사용하지 않을 것이기 때문입니다.
5. Inspecter에서 "RigidbodyCharacter"의 Height를 "1" -> "2"로 변경하고, Center Y를 "0" -> "1"로 변경합니다. 이것은 캐릭터의 발끝이 항상 원점이 되도록 하기 위한 것입니다.
   같은 이유로 "Capsule"의 Transform - Position - Y의 값을 "0" -> "1"로 변경합니다.
6. "RigidBodyCharacter"에 가장 중요한 "Rigidbody"를 "Add Component"하여 추가합니다.

 



Rigidbody 설정
+ Mass: 질량 설정인데 중력에는 영향을 받지 않습니다.
+ Drag: 공기저항값
+ Angular Drag: 회전을 할때의 기본값
+ Use Gravity: 중력 사용.
+ Is Kinematic: 물리엔진이 아닌 게임오브젝트 로직에 따라서 게임오브젝트를 이동할 것인가 여부.
+ Interpolate: 물리엔진에서의 애니메이션이 자연스럽게 보간할 것이지에 대한 설정.
+ Collision Detection: 충돌 처리를 연속적으로 할것인가 또는 특정한 경우에만 할 것인가 등의 설정.
+ Constraints
  '- Freeze Position [ ]X [ ]Y [ ]Z
  '- Freeze Rotation [V]X [ ]Y [V]Z - Y축 회전만 물리엔진에서 처리하고, X 및 Z축 회전은 하지 않겠다.

7. "RigidBodyCharacter"에 "Add Component" - "New Script"로 "RigidBodyCharacter" 추가합니다.
8. 이렇게 추가된 RigidBodyCharacter.cs 스크립트에서 캐릭터의 움직임을 구현해보겠습니다.

 

 

 

RigidBodyCharacter.cs

// 변수 추가.
public float speed = 5f;
public float jumpHeight = 2f;
public float dashDistance = 5f;
private Rigidbody rigidbody;
private Vector3 inputDirection = Vector3.zero;

void Start()
{
  rigidbody = GetComponent<Rigidbody>();
}

void Update()
{
  inputDirection = Vector3.zero;
  inputDirection.x = Input.GetAxis("Horizontal");
  inputDirection.z = Input.GetAxis("Vertical");
  if (inputDirection != Vector3.zero)
  {
    transform.forward = inputDirection;
  }
}

private void FixedUpdate() // 게임의 프레임과 상관없이 고정적으로 호출되는 함수.
{
  rigidbody.MovePosition(rigidbody.position + inputDirection * speed * Time.fixedDeltaTime);
}

여기까지 완성하고 실행하면, 'WASD' 키로 'Capsule' 캐릭터가 움직이는 것을 확인할 수 있습니다.

캐릭터의 진행 방향을 알수가 없기에, 'Cube' Mesh를 추가합니다.
"Cube"의 Position X0, Y0.5, Z0.5, Scale은 모두 0.25로 설정하여 캐릭터의 코(?) 처럼 배치해줍니다. ^^

실행화면입니다.

 

 

 


이제 점프, 대시 구현입니다.
키 설정은 Input Manager에서 원하는 키로 설정하면 됩니다.

점프 구현입니다.
if (Input.GetButtonDown("Jump"))
{
  Vector3 jumpVelocity = Vector3.up * Mathf.Sqrt(jumpHeight * -2f * Physics.gravity.y);
  rigidbody.AddForce(jumpVelocity, ForceMode.VelocityChange);  //물리엔진에 의해 입력된 Velocity가 자동계산됩니다.
}

 


대시는 Log 함수를 사용하여 자연스럽게 정지되는 느낌을 구현합니다. 개발 상황에 맞게 변경하면 됩니다.
if (Input.GetButtonDown("Dash"))
{
  Vector3 dashVelocity = Vector3.Scale(transform.forward,
dashDistance * new Vector3((Mathf.Log(1f / (Time.deltaTime * rigidbody.drag + 1)) / - Time.deltaTime),
0,
(Mathf.Log(1f / (Time.deltaTime * rigidbody.drag + 1)) / - Time.deltaTime)));
  rigidbody.AddForce(dashVelocity, ForceMode.VelocityChange);
}

실행하면 캐릭터의 점프 및 대시가 잘 행동하는 것을 확인할 수 있습니다.
문제점이라고 한다면 공중에서 점프할 때도 계속 점프가 가능하다는 점입니다.

 

 

땅에 있을 때만 점프하도록 루틴 변경.


땅에 있는지 체크하도록 하기 위해 변수추가.
private bool isGrounded = false;
public LayerMask groundLayerMask; // 땅에 있는지 확인하기 위해 Raycast를 사용할 것인데 이것의 효율을 위해 추가.
public float groundCheckDistance = 0.3f; // 땅 검사 최소 거리.

 


void CheckGroundStatus()
{
  RaycastHit hitInfo; //충돌정보를 가져옴
#if UNITY_EDITOR //디버그 정보 표시.
  Debug.DrawLine(transform.position + (Vector3.up * 0.1f),
    transform.position + (Vector3.up * 0.1f) + (Vector3.down * groundCheckDistance));
#endif
  if (Physics.Raycast(transform.position + (Vector3.up * 0.1f), // 발끝 살짝 위쪽에서 체크
    Vector3.down, out hitInfo, groundCheckDistance, groundLayerMask))
  {
    isGrounded = true;
  }
  else
  {
    isGrounded = false;
  }
}

이제 이 함수를 Update()의 최상단에서 호출하고, 점프 루틴도 수정을 해줍니다.
void Update()
{
  CheckGroundStatus();
  
  if (Input.GetButtonDown("Jump") && isGrounded)
  { .. }
}

 


마지막으로 Unity UI상에서 "RigidbodyCharacter"의 "Ground Layer Mask"를 "Ground"로 변경합니다. 다른 바닥 지형들이 "Ground"로 설정되어 있습니다.
실행하면 Ground에서만 Jump되는 캐릭터를 볼 수 있습니다.

 

역시 게임 개발로 들어가니 빨리빨리 진행되네요..

당연하겠지만 유니티의 기본 기능만해도 설명할 것이 많기 때문에 진도가 빠르지 않을까 생각은 듭니다.

열심.. 열심히 하는 수 밖에 없겠지요 ^^???

 

그래도 패스트캠퍼스 강의는 평생 수강이 가능하니 이번이 끝이 아니라 반복적으로 해본다는 마음으로 하나씩 천천히 진행해 보아야겠습니다.

 

 

패스트캠퍼스 - 올인원 패키지 : 유니티 포트폴리오 완성 bit.ly/2R561g0

 

유니티 게임 포트폴리오 완성 올인원 패키지 Online. | 패스트캠퍼스

게임 콘텐츠 프로그래머로 취업하고 싶다면, 포트폴리오 완성은 필수! '디아블로'와 '배틀그라운드' 게임을 따라 만들어 보며, 프로그래머 면접에 나오는 핵심 개념까지 모두 잡아 보세요!

www.fastcampus.co.kr

 

 

 

해외에서는 Travel Iron으로 불리우는 제품입니다. 국내에서도 여러 업체가 있는데, 강블리 업체 것으로 구매하게 되었네요.. 그런데 지금보니 가격도 이벤트하고 옷걸이 증정 서비스까지 ㅠ.,ㅜ; 우옷... 너무햇!!

 

 

 

Y816 강블리 설명서

Y816 강블리 설명서.zip
1.55MB

 

Y816 영문 매뉴얼

Y816 User Manual En.pdf
0.47MB

 

현대오피스 중형세단기(문서파쇄기) PK-1003CD 입니다.

 

 

 

 

 

 

 

PK-1003CD 설명서

PK-1003CD_MANUAL.pdf
2.32MB

 

 

사용자 매뉴얼

BN68-09480K-01_UM_URU7100H_KOR_KOR_190926.0.pdf
3.08MB

e-Manual(Audio file): 용량이 커서 첨부 불가.

 

e-Manual

MUSATSCR-4.0.0_EM_MUSE_KOR_KOR_190731.0.zip
9.30MB

 

BN68-09477B-00 CONNECT

[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 2회차 미션.


실무 개발하면서 알아두면 좋을 것들입니다.

 


+ 풀링
+ 상태머신
+ 사운드시스템
+ 유니티 에셋번들
+ 유니티 셰이더
+ 유니티 최적화
+ 프로파일링
+ 라이브팀에서의 업무와 신규개발팀의 업무 차이.




풀링 : 만들어놓은 것을 재사용하는 방법입니다.

리사용 재사용 리소스 공간.
화면에는 엄청 움직이는 것 같지만 이팩트 개수를 줄이면서 조절하여 맞춘다.
실제 게임하는 사람은 기술을 써서 다량의 몬스터가 동시에 죽을 때 100개인지 60개인지 표시되는 것이 중요하지 않습니다.
풀링 방식으로 리소스를 재활용합니다.

 

 

상태머신


플레이어의 상태를 프로그램에서 스크립트화하여 그때그때 작업하며 기획에 맞게 수정하다보면 유지보수 문제도 심각해지고 작업도 어려워지고 복잡해지고 버그도 많아진다.
그래서 상태머신을 설정합니다.
특정 이벤트에 해당하는 상태로 변경이 발생하고 해당 상태에서 또다른 이벤트에 의해 상태를 변경하는 것입니다.
단점은 아니지만 좀 복잡해질 수 있는 것은 동시의 이벤트에 대해 처리를 하려면 Attack 내의 Sub-State-Machine을 작성하고 또 하위 Sub-State 등을 추가해 나아갈 수 있는데 좀 복잡해질 수 있다.

지만 단점은 아닐 수 있는 부분이 기존 방식대로라면 if-else의 엄청 복잡한 분기 구조를 사용했어야 할텐데 오히려 어려웠을 것이기 때문입니다.

+ State은 확장성과 유지 보수가 중요합니다.
+ Transition은 절대 중복되면 안된다. Idle->Attack 또는 Idle->Jump 등 명확한 상태로 이동되어야 합니다.
+ 상태 이름은 명확해야 한다. Jump01, Jump02이런 형태면 알 수 없다.
+ Condition은 단순화가 중요.
+ Update 동작이 복잡한 State는 분리를 고민해봐야 합니다.  Sub-State를 만드는 것이지요.

 


사운드 시스템


타격감. 게임의 완성도에 영향이 컸지만 요즈음은 인디게임이나 모바일 게임에서는 중요성이 많이 낮아진 상태입니다.
왜냐면 일단 재생이 되는 것이 확인만 되면 추후 클립만 업데이트 하면 되기 때문입니다.
어차피 인기가 있어서 업데이트가 자주 발생하게 된다면 그때 피드백 받아 적용해도 될 것이기 때문입니다.

사운드 유니티툴을 제작하며 3D 입체 사운드를 처리하는 방식도 추후 개발해볼 예정입니다.
특정 위치에 도착시 Box Collision 지역을 만들어서 도착하면 자동으로 사운드를 변경하는 방법.
매번 프로그램에서 여기서 어떤 오디오 재생, 어디서는 어떤 오디오 재생하는 형태가 아니라 오디오 관리툴을 만들어서 UI 상태에서 오디오 클립을 배치하여 코드로 작업하지 않습니다.
캐릭터의 발자국 소리도 모든 상태의 소리를 신발에 넣어두는 것이 아니라 특정 위치 공간에서 오디오 클립을 모두 가지고 있고, 플레이어가 배경에 들어오는 순간 공간에 지정된 플레이어의 신발에 특정 오디오 클립을 연결하여 재생하는 형태로 만듭니다.
물이 있는 공간에 들어갔을 때 플레이어가 걸으면 철퍽철퍽하는 소리가 나는 그런 것들인 것이지요.


 


어셋번들


압축된 리소스 모음 파일이라고 생각하면 됩니다.

복잡하고 알아야 하는 내용들이 많습니다. 사용하기도 쉽지 않습니다. 그래서 어드레서블 에셋이 개발됩니다.

 


어드레서블(Addressables)은 복잡한 라이브 콘텐츠를 전달해야 하는 대규모 제작팀의 요구사항을 보다 효과적으로 지원하기 위한 Unity 에디터 및 런타임 에셋 관리 시스템입니다.
본인들도 어렵다고 인정했다고 하십니다.. ㅎㅎ 맞습니다. 이런 경우 참 많거든요.. 100% 공감이 갑니다.

에셋의 위치 지정, 빌드 및 로드와 관련하여 일반적으로 발생하는 몇 가지 문제를 해결하기 위한 프레임워크를 구축하기 위해 어드레서블이 탄생하게 되었습니다.

Meta 파일: 어셋 관련하여 Meta 파일이 엄청 중요합니다. GUID.
처음 어셋을 만드는 PC에서의 Prefab에 대한 GUID가 생성되며 들어가게 되는데 이것이 Meta 파일로 관리되게 됩니다. 그런데 Meta 파일이 공유되지 않으면 다른 PC않으면 또 독립적은 GUID가 발급되기 때문에 문제가 발생하게 됩니다.

 


유니티 셰이더

셰이더는 화면에 출력하는 픽셀의 색을 정해주는 함수라는 뜻을 가지고 있다고 합니다.
셰이더 전에 알아야 하는 내용은 파이프라인과 빛의 원리.

렌더링 파이프 라인의 4단계.
1) 3점으로 이루어진 Vertex로 구성진 오브젝트 받아오기.
2) 정점셰이더: 버텍스들에게 월드변환행렬(월드좌표계)를 곱해주므로써, 원근감 등을 표현.
3) 래스터라이져: 오브젝트를 출력해주는 과정. 3D 오브젝트가 모니터에 보이도록 픽셀이 되는데 이 과정을 래스터화라고 하며 3D 이미지가 2D 이미지가 되는 것입니다.
4) 픽셀셰이더와 프레그먼트 셰이더: 픽셀셰이더가 동작하며 조명과 텍스쳐 등 특수효과를 연산.



유니티 최적화

프로그램 최적화: 100번 돌릴걸 10번 돌려서 해결..
리소스 최적화. 100픽셀 쓸걸 10픽셀로 해결..

왜 중요하냐면

+ 유저에게 쾌적환 플레이 제공이 가능하기 때문입니다.
+ 게임 시간 절약 및 데이터 절약도 가능해집니다.
+ 우리나라 환경에서는 문제가 덜 하긴 하지만 지금도 외국에서는 데이터를 용량별로 유료로 사용하는 곳도 많습니다.
+ 플랫폼 이슈: 용량이 적거나 저사양의 모바일에서도 게임이 가능해지기 때문에 더 많은 유저가 즐길 수 있겠지요.

+ 향후 업데이트를 위해: 최적화된 패치는 용량, 시간 등 많은 이점이 있습니다.



프로파일링

현재 게임이 돌면서 하드웨어 상태를 지켜본다. 전체적인 리소스 사용 흐름량을 확인할 수 있다.
게임을 진행하는 중에 어떤 지점에서 문제가 발생하는지를 확인하기가 쉽다. 어떤 스크립트에서 문제가 발생하는지도 바로 확인이 가능하다.
특정 시점에서 CPU나 메모리 사용량이 늘어나는 구간을 그래프로 확인하여 어떤 스크립트에서 어떤 문제가 있었는지 또는 최적화를 해야하는지 등을 확인할 수 있다.



라이브팀 vs 신규개발팀


어떤 형태의 게임 개발 및 업무가 나에게 맞는 것이 중요할 것 같네요.
나에겐... 신규개발팀(?)처럼 특정 기간내의 특정 프로토타입 게임 개발을 많이 해보는 것이 많은 것들을 해볼 수 있어서 좋을 것 같네요.


추가적으로 유용한 내용들.
+ 스택오버플로우 사이트. ㅎㅎ 너무 유명하죠.. 개발일을 하면 구글 검색하며 진짜 자주 접근하게 되지요.
+ 예시 코드의 위험성. 샘플코드를 포트폴리오로 사용하지 마라.
+ 팀마다 코드 규약: 변수 규약 Camel Case 등..
+ 코드 리뷰의 중요성

+ 형상관리. GitHub, SVN

 

 

여기까지 해보았는데요.. 이건 유니티로 게임만드는 것 자체에 대한 것보다 전반적인 소프트웨어 개발자라면 알아야 하는 내용이라고 하는 것이 맞겠습니다. 정말 유용한 내용이었습니다.

 

 

패스트캠퍼스 - 올인원 패키지 : 유니티 포트폴리오 완성 bit.ly/2R561g0

 

유니티 게임 포트폴리오 완성 올인원 패키지 Online. | 패스트캠퍼스

게임 콘텐츠 프로그래머로 취업하고 싶다면, 포트폴리오 완성은 필수! '디아블로'와 '배틀그라운드' 게임을 따라 만들어 보며, 프로그래머 면접에 나오는 핵심 개념까지 모두 잡아 보세요!

www.fastcampus.co.kr

 

 

예전에 패스트캠퍼스 오프라인으로 영상 처리 강의를 듣고 좋은 기억이 있어서 그 이후로는 패스트캠퍼스 강의를 지속 주시하고 있었다. 그러다 이번에 유니티 관련 업무를 진행하게 되어 겸사겸사 교육 수강을 했는데 왜인걸 환급 챌린지 과정!! 와우 ^^*~ 겸사겸사 정리할겸 기록도 남길 겸 미션 시작합니다.

 

올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 1회차 미션입니다.

 

처음 강의는 기술 면접 대비 알아두면 좋을 내용이라고 설명을 하면서 시작해 주셨습니다.

그런데 들어보니 꼭 면접은 아니더라도 전반적으로 알아두면 좋을 내용들이 많네요.

그래서 꼼꼼히 듣기 시작하였습니다.

 

 

01. 콘텐츠 프로그래머 채용 면접에 꼭 나오는 핵심 개념

우선 기술면접 보기전에 알아두면 좋을 것들에 대해 상세히 설명해주시는데요.

 


기술 면접을 준비하는 방법입니다. ㅎㅎ
열정 -> 코딩 -> 스펙 -> 경험

우선 열정! 하고자 하는 Passion이 강해야 끝까지 밀고 나갈 수 있겠지요.

 

이건 참 좋은 내용입니다. 그냥 아무 생각없이 만드는 것이 아니라 준비를 하자는 것입니다.
포트폴리오든 인디게임 출시 경험이든, 게임회사인턴 생활을 해보는 방법도 있겠지요.

저는 인턴은 어려운 나이라 ㅋㅋ 포트폴리오 및 인디게임 출시 경험을 목표로 하고 있습니다.

꼭 알아야할 가장 중요한 핵심도 설명을 해주십니다.
1. Unity란 무엇인지
2. JSON은 꼭 사용하자.
3. 다국어 처리 방법을 알자.
4. 유니티 툴. 이미 만들어진 툴은 많은 경험이 있는가? 혹은 직접 개발해서 다루어 본 툴은 있는가? 어떤 때에 적용해 보았는가?
5. 가비지 컬렉터.

 


Unity? 유니티를 아는가? 라는 질문이라기 보다는 내포된 핵심 용어 등을 잘 이해하고 있느냐는 개념입니다.
GameObject? Prefab? Component? 이러한 개념들을 어설프게 아니라 정확하게 알고 넘어가야 뼈가 되고 살이 된다는 것이지요.

 

 

JSON은 이제는 정말 중요한 개념인 것 같습니다.

사실 예전에 DataManager라는 비슷한 개념의 클래스를 어설프게 만들어 쓰면서 좋아했었는데.. ㅋㅋ 부끄럽네요. 그때 JSON을 알았더라면 바로 적용했을텐데 말이죠. ㅎㅎ
JSON은 텍스트 묶음 구조체로서 뷰어등을 통해 봐야 좀 깔끔하게 볼 수 있습니다.

텍스트 묶음의 객체화 또는 객체의 텍스트 묶음화 등이 가능합니다.

예전 서버-클라이언트 개발 방식은 서버에서 DATA(id, name, bonus) 등을 구성하고 서버에서 id, name, bonus 개별적 처리하고 클라이언트에서도 전체 문자열을 받아서 id, name, bonus를 Parsing하여 개별 할당하는 처리 방식이었는데, 문제는 개발을 해나아가면서 서버나 클라이언트에서 데이터 구조를 변경하는 경우가 자주 발생하게 되는데 그때마다 서로 맞추어 각각 변경해야 하는 경우가 다반사였습니다.

JSON을 쓰면 DATA 구조를 바로 오브젝트화 가능하기 때문에 안정적이고 빠른 개발이 가능해진다는 것이 장점입니다.

JSON과 더불어 XML도 비슷한 개념으로 같이 공부해두면 좋습니다.

JSON의 단점은 데이터의 크기가 많아지고 복잡해지면 부하가 좀 발생하게되어 느려진다는 점.

JSON 짤 쓰는 방법은
1) Serializable한 데이터 클래스.
2) Key의 이름을 잘 지어야 한다는 것.
3) 클래스 크기가 너무 길지 않게.. 또는 쪼개서.
4) 유지보수를 위해 버전 추가.

 


다국어를 다루는 크게 2가지 방법이 있는데 Text Localization과 Image Localization 입니다.

Text 로컬라이제이션은 예전에는 모든 언어를 들고 있어 무겁고 버그가 많았었는데요.
현재는 사용하는 언어만 들고 있도록 처리하여 무겁지 않도록 처리합니다.
사용중인 언어만 다운로드하고 기존 언어는 제거하는 방식인거죠.

이미지는 로컬라이제이션을 하지 않는 것이 좋습니다.
특수하게 타이틀 이미지 같은 경우가 있다면.. 그런정도만.. 특수하게.. 하지만 왠만하면 하지않아야 좋은 것이죠..



유니티 툴.. 이건 핵심이죠.. 몇십년전 단순 게임을 만들때에도 맵툴. 텍스트툴 등을 만들어서 사용했었습니다.

개발자가 직접 코드만으로 모든 처리를 한다는 것은 어렵고 힘도 부칩니다. 툴은 필수 ㅎㅎ
각종 테스트를 위한 툴이라던가.. UI를 구성하기 편하게 하기 위한 툴이라던가..
매번 빌드하여 하지 않고, 테스트하는 사람은 쉽게 여러가지 상황을 직접 확인할 수 있겠지요.

툴의 단점은.. 지속 툴 개발을 유지보수해야 하는 상황이 발생한다는 점.
실무에서는 엑셀로 때려박고 부르는 툴 형태가 되어가는 형태가 많다고 하시네요.. ㅎㅎ 그러지말자.. 고 하십니다.

Unity Tool의 UI를 구성하는 것이 편하지는 않지만 조금 번거롭지만.. 한번 UI 작성하면 많이 수정하진 않으므로 괜찮다고 합니다. 단순한 형태의 UI로 구성해서 만드는 것이 좋겠지요.



가비지 컬렉터? 쓰레기 모으기인데.. GC라고 자동으로 메모리 관리를 한다는 것입니다. 쓰레기 메모리를 알아서 삭제하며 관리하는 것이지요. 이것도 예전에는 버그도 많고 무겁고 그랬는데..
.Net 버전에 따라 GC 동작도 많이 다르고 많이 변했다고 합니다. 그래서 최신 .Net 기준으로 준비해야 합니다.

와우.. 1시간이 금방 가네요 ^^~

설명 정말 친절하게 꼼꼼하게 잘 해주십니다. ㅎㅎ

 

패스트 캠퍼스 - 올인원 패키지 : 유니티 포트폴리오 완성 bit.ly/2R561g0

 

유니티 게임 포트폴리오 완성 올인원 패키지 Online. | 패스트캠퍼스

게임 콘텐츠 프로그래머로 취업하고 싶다면, 포트폴리오 완성은 필수! '디아블로'와 '배틀그라운드' 게임을 따라 만들어 보며, 프로그래머 면접에 나오는 핵심 개념까지 모두 잡아 보세요!

www.fastcampus.co.kr

 

 

차를 사려고도 했고, 지속 알아보고도 있지만..

어찌된 일인지 어찌저찌 하다보니 처음차는 비스토에서 개인사업자로 모닝, 법인사업자로 K5, 경매로 BMW, 다시 개인사업자로 모닝을 유지하게 되었습니다. 예전에는 경차사랑 카드 발급은 했었는데 변동사항이 많아 사용을 거의 못했었고, 작년에는 발급받아 잘 사용을 하였네요.

차를 알아보고는 있지만 급한 것도 아니고 시간도 걸릴 것 같아 일단 경차사랑카드를 재신청하였습니다.

 

예전에는 신한카드만 되었었는데, 현재는 현대카드, 신한카드, 롯데카드가 가능한 것 같네요.

쓰던 것이 편한지라 신한카드로 발급 진행을 하였습니다.

연장할 듯하지만 현재 발표는 2021년 12월 31일까지 지원이니 경차 1대이신 분들은 발급받아 1년에 20만원 혜택보세요.

 

 

신한카드 사이트에 접속합니다. 로그인 안한 상태로도 신청 가능하지만, 귀찮은 상황이 나올지 몰라서 그냥 로그인한 상태로 진행하였습니다.

 

"경차사랑"으로 검색을 하면 2개의 카드가 나오는데, 저는 무조건 체크카드 사용 유저라서 "GS칼텍스 신한카드 경차사랑 체크"를 클릭합니다. (이거 약간 낚시 아닌지 -_-; 예전에는 그냥 경차사랑 체크였는데.. GS가 앞에 붙어서 이상하다 했는데 내용보니 혜택은 동일합니다. GS에서만 사용해야 하는 것도 아니구요.. 뭥지)

 

 

 

 

카드.. 심플합니다.

 

상세보기를 보면, 무언가 좀 복잡합니다 -_-;;

유류세 환급은 전월 실적과 무관한 것이고, GS칼텍스는 전월실적 30만원 이상 충족시인데.. 꼭 GS칼텍스에서 써야 하는 것처럼 나옵니다...

 

결제은행 선택은 "[승용] 휘발유 신한"으로 했습니다. 작년에는 주거래 통장인 기업은행으로 했는데, 이젠 결제 가능 은행이 몇개 안되네요. 실명인증 등 필요시 진행해 주세요.

 

결제 은행 확인 시스템도 도입을 했네요.. 게다가 "1원" 벌었습니다? ^^ ㅋㅋ 이젠 1원의 값어치가 거의 없다는 거겠지요.. 이러다 곧 화폐개혁이 일어나진 않을까 싶기도 합니다.. 계좌확인을 하면 "XXXX 신한카드"로 문자 등이 오는데 앞의 4자리 번호를 입력하면 됩니다.

 

다음 약관 동의가 나오는데, "선택" 조심히 피해줍니다... 요즈음은 저렇게 교묘하게 집어넣어서 알아보기가 어렵게 해놓네요..

 

 

신분증 및 수령장소 확인입니다. 주민등록증으로 발급일자로 확인하였고, 명세서 이메일로, 카드 수령은 자택으로 처리하였네요.

 

 

마지막으로 카드 결제 정보 확인입니다. 결제일 선택하고, ARS 출금동의하고, 차량 번호 적고, 추가 정보까지 입력해야 "다음"으로 넘어갈 수 있습니다.

 

모두 완료하였다면..

 

접수 완료가 나타납니다 ^^~

 

완료후에 얼마되지 않아 신한카드사로부터 전화가 오네요!?!? 개인 정보 물어보고 본인확인 후에 발급 진행이 완료되었습니다. 2주내에 받아보게 된다고 하네요.

 

수고하셨습니다. 즐거운 혜택 받으세요 ^^~

 

 

>2020.04 - 서북구 성정동 655-20 동경홈피스텔A

 - 급매물과 반값매매TV

 - 대지88.42평, 연152평, 2001년 준공. 제2종일반주거지역. 3F/B0

 - 공시지가 250만원 잡고 89평이면 2.3억

 - 2001년 준공.

 

정리를 하려고 대략 작성을 한 내용이라 무언지 이해가 가지 않는 것이 당연합니다. ㅎㅎ

아래 정리 들어갑니다.

 

 

넵 요청하신 분석 방법에 대해 작성해 보겠습니다~

 

제가 물건 파악하는 방법은 경매, 공매, 급매 등인데요.

급매는 부동산중개소 통해서 많이 보고, 급매물과 반값매매TV 카페를 통해서도 확인을 합니다.

 

이번 물건은 급매물과 반값매매TV에 올라온 자료를 토대로 분석한 내용이었는데요..

사실 정리를 하려고 간단히 올리고 있는 중이었는데 빠른 문의를 주셔서 간단히 작성하겠습니다. ㅎ

 

1. 급매물과 반값매매TV 유튜브에 올라온 동영상을 봅니다.

https://www.youtube.com/watch?v=Z1uJN4A-1qU

영상으로 설명을 많이 해주시고 계시지요. ㅎ

 

원룸건물.. 원룸 몇개 다 채우면 월세 300~400

현 매매가 5.4억. 몇년전 9억 팔라는걸 안 팔았다고..

등 많은 정보를 얻으실 수 있어요.

 

 

2. 주소지 확인.

 

직접 문의를 하셔도 되고, 동영상을 꼼꼼히 보면 주소 확인이 가능합니다.

확인주소지: 충청남도 천안시 서북구 성정동 655-20 동경홈피스텔A

 

 

3. 디스코에서 해당 주소를 검색합니다.

 

 

여기에서 많은 정보를 찾을 수 있습니다.

 

대지88.42평, 연152평, 2001년 준공. 제2종일반주거지역. 3F/B0

 

대지가 꽤 크고, 준공된지는 조금 되었고,

2종일반주거지역이니 몇 평에 몇 층인지.. 불법건축물 가능성도 대략 알 수 있고,

지상 3층에 지하는 없네요.

 

 

4. 토지가격

 

저는 토지가격을 중시(?)하는 타입입니다. 왜냐면 토지가격은 떨어질 수 없기 때문이지요.

그래서 꼭 확인하는 것이 공시지가입니다. 물론 현재 매매가는 아니지만 최하위 가격은 알 수 있는 것이지요.

 

5. 개별공시지가

 

많은 사이트가 있지만 국토교통부 표준지공시지가로 가봅니다.

http://www.realtyprice.kr/notice/gsindividual/siteLink.htm

 

 

작년기준 73만원임을 확인할 수 있지요.

아래쪽에 표기되어 있든 m2당 산정가격입니다.

평당으로 계산하면 대략 240만원대가 나오는데요. 계산하기 편하게 250만원으로 잡았다는 의미였습니다.

 

 

6. 결론. 의견.

 

대지 88.42평으로 평당 250만원이면 공시지가기준으로만으로도 2.3억입니다.

5.4억에 판다고 했으니 건물가격이 3.1억이냐.. 그건 아닙니다.

 

실제 거래되는 토지가격이나 원룸건물 매매가격을 임장을 하여 알아봐야 합니다.

물론 제가 관심있는 물건은 아니라서 더 알아보진 않을 것이지만요 ^^

 

그래서 대략 유추하여 땅값만 3억을 잡는다면 건물가격이 2.4억 정도라고 잡아봐야겠네요.

19년 정도된 원룸건물이라고 봤을 때 적당하다고 볼수도 조금 높다고 볼수도 있는 정도입니다.

향후 부동산 상승기가 온다면 나쁘지 않은 가격은 분명합니다.

철근콘크리트로 지어진 건물이라 좀더 시간이 지나 건물 가격이 떨어진다해도 1억이하로 떨어지기는 힘드니까요.

시간이 지나도 최소 4억 이상은 되는 물건이니 곧 주인을 만나지 않을까 하는 의견이었습니다.

 

감사합니다 ^^*~

 

안녕하세요 BOOX 입니다.

 

오늘은 마인드맵(Mind Map)을 활용한 첫 번째 주제로 "명도"를 다루어 보도록 하겠습니다.

제가 마인드맵을 사용한지는 15년 정도된 것같네요.

업무에서 프로젝트 관리할 때도 사용하고, 통장 자동화 시스템을 만들어 사용할 때도 사용하고,

이런저런 복잡한 생각 정리할 때도 많이 활용했지요 ^^~

 

개인적으로 경매를 진행하면서 뭐니뭐니해도 일순위는 엑셀의 활용이 가장 중요했었구요.

마인드맵과 각종 노트들인 것 같네요.

각설하고!

 

 

 

 

명도에 대해 정리합니다.

명도에 대한 내용은 경매 서적에서 빠지지 않는 부분이죠.. 그만큼 중요한 부분입니다.

그런데 책으로 읽으면 명도를 진행하면서 발생하는 다양한 상황에 대해 선뜻 머리속에 와닿지 않습니다.

나중에 다시 찾아보려해도 어떤 상황에서 어떻게 했어야 했는지 찾기도 어렵지요.

 

그래서 마인드맵으로 뼈대(중심, 진리)를 잡는다고 생각하면 됩니다.

어떠한 상황에서도 흔들리지 않는 축을 만들어두는 것입니다.

 

아래의 마인드맵만 머리 속에 잘 정리하고 있다면, 왠만한 어떠한 명도 처리에서도

중심을 잃지 않고 편안한 마음으로 진행하실 수 있으리라고 자신합니다 ^^~

 

 

0. 명도 전체.

 

 

일단 크게 봅니다. 점유자 존재여부, 점유자 합의 가능 여부, 그리고 누가 점유하고 있는가로 구분하여 진행합니다.

 

 

1. 점유자 존재여부

 

 

점유자가 없을 수도 있느냐구요?? 네 그렇습니다 ^^;; 있지만 만날 수가 없는 경우, 연락이 안되는 경우, 짐만 두고 다른 곳으로 이사간 경우 등 많습니다.

일단, 점유자가 있고 대화든 연락이든 가능한 사람이 좋습니다. 무관심이 무섭다고 연락 안되고 연락처 남겨도 씹고 그러면 기분나빠지고 자꾸 안 좋은 방향으로 흘러가게 됩니다.

 

어떻게 해서는 점유자를 만나서 안내문도 전달하고 합의 명도를 진행하세요. 그게 어떠한 경우에도 가장 쉽고 문제 없이 명도를 끝내는 길입니다.

 

안된다면 어쩔 수 없이 강제집행이라는 카드를 꺼내야 하겠지만요..

다시 말씀드리지만, 만나기 무섭다고 무조건 강제집행 시작하고 그러면 단추를 잘못 끼고 시작하는 것과 같습니다.

경매에서 명도는 필수이므로 어려운 사람들 만나는게 어렵다면 경매는 내 길이 아닌갑네.. 라고 생각하시거나, 입찰시 명도 비용을 고려하고 경매 업체나 명도 전문 업체를 통해서 진행하셔야 합니다.

 

 

2. 점유자와의 합의 가능성

 

 

합의가 잘 이루어져 합의서 등 작성하고 명도 진행하여 온전한 소유 및 점유자가 되었다면 축하드립니다 ^^~

이제 임대를 놓아 수익 창출을 하던 나의 집으로 가꾸든 매도 차익을 보시든 행복한 길만 남았습니다.

 

물론 명도날짜에 안 나가고 약속을 깨는 경우도 있습니다. 이럴 때는 방법없어요 ㅠ.ㅠ 강제 집행 병행하는 방법 밖에는요.. 물론 그래도 한 번 합의점에 이른 적이 있기 때문에 강제 집행을 손에 들고 진행하면 유리하게 진행할 수 있습니다.

아참 어떤 책에서는 무조건 인도명령 및 강제집행을 병행하라고 하는데.. 사람마다 방식이 다르긴 하겠지만, 굳이 그럴 필요는 없다고 봅니다. 잔금납부후 6개월 이내에만 신청하면 되기 때문에 대화가 잘 안 될것 같거나 작은 약속이라도 깨는 경우에 가차없이 진행하면 되니까요..

 

아 물론 먼 지방의 경우, 입찰전 방문했더니 분위기가 영 안 좋았고, 잔금납부하러 가기 전 방문하였는데도 대화가 잘 될 것 같지 않다면, 잔금납부와 동시에 인도명령을 준비하여 강제집행을 병행하는 것이 좋습니다. 실제 강제 집행을 하기 전까지는 취소할 수가 있으니 든든한 버팀목 하나 뒤에 있으면 얼마나 편하겠어요. ㅎ

 

 

 

강제 집행을 진행하면 최소 2번 정도 해당 부동산에 방문하게 됩니다.

 

1차는 집행계고로 문을 따고 들어가서 점유자를 만나서 계고문을 전달하거나 또는 집 안에 계고문을 붙이고 나옵니다.

집행관외 낙찰자와 증인 2명이 같이 가야합니다. 동네의 열쇠 수리공을 불러야 하니 수리공이 무료로 증인을 해주는 경우도 있지만, 돈을 요구하기도 합니다. 미리 증인 동료분들 준비하세요 ^^~

 

2차는 점유자 등의 변동이 없다면 잘 끝날 수도 있고 다시 진행해야 하는 경우도 있겠지만, 어쨋든 최종 강제집행을 하게 되면 집행비용을 포함한 이사짐 빼는 비용, 운송료, 보관료, 매각 비용까지 낙찰자가 부담해야 합니다 ㅠ.,ㅠ;

 

물론 비용 요청 소송을 진행할 수 있겠지만, 강제 집행까지 불사할 정도로 온 경우라면 받기 쉽지 않다고 생각해야 합니다. 그래서 가능한 합의하여 마무리하는 것이 서로에게 좋습니다.

 

 

3. 점유자에 따라 다르게

 

'

위 1,2번에서는 점유자가 누구냐에 관계없이 대응할 수 있는 내용이었다면, 이번에는 점유자가 누구냐에 따라 대응하는 전략입니다.

 

우선 전 소유자가 점유중이라면, 방법이 없습니다. 대화로 잘 풀어야 해요.

안되면 강제집행이지만 서로 출혈이 커지니까요..

 

 

 

점유자가 임차인인 경우, 배당 여부가 가장 중요합니다. 배당을 받는 임차인은 이사도 무조건 나가야 하고, 최종적으로 명도를 실행한 이후에 낙찰자에게서 명도확인서와 인감증명서를 받아가야 배당을 받을 수 있기 때문입니다.

이런 경우 임차인과 대화하기도 편하고, 못 받는 비용이나 이후 진행 상황들에 대해 잘 얘기해주면 임차인 분들은 좋아하십니다.

 

배당을 받지 못하는 경우에는, 선순위임차인이야 이미 내가 물어줄거 생각하고 입찰했으니 크게 문제는 없죠.

문제는 후순위임차인이죠.. 돈을 탈탈 털리고 만 분들 ㅠ.,ㅠ;

그런데 이런 경우 이미 입찰 전 권리분석 단계에서 알 수 있는 거잖아요.. 무조건 낙찰받겠어 라며 높게 책정하지 마시고, 힘든 사람들 도와준다 생각하고 충분한 여유를 가지고 입찰가를 산정해서 진행하세요. 안 그러면 스트레스가 너무 크잖아요..

 

 

 

마지막으로 제3자가 점유중인 경우는 복잡해질 수 있습니다. 성립하느냐 안 하느냐에 무관하게 질질 끌리고 힘들어질 수 있는 싸움이기 때문에, 자신이 없다면 입찰부터 하지 말거나 1년이상의 싸움을 생각하고 천천히 진행을 해야 합니다.

 

 

가장 큰 핵심은 대화로 원만히 해결하자 이겠네요..

그 다음은 임차인 조건에 따른 대응 전략이라고 할 수 있겠습니다.

 

 

전체를 정리하고 마칩니다. ^^~

새벽에 졸린 와중에 작성해서 틀린 부분이 있는지 모르겠네요.. 알려주시면 수정하도록 하겠습니다.

감사합니다.

 

 

카페 회원분의 권리분석 요구가 있어서 답변 드린 내용 공유합니다 ^^~

 


 

안녀하세요.

경매 초보라 여기저기 정보를 찾아다니다 조언을 듣고자 문의드립니다.

 

아래 내용에 대해서 권리분석을 부탁드립니다.

 

권리사항이나 소멸.

기타 관계된 모든 사항이 궁금합니다^^

 

의정부지방법원

2019타경24134 

 

 

 

 

 

 

 

이 물건 입찰해도.. 낙찰 받아도 될까요?

 

 

 

 

 

 

안녕하세요 주인장 BOOX 입니당 ^^~ 반갑습니다.

문의주신 의정부지방법원 2019타경24134에 대해 분석 및 개인적인 의견을 답변드리겠습니다.

 

 

 

1. 권리분석

소재지: 경기 가평군 청평면 대성리 88-3 외 1개 목록.

 

채권자: 화도농협. 청구금액 259,957,265원

소유자: 이은희

채무자: 김OO

토지1: 대성리 88-3 대지 957m2 (289.49평)

토지2: 대성리 산74-33 임야 1445m2중 871.333/31561 => 지분 40m2 (12.07평) 현황: 도로

감정평가액: 362,305,540원

 

채무자는 해당 토지에 대해 화도농협에서 대출을 받았는데, 이자 감당을 하지 못하여 연체가 발생하여 경매가 진행되었습니다.

현재 88-3 필지에 대한 대지는 권리분석 문제는 없습니다. 낙찰금액은 채권자인 화도농협에 배당 되고 인수할 권리는 없습니다.

산74-33은 현황 도로이며 단지내 공유 도로를 위해 조성된 것으로 지분인 것을 명확히 아신다면 권리 문제는 없습니다.

 

 

2. 시세, 인근거래사례

 

청평면 대성리 88-5 필지(224.76평)가 2012년 7월 31일에 3.45억에 매매 거래 내역이 있습니다.

지도등으로 보았을 때는 아직도 주택을 짓거나 하지는 않은 것으로 보이네요.

거래가 많지 않고, 시세 파악이 쉽지 않은 지역으로 인근 부동산중개소 여러군데 방문하여 충분히 시세파악이 필요합니다.

현 위치가 289.49평이고 개별공시지가가 평당 120만원을 넘으니, 가격적인 메리트는 충분히 있어 보입니다.

 

 

3. 의견

 

우선 낙찰받아도 될까요?에 대한 답을 드리자면, 낙찰받으면 안되는 경매 물건은 0.01%이하일 정도로 문제되는 경우가 굉장히 적습니다.

 

낙찰을 얼마의 입찰가로 받는 것이 적당한가와 그리고 낙찰을 받은 이후에 처리할 일들을 해결할 자신이 있는가가 중요합니다.. 여기에서 초보와 고수의 차이, 그리고 돈을 잃는 자와 돈을 버는 자의 차이가 발생합니다.

 

예를 들어, 시세 3억짜리 물건을 2억에 낙찰받아 5천에 해결할 수 있으면 5천을 버는 것이고, 해결을 못해 1억 이상을 들게 될 것 같으면 손해를 보거나, 눈물을 머금고 장기 보유를 해야하는 상황이 발생하는 것이죠..

 

 

해당 물건은 펜션 또는 전원주택 단지를 조성하려 계획된 필지중 1필지와 도로의 지분 물건으로 보입니다.

이런 물건은 여러번의 임장은 필수입니다. 걱정할만한 권리 문제는 없습니다.

 

목적을 명확히 하여야 합니다.

구매해서 펜션을 지어 운영하시려 건가요. 전원주택을 짓고 사시려는 건가요. 그냥 토지 매매 차익을 보려는 건가요.

 

 

제 의견을 말씀드리자면, 초보시라면 추천해드리지 않습니다.

 

주변 거래되는 토지 시세보다 입찰가가 낮아진 것은 맞으나, 거래가 많지 않은 위치입니다.

건물을 지어 운영하려 해도 알아야 할것과 해야할 것과 엄청난 자금이 투자되어야 하며,

주변이 아직 정비되지 않은 상황이라 그런것까지 감수하고 들어가야 합니다.

 

펜션을 짓는다면 건축 완료 후에도 펜션 운영 노하우를 알지 못하면 위험합니다.

 

저렴히 낙찰받아 매매차익을 보겠다면, 충분한 자금이 있어 장기적인 시각으로 지켜보겠다면 괜찮습니다.

하지만 경락잔금 등을 활용하여 빠른 매매 차익을 보려는 것은 묶여버릴 수 있기 때문에 역시 위험하다 하겠습니다. 상기 채무자도 이자를 감당못해, 또는 감당하지 않기 위해 경매로 넘어갔으니 말이지요.

 

금번 입찰에서도 유찰 가능성은 농후해 보입니다.

자금력이 되어 묻어두고 싶다면 2억 전후로 입찰해 볼 수는 있겠습니다.

 

좋은 판단하시길 바라며, 즐거운 경매하시길 바랍니다 ^^~

 

 

답변에 대한 고마움을 표시해 주셨네요 ^^~


 

맞는 말씀이시네요.
투자목적이 아니라 향후 거주목적으로 투찰계획을 세웠는데, 현 경제상황이나 자금 묶이는걸 고려하면.. 흠...

명쾌한 분석에 다시한번 감사드립니다.^^

 

+ Recent posts