본문 바로가기

배열

안드로이드 앱 글로벌 버전 만들기 글로벌 버전은 앱을 영어로 만들면 된다고 간단하게 생각할 수도 있다. 그럼 리소스들을 영어로 표시 하는 것이 필요하고, 그 영어 버전과 한글 버전을 어떤식으로 관리할지가 고민스럽다. 리소스 관리 그리고 소스 관리 어떻게 하는게 효율적일까? 앱의 전략에 따라서 앱을 2개로 나눌 수도 있고, 하나의 앱으로 리소스만 달리 할 수도 있다. 당연히 하나의 소스에 리소스만 분리하는게 유리할 것으로 생각된다. 안드로이드는 기본적으로 다국어 지원을 잘(?) 해주려고 준비가 되어 있다. 기본적으로 /res/values 에 /res/values-en를 추가하면 핸드폰의 언어에 따라서 자동으로 해당 언어로 로딩이 된다. 그렇게 폴더가 추가되고, strings.xml을 해당 폴더에 넣으면 스튜디오에서는 values에 stri.. 더보기
배열을 선언한다는 것은 데이터를 연결하여 저장한다는 개념은 자료구조 상에서 필요하다. 1에서 100까지를 저장한다고 했을 때 여러가지 형태로 저장을 할 수 있다. 변수를 100개 선언할 수도 있다. 가장 쉽게 접근하는 방식이 배열이다. 100개의 저장소를 선언하고 숫자를 각각 저장소에 저장한다. 변수를 100개 선언했다면 물리적인 저장 공간의 위치가 어디 일지 모르고, 연결 여부도 알 수 없다. 대부분은 비슷한 위치일 수 있지만, 꼭 그렇다고 할 수는 없다. 배열은 물리적 공간도 바로 옆으로 메모리 공간을 확보한다. 이런 배열의 물리적 공간 확보로 빠른 엑세스를 보장 받을 수 있다. 단점은 그 공간만큼은 미리 확보하고 사용하기에 혹시 사용하지 않더라도 다른 변수들이 쓸 수 없기에 비효율적인 부분이 있을 수 있다. 배열은 그리고.. 더보기
큐와 스택을 쉽게 비교하면 그리고 배열 컴퓨터 구조에서는 또는 프로그램을 개발을 할 때 큐나 스택이라는 말이 가끔 등장을 한다. 큐와 스택 값을 저장하는 방식인데, 그 형태가 다르다. 큐는 먼저 들어온 값이 먼저 나간다. 가게에서 물건을 사기 위해서 줄을 섰다면 당연하게도 먼저 계산대에 온 사람부터 계산을 해줄 것이다. 그래서 그 사람이 끝나면 다음 사람을 계산해주는 순을 한다. 이렇게 온 순서대로 처리를 해주는 것이 큐이다. 스택은 나중에 들어온 것부터 처리를 해준다. 큐는 지극히 생활속에서 많이 봐왔고, 그렇게 처리하는 것이 당연한 거 같지만, 알고리즘에서는 의외로 스택과 같은 저장 방식이 필요한 상황도 있다. 예를 들면 계산기에서 덧셈 뺄셈 또 곱셈 나눗셈을 할 때 스택이라는 저장 방식을 이용하기도 한다. 우선순위라는 것이 있고, 그 우.. 더보기