본문 바로가기
728x90

분류 전체보기79

코인 자동 매매 프로그램 개발 후기 자동 매매 프로그램 관련 게시물 코인 개발 코인 자동매매 프로그램, 프레임 워크 작업 주식 자동 매매 후기 개인 프로젝트, 주식 자동 매매 프로그램 역시나 쉽지 않았다. 이번에는 과거 주식 프로그램을 만들 던 것과는 다르게 가능성을 보았습니다. 하지만 포기한 이유는 단순했습니다. 개발 기간 중 지속적으로 발생되고 있는 하락장 도저히 떠오르지 않는 아이디어 결과적으로 현재 근무하고 있는 회사 프로젝트의 데드라인 우크라이나 전쟁 때부터, 코인 시장도 영향을 받는다는 것을 처음 알았습니다. 하락 중에도 변동성이 큰 시장이라 생각보다 큰 문제는 없었습니다. 하지만 아이디어에서 문제가 생겼습니다. 이곳 저곳 아이디어가 될만한 정보를 알아보고 했지만, 동시에 제가 다니고 있는 회사의 프로젝트가 막바지에 다다라서 잠.. 2022. 9. 18.
RTS-Craft, 1. 프로젝트 생성 기본 세팅 개인 프로젝트 제작을 위해서는 아래와 같이 기본적인 환경 구성이 필요합니다. 프로젝트 생성하기 1. 유니티에서 아래와 같이 생성한다. 폴더 구성하기 아래와 같이 폴더를 구성해준다. Scenes: 씬 파일 분류 Scripts: 스크립트 파일 분류 Resources: 런타임 중, 로드될 리소스 파일 분류 StaticResources: Resources 폴더와 반대로 순수 보관만 하여도 이상 없는 리소스 파일 분류 Resources 폴더와 StaticResources 폴더의 차이? Resources 폴더는 유니티에서 지원하는 예약어 폴더로 해당 폴더 안의 파일들은 상시 메모리를 점유하고 있으며, 파일이 많을 수 록 빌드 크기가 증가합니다. Resources.Load()로 접근하기도 편하지만, 반대로.. 2022. 9. 17.
유니티로 스타크래프트 만들기(RTS Craft) RTS 게임 제작 유니티를 통한 개인 프로젝트로 간단한 RTS 게임을 만드려고 합니다. 만드는 과정을 게시물로 올릴 예정이며, 오래 걸리지 않고 가벼운 프로젝트로 접근할 생각입니다. 최종적으로 해당 프로젝트 완성본은 개인 GitHub를 통하여 공유할 예정입니다. 준비물 이미지 리소스 유니티 버전 2021.3.10f1 (LTS) 프로젝트 GitHub: https://github.com/MDJ0126/RTS-Craft 1. 리소스 이번 프로젝트에서 사용할 리소스는 무료 리소스로 알아봤습니다. 무료면서 괜찮은 리소스를 찾는데 생각보다 시간이 걸렸네요. 검색하면 많이 나오지만, 괜찮은 것은 없으니 여기에서 만족하자!라는 생각으로 접근 :) 'https://www.kenney.nl/assets/tower-defe.. 2022. 9. 17.
'Call by value'와 'Call by reference'의 차이 함수 호출 방법은 크게 두가지가 있다. Call by value(값에 의한 호출) Call by reference(참조에 의한 호출) 이를 설명하기 위해, 많은 교재에서는 그림으로 예시를 들고 있다. 예를 들어, 컵에 물을 채워서 이 물을 직접 가져다가 다른 컵에서 사용하느냐, 아니면 똑같은 컵과 물을 한 컵 더 준비하여 사용을 하느냐라는 식이다. 언뜻 보면 이해가 쉬울 수 있지만, 오히려 헷갈릴 수가 있다. 이는 프로그래밍적으로 직접 접근해서 알아보는 것이 가장 확실하다. Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. Call by reference(참조에 의한 호출)는 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 간단히 말해 값을 복사를 하여 처리.. 2022. 9. 13.
GitHub의 프로젝트를 SVN으로 연결하기 깃허브 저장소를 SVN으로 연결하기 개인 개발을 하시거나 소규모 프로젝트를 만드시는 분들에게 깃허브만큼 편리한 저장소가 없는데, 이를 SVN에 연결하고 사용하는 방법을 알려드리겠습니다. 과정 아래와 같은 과정이 있습니다. 깃허브에서 토큰키 생성하기. SVN을 설치하여 생성한 토큰키 사용하여 연결하기. 깃허브에서 토큰키 생성하기 1. 깃허브로 이동한다. 2. 우측 상단 프로필을 클릭한뒤 Settings으로 이동한다. 3. 왼쪽 메뉴 리스트 중에서 Developer settings로 이동한다. 4. Personal access tokens로 이동하여, Generate new token을 클릭한다. 5. 아래와 같이 키의 이름을 작성해주고, 유효 기간을 무기한으로 설정 뒤 기본적인 권한들의 체크박스를 선택해준.. 2022. 9. 4.
C#, 중복되지 않게 랜덤 숫자 생성 중복되지 않은 난수 배열 필요 랜덤으로 난수를 생성하되, 중복되지 않게 생성하고 싶은 경우가 생겨서 작성하게되었습니다. 아래의 스크립트를 통해 난수 배열을 가져올 수 있습니다. 스크립트 /// /// 중복되지 않는 랜덤 숫자 리스트 만들기 (minValue: 0) /// /// 최대값(제외) /// 반환 개수 /// 중복 숫자 여부 /// 랜덤 씨드 /// public static int[] MakeRandomNumbers(int maxValue, int randomSeed = 0) { return MakeRandomNumbers(0, maxValue, randomSeed); } /// /// 중복되지 않는 랜덤 숫자 리스트 만들기 /// /// 최소값(포함) /// 최대값(제외) /// 반환 개수 //.. 2022. 8. 22.
프로그램의 정확 시간 측정이 어려운 이유와 해결 방법 제시 예시 아래와 같이 OS 시간 조작 방지를 위해, 커스텀 타이머 클래스를 제작하였다고 가정합시다. using System; using System.Threading.Tasks; /// /// 프로그램 커스텀 타이머 /// public static class MyTimer { static DateTime startTime; static long millisecond = 0L; public static void Start() { startTime = DateTime.Now; TimeUpdater(); } private static async void TimeUpdater() { while (true) { await Task.Delay(1); ++millisecond; } } public static DateT.. 2022. 8. 16.
C#, 서버 시간으로 동기화하기 (HTTP 웹사이트 동기화) 서버 시간을 가져와야하는 이유 대부분의 프로그램(앱)에서는 클라이언트와 서버 간의 통신이 존재합니다. 하지만 클라이언트에서 사용하는 시간이 있고, 서버에서 사용하는 시간이 따로 존재하며 이 둘은 서로 동기화가 필요합니다. 클라이언트에서 단순하게 'DateTime.Now' 사용한다면 이는 기기 시간 변경만으로도 에러 및 프로그램 내부적인 스케줄링에 치명적으로 영향을 줄 수 있습니다. 프로그램 시간 제약 조건 제가 생각하는 제약 조건은 아래와 같습니다. DateTime.Now와 같은 IDE에서 제공하는 기기 시간을 가져오는 코드 사용은 지양한다. 이는 클라이언트에 영향을 끼칠 수 있습니다. DateTime.Now 대신 사용할 시간을 따로 관리하는 로직을 구상하여 사용한다. 기기 시간을 조작해도 영향을 끼치지.. 2022. 8. 13.
코딩 전용 폰트, 캐스캐디아(Cascadia) Cascadia는 Windows 터미널 과 함께 제공되는 재미있는 새로운 코딩 글꼴 이며 이제 Visual Studio에서도 기본 글꼴로 사용됩니다. - Cascadia 깃허브 MS 공식 지원, 코딩 폰트 'Cascadia' 마이크로 소프트 사에서 제공하는 공식 코딩 폰트 캐스캐디아(Cascadia). 마이크로 소프트 사에서 유지 보수 되고 있는 폰트이며, 문제 없이 사용이 가능한 폰트입니다. Visual Studio에서 기본 제공이 되고 있는 폰트이기도 합니다. https://github.com/microsoft/cascadia-code GitHub - microsoft/cascadia-code: This is a fun, new monospaced font that includes programmin.. 2022. 7. 28.
반응형