안드로이드 스튜디오 XML편집기에서 뜨는 design editor is unavailable until a successful build 에러 해결방법입니다. 간만에 안드로이드 스튜디오를 켰더니 세팅이 충돌이 났는지 XML편집기에 위에 보이시는 것처럼 에러가 떴습니다. 아마 프로젝트 동기화과정에서 문제가 발생한 것 같은데 구글링을 통해 알아보니 고치는 방법이 매우 쉽더군요. 방법은 아래와 같습니다. 안드로이드 스튜디오 상단에 보이는 망치모양의 아이콘을 클릭해주시면 됩니다. 단축키는 Ctrl + F9입니다. 굉장히 Simple하죠? 버튼을 눌러주기만 하면 바로 고쳐집니다.
정렬 속도 비교 이때까지 포스팅했던 정렬들의 시간복잡도에 대해 알아보도록 하겠습니다. 아래는 정렬속도 비교에 사용하였던 코드입니다. 정렬속도 비교 프로그램 (C언어/C++) 출처 #include #include #include #define MAX_SIZE 60000 //데이터의 개수 지정 #define SWAP(x,y,t) ((t)=(x), (x)=(y), (y)=(t)) //SWAP함수 설정 int original[MAX_SIZE]; //랜덤함수로 만든 데이터를 저장할 원본 배열 int list[MAX_SIZE]; //각 정렬 알고리즘에서 사용할 데이터 배열 int n; //데이터의 개수를 받는 전역변수 설정 int sorted[MAX_SIZE]; //합병정렬에서 사용할 데이터를 저장할 배열 cloc..
계속해서 o(n log n) 시간복잡도를 가지는 정렬방법에 대해 알아보겠습니다. 이번에는 퀵정렬입니다. 실무에서도 가장 많이쓰이고 속도와 효율성이 가장 좋다고도 할수있는 정렬 방식입니다. 퀵정렬 이번에도 그림을 통해 설명해드리겠습니다. ☞ 먼저 PVIOT을 정합니다. 대부분 정렬속도를 위하여 가운데 숫자를 PIVOT으로 정하는게 효율적입니다. ☞ PVIOT값과 LEFT값을 비교하여 LEFT값이 PIVOT보다 크다면 PIVOT값과 RIGHT값을 비교합니다. RIGHT값이 PIVOT보다 크다면 RIGHT커서를 왼쪽으로 이동시킨후 다시 PIVOT값과 비교합니다. ☞ RIGHT값이 PIVOT보다 작다면 LEFT값과 RIGHT값을 바꿉니다. 그런뒤 LEFT값을 오른쪽으로 한칸 옮깁니다. ☞ LEFT값과 RIGHT..
앞선 포스팅 3개에서 버블정렬, 삽입정렬, 선택정렬에 대해서 알아보았습니다. 하지만 위의 3정렬방법은 굉장히 기초적인 정렬방법으로 시간복잡도는 O(N^2)를가지며 실무에서 잘 쓰이는 정렬방법은 아닙니다. 이번 포스팅부터는 시간복잡도 O(N * LogN)을 가지는 정렬방법에 대해 알아보겠습니다. 먼저 이번포스팅에서는 병합정렬에 대해 알려드리겠습니다. 병합정렬은 정렬할 배열을 반으로 나누어 좌측과 우측 배열을 계속하여 분할해 나간 후 각 배열내에서 정렬 후 병합하는 과정을 통해 정렬하는 알고리즘입니다. 병합정렬(합병정렬) 그림을 통해 설명해드리겠습니다. ①분할과정 먼저 정렬할 숫자들을 원소단위로 분할합니다. ②병합과정 그런 뒤 분할한 원소들을 합치면서 정렬합니다. 병합정렬 소스 코드 (C언어/C++) #in..
정렬에는 버블정렬, 선택정렬, 삽입정렬이 있습니다. 앞서 버블정렬, 선택정렬은 포스팅을 끝냈고 이번 포스팅은 마지막 정렬방법인 삽입정렬에 대해 한번 알아보도록 하겠습니다. 삽입정렬 삽입정렬은 기준이 되는 숫자와 그 앞에있는 숫자를 비교하여 조건에 맞게 정렬을 하는 방법입니다. 0번째 인덱스는 앞쪽에있는 숫자가 없기 때문에 정렬의 시작은 1번째 인덱스로 시작을 합니다. 삽입정렬로 배열 문자(알파벳)값 아스키순서로 차례대로 정렬하기 (C언어/C++) #define num 7 char number[num] = {'C','A','D','G','F','E','B'}; for (int i = 1; i < num; i++) { int target = number[i]; // 기준 int cur = i - 1; // ..
저번 포스팅에서는 버블 정렬에 대해 알아보았는데요 이번 포스팅에서는 선택 정렬에 대해 한번 포스팅해보려 합니다. 버블 정렬이 뒤에서부터 차례대로 정렬하는 방법이라면 선택 정렬은 버블 정렬과는 반대로 앞에서부터 차례대로 정렬하는 방법입니다. 예제는 배열에 있는 정수 값을 내림차순으로 정렬하는 방법을 들고 왔습니다. 오름차순으로 바꾸려면 예제 문의 IF문의 부등호를 반대로 바꿔주시면 간단하게 구현 가능합니다. 선택 정렬 선택 정렬은 배열 내의 기준이 되는 수(A[0]) 와 나머지의 수를 비교하여 오름차순일 경우 낮은 수, 내림차순일 경우 높은 수를 앞으로 보내는 방식입니다. 첫 번째 FOR문 위와같은 방법으로 첫번째 for문에서 기준값 [0]번째 Index의값과 나머지 값을 비교하여 가장 낮은수를 앞으로 보..
정렬(Sort)하는 방법을 포스팅합니다. 정렬하는 방법은 대표적으로 버블정렬,선택정렬,삽입정렬 이렇게 3가지가 있습니다. 차례대로 한번 알아보도록 하죠 먼저 이번 포스팅에서는 버블정렬에 대해 포스팅하도록 하겠습니다. 예제는 배열에 있는 정수값을 오름차순으로 정렬하는 예제를 들고왔습니다. 내림차순으로 정렬하실경우 예제의 IF문의 부등호방향만 바꿔주시면 됩니다. 버블정렬 버블정렬은 배열내의 두개의 인접한 Index를 비교하여 더 큰 숫자를 뒤로 보내 차곡차곡 쌓아 정렬하는 방법입니다. 결론적으로 말하자면 배열의 뒷쪽부터 정렬하는 방법이라고 생각하시면 될 듯 합니다. ① for문에서 [0]번째 Index와 [1]번째의 Index값을 비교하여 더 큰 숫자를 뒤로 보내줍니다. ② for문에서도 마찬가지로 [1]번..
이번에는 유니티에서 만든 프로젝트를 안드로이드 스튜디오에서 Import 하는 방법에 대해서 알아보도록 하겠습니다. 안드로이드 스튜디오의 프로젝트가 주력 프로젝트이고 부가적으로 유니티 기능을 활용하고 싶은 분들에게 좋은 포스팅이 되리라고 생각합니다. 유니티 프로젝트 안드로이드 스튜디오에 연동시키기 1. 먼저 시작하기전에 안드로이드 SDK와 JDK의 경로가 잘 설정되어있는지 확인합니다. (설정이 제대로 안되어있을경우 Export 안됨) Edit -> Preferences 2. External Tools에서 SDK , JDK의 경로를 설정해줍니다. SDK경로 = C:/Users/내 이름/AppData/Local/Android/sdk 안드로이드 설치 시 기본 설정으로 설치를 했다면 대부분 경로는 이렇게 되어 있..
유니티란? 유니티는 게임 엔진 기술이자 통합개발환경입니다. 게임 업계에서 스타트업으로 여겨졌던 유니티는 스마트폰이 등장하면서 크게 성장하였습니다. 2012년부터 유니티 가입자수는 100만 명이 넘었고 유니티를 이용해 만든 게임 중 상업적인 성과를 이룬 게임도 꾸준히 나오게 되었습니다. 대표적으로 앵그리버드, 템플런 등이 있으며 이러한 인기 덕에 최근 게임 개발 시장은 경쟁자인 에픽게임스의 언리얼 엔진과 유니티가 양대산맥으로 지배하는 구조가 되었습니다. 유니티의 장점 유니티의 가장 큰 장점은 다양한 플랫폼을 지원한다는 점이에요. 개발자는 모바일 기기, 웹브라우저, 데스크톱, 콘솔 구분 없이 원하는 형태의 게임을 쉽게 만들 수 있습니다. 개발환경 자체도 입문자가 쉽게 이해할 수 있을 만큼 직관적이고 간단합니..
이번 포스팅에서는 스프링 프로젝트에서 BootStrap을 연동하는 방법에 대해서 한번 알아보도록 하겠습니다. BootStrap이란 웹 사이트나 웹 응용 프로그램을 작성하기 위해 사용하는 무료 소프트웨어 도구 모음입니다. 기본적인 디자인이 다 되어있는 오픈소스로 되어있기 때문에 디자인 능력이 부족한 개발자이거나 단기간에 웹사이트를 만들어야 하는 경우 요긴하게 사용할 수 있습니다. 스프링에서 BootStrap적용하기 1. BootStrap을 쓰기 위해서는 자신이 원하는 소스코드를 다운로드하아야 합니다. BootStrap을 다운로드하는 홈페이지를 두 군데 소개해드리겠습니다. 부트스트랩 무료 오픈소스 링크 바로가기 1 부트스트랩 무료 오픈소스 링크 바로가기 2 위에 링크된 사이트에서 자신이 원하는 오픈소스를 다..
Controller - 메소드 파라미터의 종류 @RequestParam - RequestParam 매핑 1. HTTP 요청 파라미터를 메서드의 파라미터로 전달받을 때 사용 2. 어노테이션이 적용된 파라미터가 String이 아닐 경우 실제 타입에 따라 알맞게 타입 변환 수행 3. 필수가 아닌 파라미터인 경우 required 속성 값을 false로 지정 (기본 값은 true), 값은 null로 저장 4. 필수가 아닌 파라미터인 경우 defaultValue 속성 값으로 기본값을 지정 CookieValue - 쿠키 매핑 1. 쿠키 값을 파라미터로 전달 받을 때 사용 2. 해당 쿠키가 존재하지 않으면 500 응답 에러 코드 전송 3. 쿠키가 필수가 아닌 경우 파라미터와 같이 required 속성의 값을 false..
이번 포스팅에서는 스프링 프로젝트에 느낌표가 뜨는 에러를 해결하는 방법에 대해 알아보려 합니다. 저도 처음 스프링을 설치하고 프로젝트를 만들었는데 느낌표가 떠서 굉장히 애먹었습니다. 스프링 프로젝트를 만드니까 이런식으로 ! 스프링 프로젝트에 느낌표가 떳었습니다. 지금 와서 깨달았는데 아마 라이브러리를 제대로 찾지 못해 생기는 현상 같습니다. 스프링 프로젝트 느낌표 에러 해결 이걸 해결해주는 방법은 굉장히 간단합니다. 먼저 User폴더로 가주세요. User폴더에 보시면 위 사진과 같이. m2라는 폴더가 있는데 이 폴더가 라이브러리를 모아두는 그런 곳입니다. 이 폴더를 삭제해주면 됩니다..(이클립스를 끈 상태에서 삭제하시는 것을 추천드립니다. 충돌 날수도 있으니..) 그런 뒤 스프링 프로젝트를 다시 실행시키..
스프링 프레임워크란? 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 동적인 웹사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있는 프레임 워크이며 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있습니다. 현시점 실무에서 굉장히 많이 쓰이고 있는 프레임워크입니다. 설치방법에는 크게 두가지가 있습니다. 첫 번째 방법 : 스프링 설치경로 바로가기 스프링 사이트에 가서 다운로드하는 방법. 두 번째 방법 : 이클립스에서 스프링 플러그인을 설치하는 방법. 이 두 가지 방법 중에 두 번째 방법이 좀 더 쉽고 간단하니 설치하시려고 하는분들은 두번째 방법을 사용하면 좀 더 쉽게 스프링을 설치할 ..