티스토리챌린지 21

Closure와 Decorator

이번 포스트에서는 클로저와 데코레이터에 대해 알아보겠습니다. 1) 클로저와 데코레이터란?클로저는 함수안에서 함수를 반환하는 경우에, 반환되는 함수를 일컫는 말입니다.주로 재귀함수나 함수를 순차적으로 실행하는 경우에 사용할 수 있는데이를 통해 재사용성이 높은 함수 구조를 만들 수 있습니다. 데코레이터는 함수를 확장하는 함수로서 @ 기호를 사용하여 어노테이션으로 사용할 수 있습니다.주로 반복되는 작업을 여러 함수에 적용하는 경우나 또는기존 함수를 수정하지 않고 추가구현하는 경우에 사용이 가능합니다. 이제 예제를 통해 클로저와 데코레이터를 사용해보겠습니다. 2) 클로저의 예제클로저를 통해 간단한 곱셈을 수행하는 함수를 만들어보겠습니다.def Mul(m): def closure(n): retu..

Python 2024.11.17

인코딩과 디코딩

이번 포스트에서는 파이썬을 통한 인코딩과 디코딩을 알아보겠습니다. 1) 인코딩과 디코딩이란?우선 인코딩과 디코딩이 무엇인지 알아보겠습니다.인코딩은 사람이 인지할 수 있는 형태의 데이터를 컴퓨터가 이해할 수 있는 형태로 변환하는 것을 의미합니다.인코딩은 다른 말로 코드화, 암호화, 부호화 등으로 표현할 수 있습니다. 디코딩은 인코딩과는 반대로 동작합니다.컴퓨터가 이해할 수 있는 형태에서 사람이 인지할 수 있는 형태로 변환하는 것을 의미합니다.다른 말로 역코드화, 복호화 등으로 표현할 수 있습니다. 이때 인코딩과 디코딩의 방식은 같은 방식으로 이뤄져야 합니다.만약, 인코딩을 UTF-8 방식으로 진행했다면 디코딩 역시 UTF-8 방식으로 진행해야 합니다.이제 예제를 통해 파이썬에서 인코딩과 디코딩이 어떻게 이..

Python 2024.11.16

자료형 어노테이션

기본적으로 파이썬은 변수의 자료형 문제에 대해서 자유롭습니다.그렇지만 프로젝트의 규모가 커지고 협업을 하는 상황이 되면파이썬의 자유로운 방식은 소통의 불화를 불러오는 문제를 일으킬 수 있습니다.이런 상황을 위한 어노테이션에 대해 알아보겠습니다. 1) 어노테이션이란?변수를 선언할 때 그 타입을 명시적으로 선언해 줌으로써어떤 타입의 값이 지정될 것인지 직접 알려주는 것이 어노테이션이라고 합니다. 어노테이션을 사용하게 되면 가독성과 협업시의 효율성이 높일 수 있습니다.파이썬의 경우 3.5 버전부터 어노테이션을 사용할 수 있습니다. 2) 파이썬의 어노테이션과 예제파이썬의 어노테이션 방식은 다음과 같습니다.변수의 경우 아래의 방식을 사용하고변수이름 : 자료형 = 변수의값 함수의 경우 다음의 방식을 사용합니다.de..

Python 2024.11.15

iterator와 generator

이번 포스트에서는 iterator와 generator에 대해 알아보겠습니다. 1) iteratoriterator는 집합에서 차례대로 값을 꺼낼 수 있는 객체를 말합니다.iterator는 집합의 크기가 매우 크고 데이터의 양이 아주 많을 때 일일이 그 집합을 사용하지 않고 필요한 값을 뽑아 사용합니다.이 방식은 메모리에도 부담을 덜 주기에 집합이 큰 경우에 아주 효율적입니다. iterator의 경우 반복이 가능한 객체에만 사용할 수 있는데,이러한 객체의 상태를 'iterable하다' 라고 표현할 수 있습니다. iterator는 다음의 2개의 함수로 동작합니다.iter() 함수를 통해 객체를 반복 가능한 객체로 변환합니다.next() 함수로 객체의 값을 뽑아올 수 있습니다.그리고 가장 중요한 것은 한번 ne..

Python 2024.11.14

언리얼 엔진에서의 광원과 설정

이번 포스트에서는 언리얼 엔진에서의 광원들과 특징 그리고 광원의 설정들을 알아보겠습니다.언리얼 엔진에서는 기본적으로 아래와 같은 5개의 광원을 제공합니다.  1) Directional LightDirectional Light는 태양과 같은 영구 광원의 역할을 생성합니다.평행한 그림자를 만들어 낼 수 있으며temparature를 조작하여 낮게 조작하면 밝은색, 높게 조작하면 어두운색을 만들어냅니다.ctrl + L 키를 눌러 해의 위치를 조작할 수 있습니다. Directional Light의 Mobility 설정은 다음과 같습니다.static의 경우, 빛을 조작할 수는 없지만 빠르게 빛을 렌더링할 수 있습니다.stationary의 경우, 빛의 위치를 변경할 수는 없지만 빛의 색과 세기는 변경할 수 있습니다...

