본문 바로가기

전체 글325

C# 반복문 for와 while의 차이 for와 while은 C#에서 반복문을 구현하기 위해 사용되는 두 가지 주요한 키워드입니다. 이들은 비슷한 목적을 가지고 있지만 사용 방법과 사용 시기에서 차이가 있습니다. for 루프는 초기화, 조건식, 반복 후 작업을 담은 블록으로 구성됩니다. for 루프의 일반적인 구문은 다음과 같습니다.초기화: 반복문이 시작될 때 한 번 실행되는 초기화 구문입니다. 일반적으로 카운터 변수를 초기화하는 데 사용됩니다.조건식: 반복이 진행될지를 결정하는 논리식입니다. 조건식이 참(true)인 경우 반복이 계속되고, 거짓(false)인 경우 반복이 종료됩니다.반복 후 작업: 반복 실행 후에 한 번 실행되는 작업입니다. 보통 카운터 변수를 업데이트하는 데 사용됩니다.for 루프는 반복 횟수를 미리 알고 있는 경우에 주로.. 2023. 7. 26.
유니티 Unity GetComponent 컴포넌트 찾는 함수 Unity 엔진에서 GetComponent는 주어진 게임 오브젝트에서 특정 컴포넌트를 찾아오는 함수입니다. 게임 오브젝트에 붙어있는 스크립트나 컴포넌트를 가져올 수 있게 해주는 함수입니다. T GetComponent(); 여기서 T는 가져오려는 컴포넌트의 타입을 나타냅니다. 이 함수를 호출하면 해당 게임 오브젝트에서 지정한 타입의 컴포넌트를 찾아옵니다. 만약 해당 컴포넌트가 없을 경우 null을 반환합니다. 만약 부모나 자식 오브젝트에서 컴포넌트를 가져오려고 한다면 아래 함수를 사용하시면 됩니다. GetComponentInParent GetComponentInChildren 예를 들어, 플레이어 캐릭터가 PlayerMovement라는 스크립트를 가지고 있을 때, 다음과 같이 GetComponent를 사용.. 2023. 7. 26.
C# 문제 1. 구구단 for 반복문 2단부터 9단까지 반복문을 활용해 구구단 출력해봅시다. 출력 예)아래에 구구단 출력 코드!!                 풀이 2023. 7. 26.
C++ 언어 소개: 기본 개념과 특징, 커리큘럼(공부 순서) C++은 C 언어를 확장한 객체 지향 프로그래밍 언어입니다. 시스템 프로그래밍, 게임 개발, 임베디드 시스템, 대규모 응용 프로그램 등 널리 사용되고 있는 강력하면서도 유연한 언어입니다.1. 객체 지향 프로그래밍 (OOP)C++은 객체 지향 프로그래밍(OOP)을 지원하는 언어로, 코드를 객체 단위로 모듈화하고, 객체들 간의 상호 작용을 통해 프로그램을 구축하는데 초점을 둡니다. 이로 인해 코드의 재사용성이 높아지고 유지 보수가 용이해집니다.2. 클래스와 객체C++에서 클래스는 데이터와 해당 데이터를 다루는 함수들을 묶어 놓은 사용자 정의 자료형입니다. 클래스를 통해 객체를 생성할 수 있으며, 객체는 클래스의 인스턴스로 해당 클래스에 정의된 속성과 기능을 가지게 됩니다.3. 상속과 다형성C++은 상속을 .. 2023. 7. 25.
C#의 기본 자료형, 데이터 형식 DataTypes C#에서는 기본적으로 다음과 같은 데이터 타입들이 제공됩니다. 데이터 타입(Data Types)정수형 타입: int, long, short, byte 등이 있으며, 정수 값을 저장합니다.부동 소수점 타입: float, double, decimal이 있으며, 실수 값을 저장합니다.문자형 타입: char는 단일 문자를 저장하며, string은 문자열을 저장합니다.논리형 타입: bool은 참(True) 또는 거짓(False) 값을 저장합니다.데이터 타입은 변수의 크기와 저장 방식을 결정하며, 변수에 할당되는 값의 유효 범위를 제한합니다. 예를 들어, int는 32비트 정수를 저장하며, bool은 true 또는 false만을 저장할 수 있습니다. 2023. 7. 25.
unity 회전, Euler와 Quaternion unity에서 게임 오브젝트를 회전시키려면 보통 transform 컴포넌트에 있는 Vector3로 표현된 rotation값을 활용합니다. 하지만 이는 어디까지나 unity 에디터에서 제어할 때의 얘기이고, 코드를 통해 제어하려하면 Vector3의 x, y, z값으로 제어가 안되어 당혹스러움을 감출 수가 없습니다. 이유인 즉슨 rotation 자체는 Vecto3가 아니라 Quternion이기 때문입니다. 형식이 다르니 당연히 문제가 생기는거죠. 아니 그냥 Vector3 x,y,z 축만 써도 충분한데 왜 굳이 rotation을 Quaternion형식으로 만들어놨을까요?? 우리가 unity에서 쓰고 있는 Vector3를 통한 회전은 수학자 Euler에 의해 고안된 Euler방식을 쓰고 있습니다. 물론 이 Eu.. 2022. 9. 19.
c#_49 델리게이트 , 델리게이트 체인 Delegate 델리게이트는 함수를 대신해서 호출해주는 대리자입니다. 직접 함수를 호출하는 것이 아닌 함수 호출시 매개변수로 함수를 참조하여 호출합니다. 좀 더 쉽게 보자면 함수를 담아둘 수 있는 변수라고도 볼 수 있겠네요.아래의 예제를 통해서 살펴보시죠.위 예제에서 보듯 델리게이트는 함수를 다른 함수로 전달할 수 있습니다. 이 델리게이트에 함수를 대입함으로써 함수의 주소가 델리게이트에 할당이 되고 델리게이트를 매개변수로 넘겨 함수를 대리호출하게 됩니다.단 주의해야 할 점은 델리게이트의 매개 변수 타입과 갯수 그리고 반환 형식이 전달하고자하는 함수와 동일해야 합니다.        이 델리게이트는 다양하게 활용할 수 있지만 흔히 콜백 함수로써 활용됩니다. 어떤 이벤트가 발생했을 때 그 이벤트와 연관된 함수들을 등록해두고 .. 2022. 2. 14.
c#_48 일반화 Generalization <T> 자료구조를 배우셨다면 아마 List, Dictionary 등 라는 것을 접해보셨을 겁니다. 자료구조를 활용할 순 있지만 가 무엇인지 모르고 쓰는 경우도 있으리라 생각이 듭니다. 저 역시 그런 경우였구요. 그래서 이 제너릭에 대해서 알아보고자 합니다. 보통 클래스를 만들게 되면 클래스에 포함된 모든 데이터들의 타입을 정해주게 됩니다. 아래 예제처럼 말이죠.        하지만 클래스의 역할에 따라선 일부 데이터들의 타입이 여러가지가 필요한 경우들이 있습니다. 예를 들어 정수형 타입 int를 매개 변수를 받아 더하는 함수가 포함된 클래스가 있다면 int 타입 외에는 처리를 할 수가 없습니다. 그렇다고 같은 역할을 하는 클래스를 하나 더 만드는 것도 낭비입니다. 그래서 필요한 것이 바로 입니다. 제너릭를 통.. 2022. 2. 11.
c#_47 ?. ?? Null 조건 연산자 먼저 ?. 연산자에 대해 알아보도록 하겠습니다. ?. 연산자는 해당 객체가 Null이면 Null을 반환하고 아니면 값을 반환합니다. 이 연산자를 활용하면 if문을 사용해서 null체크를 하지 않고도 간단하게 null체크를 할 수가 있습니다. 더불어 에러 발생도 예방할 수 있습니다.위 예제에서 보듯 해당 객체가 비어있다면 null을 반환하고, 아니면 해당 객체의 속성 값을 반환하거나 함수를 호출합니다. ?.의 경우 리턴을 받게되는 변수가 Null타입을 가질 수 있는 리턴 변수여야 합니다. 그렇지 않다면 활용할 수 가 없습니다. 그래서 ?? 연산자와 함께 활용합니다.        if문을 통해서 tc가 null인지 아닌지 체크할 필요없이 ?.연산자를 통해 해당 객체를 판별하고 ??와 함께 활용하여 판별 결과.. 2022. 2. 8.
c#_46 삼항 연산자 삼항 연산자에 대해 알아보도록 하겠습니다. 말그대로 세 개의 항으로 이루어진 연산자 입니다. 이 삼항 연산자를 활용하면 if~else문의 비교적 긴 코드를 짧게 줄일수가 있습니다.   예를들어 위 예제와 같은 코드가 있다면 이를 아래의 코드처럼 줄일수가 있습니다.a > b 부분은 조건식이 되고 만약 이 조건이 참이라면 ? 뒤의 항 중 왼쪽항을 반환, 아니라면 오른쪽항을 반환하게 됩니다. 당연하게도 위의 결과는 false가 출력이 될겁니다. 굉장히 쉽죠? ㅎ 하지만 코드엔 정답이 없으니 본인 취향이나 프로젝트 성향에 따라 맞춰서 활용하시면 될 것 같네요. 결과는 똑같으니깐요^^ 2022. 1. 26.
리팩터링이란?? Refactoring 리팩토링? 사실 코딩을 하면서 리팩토링이란 용어를 잘 들어보진 못했다. 코딩지식이 얕다보니 모르는 것들이 너무 많습니다. ㅜㅜ 그나마 최근에 와서야 리팩토링, 리팩토링 하길래 간략하게나마 알아본 게 전부입니다. 구글 신 검색 결과 "리팩터링(refactoring)은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. ... 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다." 라고 하네요. 그러니까 이미 작성한 코드와 코드의 구조들을 더욱 효율적으로 만드는 것이라고 할 수 있겠네요. 그래서 이 리팩터링을 해야하는 이유는 다음과 같습니다. 결과 지향적으로 코드를 작성하게되면 구조가 망가지게 되.. 2022. 1. 21.
프로그래밍 동기와 비동기 동기와 비동기에 대해선 프로그래밍을 배워본 사람이라면 그 개념을 잘 모르더라도 한번쯤은 들어봤을 단어일 것입니다. 저 역시도 계속 들어왔던 단어지만 그 개념은 아예 모르고 있었으니 말이죠. 그래서 동기와 비동기에 대해 정리해 보았습니다. 자 먼저 동기와 비동기는 프로그램에서 데이터를 받는 방식입니다. 쉽게는 데이터를 동시에 처리하느냐 아니냐에 따라서 나뉩니다. 동기 : synchronous 동기는 데이터를 동시에 처리한다고 했지만 그보단 데이터를 순차적으로 처리한다고 보는게 맞을것 같습니다. 만약에 서버에 데이터를 요청하면 그 데이터가 올 때까지 다른 작업은 수행하지 않는 것이죠. 데이터가 서버로부터 온다면 그 다음 작업들을 처리하게 됩니다. 개념은 아주 쉽죠?? 장점의 경우 설계도 쉽고 직관적이지만 요.. 2022. 1. 12.
반응형