전체 글

달싹이의 IT공부&기록 블로그입니다! 함께 소통하며 공부해요^^ 오늘도 1일 1지식 늘려볼까요?
※ 앞서 해당 회고록은 프로젝트 진행을 하며 내용을 추가&수정 혹은 다른 포스팅으로 분리해서 쓸 수도 있음.애자일 방법론을 겪으며,,,지금까지는 프로젝트를 한 단계가 끝나면 다음단계로 넘어가는 워터폴 방법론과 유사하게 대략 다음과 같이[계획 →  요구사항 분석 → 설계 → 구현 → 테스트 →  배포 → 유지보수] 같은 방식으로 개발을 진행했었고, 익숙해져 있었다. 그러다보니 애자일 방법론을 처음 겪으면서 혼란스럽고, 익숙하지 않아 몇번 시행착오를 겪었다.이번 게임 개발 프로젝트에서는 주로 스크럼 프레임워크를 사용하여 애자일 방법론을 실천하였고, 조금씩 XP도 섞인 것 같다. 애자일은 시스템에서 당장 필요한 핵심 기능들을 빠르게 정해 한번의 스프린트 기간동안 목표치만큼 구현한다.그 산출물로 시스템이 잘 돌..
처음에 봤을때는 많이 헷갈렸는데 계속 파고드니 이해가 되는 느낌이다. Pixels Per Unit는 유니티 엔진으로 원본 이미지 스프라이트를 넣었을 때, 원본 이미지 픽셀을 유니티 월드 단위로 매칭시키는 수치를 정하는 항목이다.1이면 유니티 월드 단위 1에 실제 이미지 1픽셀을 매칭시키는 것이고,100이면 유니티 월드 단위 1에 실제 이미지 100픽셀을 매칭시키는 것이다.Pixels per Unit 값이 1일 경우 유니티 월드 단위에서 1픽셀이 실제 이미지의 1픽셀과 일치한다.월드 상의 1단위에 이미지의 모든 픽셀이 그대로 표현되어, 이미지의 크기가 커지며 원본 크기에 비례하여 디테일이 그대로 전달된다.Pixels per Unit 값이 100일 경우유니티 월드 단위에서 100픽셀이 1단위에 대응된다.같은..
1. Mathf.AbsMathf.Abs(float value)value: 절댓값을 구할 대상설명value가 양수면 그대로, 음수면 양수로 바꿔서 반환한다. 예시 코드float negativeValue = -5.2f;float absValue = Mathf.Abs(negativeValue);// absValue는 5.2f 2. Mathf.ClampMathf.Clamp(float value, float min, float max)value: 범위 안에 맞춰야 할 값min: 최소값max: 최대값설명value가 min보다 작으면 min, max보다 크면 max를 반환하고, 범위 안이면 그냥 value를 반환한다. 예시 코드float rawValue = 15f;float clamped = Mathf.Clamp(r..
1. 강한 형식 검사(Strong Typing)이란변수나 함수의 타입이 엄격하게 적용되는 방식을 말한다컴파일러나 런타임에서 타입 불일치가 발생하면 에러가 난다의도치 않은 형 변환이 자동으로 일어나지 않아, 코드의 안정성과 유지보수성이 높아진다C# 예시int number = 10;// number는 int 타입이므로 문자열 대입이 불가능number = "Hello"; // 컴파일 에러이처럼 강한 형식 언어에서는 타입이 다른 값을 넣으면 에러가 발생한다. C++ 예시int number = 10;// number는 int 타입이므로 문자열 대입이 불가능number = "Hello"; // 컴파일 에러C++도 마찬가지로 강한 형식 검사를 한다. 2. 약한 형식 검사(Weak Typing)이란변수에 어떤 타입..
1. ?? 연산자 (null 병합 연산자)좌측 값이 null인지 먼저 확인한다.null이면 우측 값을 반환하고, null이 아니면 좌측 값을 그대로 반환한다.예를 들어 어떤 값이 null일 때 대신 쓸 기본값을 지정하기에 편리하다.float? nullableValue = null;float result = nullableValue ?? -1f; // nullableValue가 null이므로 -1f가 반환됨Console.WriteLine(result); // -1 출력nullableValue = 10.5f;result = nullableValue ?? -1f; // 이번엔 null이 아니므로 10.5f 유지Console.WriteLine(result); //..
1. Nullable란 무엇인가C#에서 기본적인 값 형식(int, float, bool 등)은 null을 가질 수 없다. 하지만 가끔 “값이 없는 상태”를 표현해야 하는 상황이 생긴다. 예를 들어, 데이터베이스 컬럼에 null이 들어갈 수 있는 경우나, 특정 시점에 값이 ‘아직 정해지지 않았다’는 것을 표현하고 싶을 때가 있다.이때 Nullable 구조체를 사용하면 값 형식에도 null을 할당할 수 있게 된다. Nullable나 Nullable처럼, T가 어떤 값 형식이든 null을 허용하는 타입으로 확장해 준다. 2. 축약형: T?Nullable는 자주 쓰이기 때문에, C#에서는 축약 형태로 T?를 제공한다. 예를 들어 Nullable 대신 float?를 쓸 수 있다. 둘 다 같은 의미이지만, T?가 ..
블렌더 이해오픈소스 SW, 무료!블랜더는 Viewport에서 작업2가지 모드Object Mode → 오브젝트 전체를 변환Edit Mode → Vertex-Edge-Face(점-선-면)을 변환Move, Rotation, Scale [G, R, S] 공통 사용마우스좌 클릭: 오브젝트 선택우 클릭: 모드 기능 선택 창휠 클릭: 카메라 시점 이동Shift+휠: 카메라 위치 이동단축키오브젝트도형 생성: Shift+A복제: Shift+D삭제: Delete시점 이동통합 키: Shift+`키패드(Ctrl과 함께 누르면 반대 시점)정면: 1 | 뒷면: Ctrl+1Right View: 3 | Left View: Ctrl+3탑뷰: 7 | 백뷰: Ctrl+7백뷰: 9 | 탑뷰: Ctrl+9Object Mode기초 Mesh 형..
[프로그램 빌드 도구]전처리기 (Preprocessor)소스 코드에서 #include, #define 등과 같은 전처리 지시어를 처리하고, 소스 파일을 전처리된 상태로 만든다.전처리 결과는 전처리된 소스 파일로 나타난다.컴파일러 (Compiler)전처리된 소스 파일을 어휘 분석, 구문 분석, 의미 분석을 통해 어셈블리 언어(Assembly Code)로 변환한다.이 과정에서 소스 코드가 어셈블리 코드로 변환된다.어셈블러 (Assembler)어셈블리 코드를 기계어(Machine Code)로 변환하고, 각 소스 파일마다 오브젝트 파일(Object File)을 생성한다.이 파일은 CPU가 직접 이해할 수 있는 기계어 코드와 메타 데이터를 포함하고 있다. (확장자 .obj 또는 .o)링커 (Linker)여러 개의..
달싹이
달에서 싹을 틔우다