본문 바로가기
반응형

개발878

Unity) Asset Bundles Asset Bundles Unity에서 대용량 Resources를 관리, 버전별 관리, 로컬라이징 등 여러 가지 면에서 활용 가능한 에셋을 압축해서 다운로드하고 로드할 수 있는 시스템이다. 어셋들의 집합이 어셋번들이고 어셋 번들을 사용하는 곳에서 다운로드하여서 압축을 푼다 에셋 번들은 FTP(File Transfer Protocol), CDN(Content Delivery Network)를 통해서 업로드 및 다운로드한다. URL :https://docs.unity3d.com/kr/530/Manual/AssetBundlesIntro.html 유니티 - 매뉴얼: 에셋번들 (AssetBundles) 로우 레벨 네이티브 플러그인 인터페이스(Low-level Native Plugin Interface) 4.x버전.. 2020. 9. 3.
문제풀이)프로그래머스)c#) 단어퍼즐 단어퍼즐 URL : https://programmers.co.kr/learn/courses/30/lessons/12983?language=csharp 코딩테스트 연습 - 단어 퍼즐 단어 퍼즐은 주어진 단어 조각들을 이용해서 주어진 문장을 완성하는 퍼즐입니다. 이때, 주어진 각 단어 조각들은 각각 무한개씩 있다고 가정합니다. 예를 들어 주어진 단어 조각이 [“ba”, “na programmers.co.kr 단어를 조합해서 결괏값을 만드는 과정에서 가장 최소한으로 만들 수 있는 개수를 리턴하는 문제로 단어는 무한정 중복 사용이 가능하다. 직접 짠 코드로는 테스트는 다 통과했지만. 효율면에서는 많이 떨어지는 상황이 발생했다. ㅠㅠ 시간 초과는 덤. 맨 처음 생각한 것은 중복 관련돼서 처리하는 과정에서 resu.. 2020. 8. 31.
문제풀이)프로그래머스)c#) 소수찾기 소수찾기 URL : https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr 숫자를 조합해서 소수를 찾는 간단한 문제이다. 그러나 막상 경우에 수에 관련된 값을 찾는 과정이 꽤나 걸린다. 1. 주어진 string을 분해해서 트리형 구조로 만들어서 경우에 수를 만든다. 2. 경우에 수에 대한 값을 기준으로 약수에 대한 판별을 해야 한다. 첫 번째 약수 판별할 값을 만드는 과정에서 조금 애먹었다. 조금 .. 2020. 8. 30.
기본기)정렬)c#) 셸 정렬(Shell Sort) 셸 정렬(Shell Sort) 가장 오래된 정렬 알고리즘 중 하나로 삽입 정렬의 단점을 보완한 알고리즘이다. 삽입 정렬이 어느 정도 정렬된 배열에 대해서는 빠른 것에 단점을 보안해서 만든 것으로 정렬해야 할 노드의 리스트를 k번째 요소를 추출해서 부분 리스트를 만든다. 이때 간격(Gap)을 기준으로 부분 리스트를 순차적으로 만든다. 간격의 초기값은 정렬할 크기 / 2, 생성된 부분 리스트 개수는 grap과 같다. 각 회전마다 간격 k를 절반으로 줄이면서 회전이 반복될 때마다 부분 리스트에 포함된 값은 증가한다. gap은 홀수로 하는 것이 좋다. gap이 1이 될때까지 반복한다. 배열 10, 8, 6, 20, 4, 3, 22, 1, 0 , 15, 16을 정렬할 때를 예시로 보면 다음과 같다. 코드는 다음과.. 2020. 8. 29.
기본기)정렬)c#) 삽입 정렬(Insert Sort) 삽입 정렬(Insert Sort) 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 매 순서마다 해당 노드를 삽입할 수 있는 위치를 찾아 해당 위치에 넣는다. 데이터를 하나씩 저장 이후에 순서를 넣는 방식이다. public void SetInsertSort(List _list){ Logger.LogFormat("[Insert - Sort] Start "); int j, key; for(int i = 1; i =0 && _list[j]> key); j--){ _list[j + 1] = _list[j]; } _list[j + 1 ] =key; thi.. 2020. 8. 29.
기본기)정렬)c#) 선택정렬(Select Sort) 선택정렬(Select Sort) 선택정렬은 첫번째 노드와 두번째 노드부터 마지막 노드까지 차례대로 비교하며 가장 작은 값을 찾아 첫번재에 놓고, 두번째에서 세번째 노드부터 마지막 노드까지의 데이터를 다시 비교하는 방식으로 이 과정을 반복해서 정렬을 수행한다. 1회전을 수행하고 나면 가장 작은 값이 맨 앞에 오기 때문에 그 값을 제외한 나머지 값을 비교한다. 점점 정렬될수록 비교하는 대상이 줄어든다. 배열에 7 4 5 1 3 의 값이 있을 경우는 다음과 같다. 1회전에서는 첫번째 인덱스와 다음인덱스를 비교하며 가장 작은 값을 변경한다. 2회전에서는 두번째 인덱스와 다음 인덱스를 비교하며 가장 작은 값을 변경한다. 마지막 인덱스 전까지 반복한다. public void SetSelectSort(List _li.. 2020. 8. 29.
기본기)정렬)c#) 버블 정렬(Bubble Sort) 버블 정렬(Bubble Sort) 서로 인접한 두 노드를 검사하여 정렬하는 알고리즘 인접한 2개의 노드를 비교해서 크기가 비교 후 정렬 기준에 따라 서로 교환을 한다. 배열에 7 4 5 1 3 의 값이 있을 경우 처음 값인 7을 인접한 노드를 검사한다. 7보다 큰 값이 없으므로 7은 가장 끝에 위치하게 된다. 이런 식으로 모든 인덱스를 비교할 때까지 정렬을 한다. 코드는 다음과 같다. public void SetBubbleSort(List _list){ Logger.LogFormat("[Bubble - Sort] Start "); for(int i =_list.Count-1;i>0 ;i--){ for(int j = 0;j _list[j+1]){ int temp.. 2020. 8. 29.
문제풀이)프로그래머스)c#) 카펫 카펫 URL : https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr Brown의 블럭이 Yellow의 블럭을 감싸고 있는 형태의 데이터로 만들어야 하는 문제이다. 이 문제를 잘 활용하면 벽을 생성할 수 있을 듯 한 문제로 핵심은 Brown 블럭 + Yellow 블럭의 합을 가지고 약수를 구한다. 이때 가로가 세로보다 커다란 조건으로 인해서 약수를 구하는 과정을 1~ total 값이 아닌 절반까지만 반복해.. 2020. 8. 27.
문제풀이)프로그래머스)c#) 모의고사 모의고사 URL : https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 �� programmers.co.kr 수포자가 찍는 방식에 대한 연속된 패턴 데이터를 순서대로 처리하면 되는 문제이다. 완전 탐색으로 문제(answers)의 데이터만큼 반복해서 정답인지 확인하고 정답의 가장 높은 사람의 인덱스를 리턴해주면 되는 문제이다. using System; using System.Collections.Generic; using System.Linq; .. 2020. 8. 27.
문제풀이)프로그래머스)c#) N으로 표현 N으로 표현 URL : https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr N으로 숫자를 표현을 해서 사칙연산으로 최소한의 값을 만드는 문제이다. N 이 예시로 5인경우 5, 55,555, 5555,55555 등으로도 표현이 가능하다. 사칙연산의 계산 수식에 N이 최소한으로 표현되면서 number(조건)과 같은 최소한의 N의 개수를 리턴하는 문제이다. DP(Dynamic Programming)과 재귀(Recursion)를 통해서 문제를 해결하는 방식으로 구현을 했으나 역시 테스트 케이스를 정확하게 찾지 못하는 경우가 꽤나 많아서. 완벽하게는 풀지는 못했다. 다른 사람의 풀이 코드는 다음과 같.. 2020. 8. 27.
프로토타입) 슈팅 게임(Shouting Game) 슈팅 게임(Shouting Game) 슈팅 프로토 타입으로 '드래곤 플라이트'를 모티브로 한 라인 클리어 슈팅에 대한 프로토를 진행했다. 기본적으로 미사일의 오브젝트 풀링을 처리하고 콜라이더와 트리거 이벤트를 설정한다. 충돌된 블록의 hp를 감소시키고 0보다 작으면 블록을 제거한다. 블록이랑 유닛이랑 충돌하면 게임 플로우를 결과로 처리한다. 게임의 업그레이드 및 치트를 추가해서 미사일의 speed와 power delay를 처리 조절할 수 있도록 처리했다. URL : youtu.be/D4Sa2WJmJ-I 이 기본 슈팅 프로토타입에서 미사일 타입이라던지, 디자인이라던지, 콘텐츠를 추가하면 다른 게임으로 변경이 가능하다. 기본적으로 몬스터들을 잡거나 죽이거나 미사일이 나가고 게임이 종료되는 정도의 기준으로 한.. 2020. 8. 26.
개발환경)젠킨스(Jenkins) + 슬랙(Slack) 연동 빌드 알림 받기 젠킨스(Jenkins) + 슬랙(Slack) 연동 빌드 알림 받기 젠킨스에서 빌드에 대한 처리가 되었다면 빌드가 시작되고 종료되는 시점에서 알람을 받으면 매우 편리하다! 빌드가 언제 끝나는지 기다릴 필요도 없고 성공 여부도 메신저로 오기 때문에 빌드 걸고 작업을 하다가 빌드에 대한 여부를 판단하면 되기 때문이다. 지금 현재 사용하고 있는 메신저인 슬랙(Slack)에서 알람에 대한 걸 Plug in으로 잘되어있는 것을 찾았다. 젠킨스와 슬랙을 연동해서 알람을 처리해보자! 슬랙 런처에서 Apps 항목을 눌러서 Jenkins를 검색한다. Add Configuration을 하게 되면 채널을 선택하라고 나오는데 채널을 선택하면 페이지가 나오게 된다. 페이지에서 Step 3번째에 보면 선택한 도메인(자신의 슬랙 도.. 2020. 8. 25.
개발환경)젠킨스(Jenkins) Unity 셋팅하기 젠킨스(Jenkins) Unity 세팅하기 [젠킨스 관리]- [플러그인 관리] -[설치 가능] - Unity를 검색해서 Unity3d를 설치해줍니다. Unity Plug in을 설치 이후에 [젠킨스 관리] - [ Global Tool Configuration]에서 Unity에 대한 실행 경로를 추가한다. 유니티 실행 위치를 기본적으로 잡아주고 저장한다. 이후에는 빌드 환경이 잡힌 Item에 환경을 추가한다. [빌드 환경] - [add Build step] -[Invoke Unity3 d Editor]를 선택한다. Unity Plug in 설치와 Unity 환경변수 (Unity3d installations)이 정상적이면 나온다. 그게 아니라면 경고창을 확인해서 해결해줘야 한다. Editor command .. 2020. 8. 24.
개발환경)젠킨스(Jenkins) GitLab 연결하기 젠킨스(Jenkins) GitLab 연결하기 젠킨스에서는 최신 프로젝트를 받아서 빌드를 하는 게 기본으로 많이들 하기 때문에 기본적으로 저장소(Svn, Git 등등)에 최신 프로젝트를 받기 위해서는 연동이 되어야 한다. 매번 빌드할 때마다 빌드 머신에 최신 데이터로 갱신해주는걸 기본적으로 젠킨스에서는 지원을 해준다. [젠킨스 관리 - [ 플러그인 관리] - GitLab Plugin, GitLab Authentication plugin을 설치한다. 젠킨스를 재시작하면 깃에서 가져오기 위한 계정을 등록해야 한다. [젠킨스 관리] - [Manage Credentials]에 들어가서 계정을 등록한다. Add Credentials를 클릭하면 계정을 등록하는 페이지가 나오는데 페이지에 등록된 항목을 모두 다 입력하.. 2020. 8. 24.
개발환경)젠킨스(Jenkins) Mac 설치하기 젠킨스(Jenkins) Mac 설치하기 젠킨스는 DevOps(개발환경)을 구축하는 도구 중 한 개로 빌드 환경을 구축하는 과정에서 많이 쓰이는 도구이다. 맥에서 젠킨스를 설치하기 위해서는 HomeBrew가 설치되어있어야 한다. https://brew.sh/ Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 터미널에 해당 내용을 붙여 넣기 하면 HomeBrew가 설치가 된다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 그 이후에는 젠킨스를 설치해야 한다. brew install jenkins 설치 가다 되면.. 2020. 8. 23.
반응형