싱글톤 패턴

규모가 있는 식당을 떠올려보면 많은 직원들이 식당의 사장님에 의해 고용되어 근무합니다.그리고 그중에서는 지배인처럼 다른 직원들을 관리하는 직원이 존재합니다.일반적인 경우 지배인의 수는 그리 많지 않은 편입니다. 싱글턴은 식당에서의 지배인의 역할을 수행합니다.유일성이 보장되는 인스턴스로서 싱글턴은 주로 다른 데이터를 제어하거나 관리하는 역할을 수행합니다.이번 포스트에서는 싱글톤 패턴을 사용하는 방법을 예제를 통해 알아보겠습니다. - Unity를 통한 싱글톤 패턴의 구현제일 먼저 Player에게 붙어있을 Player 컴포넌트의 코드입니다.public class Player : MonoBehaviour{ private void Start() { Managers managers = Man..

컴퓨터 구조 2024.11.12

Collision과 Trigger

Unity를 다루다 보면 물리 충돌은 매우 빈번하게 일어납니다.물리 충돌은 게임에서 무언가를 판단하는 매우 중요한 기능이므로 물리 충돌 없이는 사실상 게임이 돌아가지 않는다고 봐도 무방할 정도입니다. 그리고 Unity에서는 이러한 충돌을 위해 2가지의 기능을 제공합니다.오늘은 위의 2가지 기능과 그 차이를 중점으로 한번 알아보겠습니다. 1) CollisionCollision은 실제 물리 충돌을 판단합니다.총알이 피격당하거나 휘두른 검에 맞는 등의 실제 물리 충돌을 판단하는 것이 바로 Collision입니다. Collision의 경우 판단하는 함수는 OnColiisionEnter() 입니다.그렇다면 판단하는 조건에 대해서도 알아봐야 하는 것이 당연합니다.Collision의 판단 조건은 다음과 같습니다. 충..

마우스 입력을 통한 캐릭터 이동

이번 포스트에서는 마우스 입력을 통한 캐릭터의 이동을 알아보겠습니다.조금만 응용해도 모바일 환경에서의 터치에 대한 입력으로도 변형이 가능한 유용한 예제입니다. 1) 소스코드public class PlayerController : MonoBehaviour{ bool moveToDest = false; Vector3 destPos; private void Update() { OnMouseDown(); if (moveToDest) { MovePlayer(); } } void OnMouseDown() { if (Input.GetMouseButtonDown(0)) { ..

Git을 통한 형상관리 - (3) 스테이징

저번 포스트에서는 Git에 대한 정보를 모아놓은 메타 데이터인 config 파일에 대해 알아보았습니다.이번에는 작업을 리포지터리에 올려놓기 위한 중간단계인 스테이징에 대해 알아보겠습니다.  1) 작업 파일을 추가하기 전 git status 실행한 결과는 위와 같습니다.변경사항이 없기 때문에 아무것도 없다고 얘기하고 있습니다.이런 상황에서 파일을 생성한 후 다시 git status를 실행하겠습니다.  실행한 결과 파일이 추가되었지만 untracked 즉, 추적되지 못하고 얘기하고 있습니다.따라서 git이 파일에 대한 변경사항을 추적할 수 있게 해줘야 합니다.이를 위한 명령어는 다음과 같습니다(두 번째 명령어는 전체 파일을 대상으로 합니다).git add 파일명git add . 위의 명령어를 바탕으로 한번 ..

etc 2024.11.09

Git을 통한 형상관리 - (2) gitconfig 알아보기

https://monstrosite.tistory.com/80 Git을 통한 형상관리 - (1) 간단한 명령어형상관리 영어로는 Version Control은 작업물에 대한 여러가지 변경사항을 추적하고 저장하는 방법입니다.많은 형상관리 방법이 있지만, 일반적으로는 Git을 통해 이를 구현하는 경우가 많습니다. Gmonstrosite.tistory.com이전 포스트에서 배운 git init 명령어를 사용하면 해당 경로에 리포지터리가 생성되는 것을 확인하였습니다.그리고 생성된 .git 폴더 안에는 여러가지 파일들이 존재합니다.이번 포스트에서는 이 폴더안의 요소들 중에서 config 파일에 대해 알아보겠습니다. config 파일은 리포지터리와 관련된 정보를 담아놓은 파일입니다.여기서의 정보는 이메일이나 사용자 ..

etc 2024.11.08