Xcode에서는 프로젝트를 생성할 때 기본적으로 debug와 release의 두가지 빌드 환경을 제공해줍니다. 이번 포스팅의 목표는, Rest API url, 외부 서비스의 API Key 등을 빌드 환경에 따라 동적이게 변경하는 방법을 익히는 것입니다. 먼저 프로젝트를 생성합니다. 왼쪽 navigator의 root 파일 > PROJECT > Configurations를 보면 기본적으로 Debug와 Release가 생성되어 있습니다.여기서 Test 등의 추가적인 Configurations을 생성하실 수 있습니다. 상단에 Build Settings > + 클릭 > Add User-Defined Setting를 선택합니다. Add User-Defined Setting을 누르고 예시로 저는 "REST_API_U..
문자열 리스트가 주어졌을 때 이 문자열들을 하나로 이어 붙이는데 걸리는 시간은? String joinWords(String[] words) {String sentence = "";for (String w : words) {sentense += w;}return sentence;}문자열을 이어붙일 때마다 두 개의 문자열을 읽어 들인 뒤 문자를 하나하나 새로운 문자열에 복사해야 한다.처음에는 1개, 두 번째는 2개, 세 번째는 3개, n번째는 n개를 복사해야 한다.따라서 총 수행 시간은 아래와 같이 된다.StringBuilder가 이 문제를 해결해 줄 수 있다. StringBuilder는 가변 크기 배열을 이용하여 필요한 경우에만 문자열을 복사하게 해준다. String joinWords(String[] wo..
이 글은 "실용주의 프로그래머" 도서를 읽고 내용과 느낌을 정리한 글입니다 :) 실용주의 팀- 깨진 창문을 없애라. : 부지런한 개발자라 해도 품질에 무심한 팀에 배치되면, 귀찮은 문제를 고치는 그의 열정은 줄어들 것이다. : 팀 전체가 상품의 품질에 책임을 져야만 한다. : 깨진 창문의 법칙을 팀원 전체가 이해하도록 격려해라. : 품질은 팀원 전체가 개인적으로 기여할 때만 보장되기 때문이다. - 삶은 개구리는 변하는 환경을 감지하지 못하고 삶아진다. : 환경의 변화(범위의 확장, 시간 척도의 감소, 추가 기능, 새로운 환경 등 애초 합의사항에 있지 않았던 것들)를 감시해라. : 새 요구사항에 대해서는 수치를 보유하라. : 이미 일어난 변화를 거부할 필요는 없다. 단지 그런 일이 벌어지고 있다는 것을 알..