분류 전체보기
-
[ Java ] 제네릭 ( Generic )면접 준비 2020. 5. 25. 17:23
클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 방법이다. 확장성과 타입 안정성 때문에 사용합니다. 제네릭은 기본 데이터 타입에서는 사용할 수 없고 참조 데이터 타입에 대해서만 사용할 수 있습니다. 1. 확장성 기능을 구현할 때 제네릭을 사용하면 다양한 자료형에 적용이 가능하여 확장성을 보장할 수 있습니다. ( 중복의 제거 ) 이러한 특징은 Object를 통해서도 보장이 가능하지만 Object는 타입에 대한 검사가 이뤄지지 않기 때문에 컴파일 타임에 문제를 인지할 수 없습니다. 따라서 잘못된 타입이 적용되었을 경우 에러를 잡기가 힘듭니다. 2. 타입 안정성 제네릭은 사용하고자 하는 자료형을 명시적으로 표시함으로서 잘못된 자료형을 컴파일 타임에 찾을 수 있습니다. 비록 제네릭은 생략될 수 있기 대문..
-
[ Java ] Collection면접 준비 2020. 5. 25. 16:58
데이터들을 효율적으로 관리할 수 있게 해주는 프레임워크입니다. 배열의 경우 한 번 크기가 정해지면 별경할 수 없으므로 삭제나 추가 등의 작업을 할 때 어려운 점이 많지만 Collection 에서는 삭제, 수정, 검색 등의 작업을 효율적으로 할 수 있는 다양한 메소드들을 제공해 주기 때문에 효과적으로 데이터를 관리할 수 있습니다. Vector ArrayList의 구버전으로 ArrayList와 사용법이 같습니다. ArrayList 내부적으로 데이터를 배열에서 관리하며 추가, 삭제시 임시 배열을 생성하여 데이터를 복사하는 구조입니다. 대량의 자료를 추가, 삭제할 시 메모리 소모가 크고, 시간이 오래걸려 성능저하가 발생하며, 사이즈가 고정되어 있기때문에 사이즈를 초과할시 사이즈가 늘어난 배열을 생성하여 데이터를..
-
[ Android ] D-Day 계산 오류Android 2020. 5. 22. 21:15
CatServant D-day를 계산하면서 날짜 오류가 발생하였다. 첫 번째 만난 오류는 현재 날짜가 한달 전으로 나오는 오류였다. 알고보니 java 에서는 Calendar.get(Calendar.MONTH) 를 했을 때, 현재 달에서 1달 전으로 나오는 문제가 있어서 이를 고쳐주기 위해서 +1을 해주고 다시 set해서 고쳐주었다. 두 번째 만난 오류는 시간때문에 D-day가 하루씩 차이나는 오류였다. 이를 해결해 주기 위해서는 Calendar의 시간을 모두 clear 해주고 계산하면 시간 때문에 날짜가 차이나는 오류는 해결할 수 있었다. Code private String getDday(String targetDay) { int tYear, tMonth, tDay; int dYear, dMonth, d..
-
[ Android ] Toast / Snackbar 보여주기Android/Java 2020. 5. 19. 23:22
CatServant Toast ( 토스트 ) Toast는 간단한 메시지를 잠깐 보여주었다가 없어지는 뷰로 앱화면에 종속되지 않습니다. 이는 실행영역보다 앞쪽에 보이는 뷰이기 때문에 앱이 화면에 보이지 않는 상태에서도 Toast가 보일 수 있다는 의미입니다. Code Context context = getApplicationContext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); Toast.makeText(getApplicationContext(), "Hello toast!", Toast.LENG..
-
[ Summer/Winter coding 2019 ] 종이접기Algorithm/프로그래머스 2020. 5. 19. 22:04
어떻게 접근할까 하다가 종이를 직접 접어보았다. 이를 list로 표현해보면 중간을 기준으로 양 옆이 모양은 대칭이지만 숫자는 반대로 이루어져 있다. n = 1 : [ 0 ] n = 2 : [ 0 0 1 ] n = 3 : [ 0 0 1 0 0 1 1 ] n = 4 : [ 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 ] Code def solution(N): answer = [0] for i in range(1, N): temp = [] for j in range(0,len(answer)): temp.append(answer[j]) temp.append(0) answer.reverse() for j in range(0,len(answer)): if (answer[j] == 0): temp.appen..
-
[ Android ] Fragment Toolbar에서 back button 동작 안 하는 오류Android 2020. 5. 19. 18:25
CatServant 특정 Fragment에서 Toolbar에 Backbutton을 추가한 뒤 Toolbar 내에 있는 BackButton을 Click 했을 때 호출했던 Fragment로 돌아가지 않는 문제가 있었다. Fragment에서 Fragment 호출하기 public void replaceFragment(Fragment fragment) { FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_container, fragment).addToBackStack(null).commit(); } 해당 프로젝트에서는 mainView Fragment에서 se..
-
[ Android ] 위험 권한Android 2020. 5. 18. 18:57
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant 위험 권한 마시멜로 버전부터는 권한을 일반 권한과 위험 권한으로 나누었습니다. 위험 권한의 경우 앱이 실행된 후 사용자에게 권한 허용을 요청해야 한다. 만약 사용자가 권한을 부여하지 않으면 해당 기능은 동작하지 않는다. 위험 권한으로 분류된 주요 권한들은 대부분 개인정보가 담겨져 있는 정보에 접근하거나 개인정보를 만들어 낼 수 있는 단만의 주요 장치에 접근하는 경우에 부여되는 권한입니다. 위험 권한의 종류 분류 ( Permission Group ) 세부 권한 ( Permission ) LOCATION ACCESS_FINE_LOCATION ACCESS_CRARSE_LOCATION CAMERA CAMERA MICROPHONE RECOR..
-
[ Android ] 브로드캐스트 수신자Android 2020. 5. 18. 18:57
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Broadcast Receiver ( 브로드캐스트 수신자 ) 애플리케이션이 글로벌 이벤트(Global event)를 받아서 처리하려면 Broadcast Receiver로 등록 Global event : [ "전화가 왔습니다.", "문자 메세지가 도착했습니다" ] 와 같이 Android system 전체에 보내지는 이벤트 Broadcast Reciever는 Intent filter를 포함하며, Manifest file에 등록함으로써 Intent를 받을 준비를 한다. Reciever가 Manifest file에 등록되었다면 따로 시작시키지 않아도 된다. Application은 Context class의 registerReceiver 메..