분류 전체보기
-
[Android] 권한(Permission)과 위험 권한 요청 방법Android 2021. 4. 8. 17:30
권한(Permission)이란? 안드로이드에서는 제한된 데이터 혹은 작업에 대해 개인정보 보호를 위해 사용자로부터 권한을 부여받도록 되어있다. 매니페스트에서 권한을 선언할 수 있는데, 앱을 설치할 때 사용자가 허용하면 한번에 권한이 부여된다. 앱 권한 선언 일반 권한의 경우 매니페스트에서 선언하여 설치 시점에서 권한을 부여받을 수 있다. 앱 권한을 부여하기 위해서는 매니페스트 파일에 요소를 추가해야한다. 아래는 카메라에 접근하기 위한 권한을 추가하는 방법이다. ... +) 하드웨어와 관련된 권한의 경우, 해당 하드웨어 기기를 선택사항으로 선언할 수 있다. ... android:required 옵션을 false로 설정하지 않으면 하드웨어 기기가 없다면 앱 자체를 설치할 수 없다. 위험 권한 (런타임 권한)..
-
[Android] 브로드캐스트 리시버(Broadcast Receiver)와 전송Android 2021. 4. 8. 16:19
브로드캐스트 안드로이드는 기기 충전 시작, SMS수신과 같은 이벤트가 발생하면 브로드캐스트 메시지를 전송하여 앱에 알릴 수 있다. 앱은 특정 브로드캐스트를 수신하도록 등록할 수 있고, 브로드 캐스트가 전송되면 그 유형의 알림을 수신하도록 등록한 앱에 자동으로 라우팅하게 된다. 한마디로 이벤트 발생을 알리는 메시징 시스템 !! 브로드캐스트 리시버 앱에서 브로드캐스트 알림을 수신하기 위해서는 브로드캐스트 리시버(Broadcast Receiver)를 구현해야 한다. 브로드캐스트 리시버 구현 BroadcastReceiver의 서브 클래스를 선언하고, onReceive(Context, Intent)를 구현한다. onReceive 메서드는 지정한 브로드캐스트 메시지가 도착하면 자동으로 호출된다. public cla..
-
[Android] SharedPreferencesAndroid 2021. 4. 6. 17:29
SharedPreferences API는 앱 내부에 key-value로 저장할 수 있는 파일을 통해 데이터를 저장하거나 읽을 수 있다. 데이터 파일에 접근하기 getSharedPreferences() 와 getPreferences()을 통해 파일을 생성하거나 기존 파일에 접근할 수 있다. getSharedPreferences()는 첫번째 인자에 저장소의 식별자를 지정하여 사용할 수 있고 다른 액티비티에서 사용가능하다. 하나의 파일만 사용하는 경우에는 getPreferences()을 사용해서 식별자를 지정할 필요가 없으나, 해당 액티비티에서만 사용 가능하다. * 주로 getSharedPreferences()를 사용! SharedPreferences sharedPref = getSharedPreference..
-
[Android] 태스크(Task)의 개념과 launchMode로 설정하기Android 2021. 4. 6. 12:47
태스트(Task)란? 태스크는 어플리케이션에서 실행 되는 액티비티를 기록하는 스택이다. 안드로이드에서는 태스크를 이용해서 화면의 순서와 흐름을 관리할 수 있다. 사용자가 현재 화면으로 보고 있는 액티비티가 가장 위쪽에 위치하며, 백(back)버튼을 누르면 보고 있던 액티비티는 스택에서 제거되고 그 아래에 있는 액티비티가 화면에 나타나게 된다. 스택의 가장 아래 기본 액티비티(base activity)가 있고, 주로 홈화면이 들어가게 된다. 프로세스 vs 태스크 프로세스와 태스크는 혼동하기 쉽다. 프로세스의 경우 다른 운영체제와 동일하게 어플리케이션의 독립적인 실행 단위를 말한다. 태스크는 안드로이드에서 프로세스와 무관하게 실행되는 액티비티의 정보를 저장하고 있으며, 태스크를 통해 어플리케이션의 화면의 흐..
-
[Android] Activity, 그리고 LifecycleAndroid 2021. 4. 6. 10:45
액티비티(Activity)란? 액티비티(Activity)는 화면 UI를 구성하는 요소로, 안드로이드 어플리케이션은 반드시 1개 이상의 액티비티를 갖고 있다. 어플리케이션에서는 두개 이상의 액티비티를 동시에 띄울 수 없고, 뷰나 프레그먼트를 이용한다면 화면을 분할할 수 있다. 액티비티 구현하기 안드로이드에서 액티비티는 Activity클래스 혹은 서브 클래스 상속받아 구현할 수 있다. 하위 버전과의 호환을 위해 Activity의 서브 클래스인 AppCompatActivity을 주로 사용한다. public class SubActivity extends AppCompatActivity { //... } 그리고 액티비티를 포함한 컴포넌트들은 안드로이드 시스템(OS)이 확인할 수 있도록 manifest에 반드시 정..
-
[BaseCamp] 최종 회고Rookie 2021. 3. 29. 17:12
사전과제 기간 포함 10주간의 베이스 캠프 교육 기간이 끝났다. NHN의 루키 교육 과정이 유명하긴 하지만, 직접 겪어보니 더 길게 느껴지고 많이 배운 신입사원 교육이였던 것 같다. 다른 회사보다 몇 배는 더 길게 하는 것 같은데... 실제로 내 친구들은 아직도 교육중이냐고 대체 언제끝나냐고 많이 물어봤다...😅 마지막으로 교육에 대한 배운점, 느낀점을 정리한 최종 회고를 작성해보려고 한다. 무비다판다 사전 과제 제외 9주 동안 함께한 무비다판다 발표 30분전에 배포가 안되거나, DB 모델링이 변경되서 바닥부터 뒤엎는 등 여러 일들이 많았다. 가장 기억에 남는 업무는 아무래도 최근에 작업했던 통합 로그인 기능과 세션 관련 리팩토링. 통합 로그인 기능은 고민을 꽤 많이 하고 짰던 코드였다. 일단 무비다판다..
-
[Spring] Spring Shell과 profile로 분리하기WEB/back-end 2021. 3. 9. 23:30
Spring Shell 스프링 쉘은 스프링에서 커맨드 어플리케이션을 쉽게 만들 수 있도록 제공하고 있습니다. 특히 버전 2부터 스프링 부트에 적합하게 개선되어 저도 버전 2를 사용해서 구현했습니다. Dependency 추가 pom.xml에 의존성을 추가해서 간단하게 사용할 수 있습니다 :) org.springframework.shell spring-shell-starter 2.0.0.RELEASE 커맨드 작성하기 커맨드 메소드를 작성할 클래스에 @ShellComponent 어노테이션을 붙여주고, 메소드에는 @ShellMethod를 붙여줍니다. @ShellComponent 의 경우 어플리케이션 실행시 해당 어노케이션을 가진 객체의 메서드(@ShellMethod)가 커맨드로 등록됩니다. 메서드명이 입력하는 ..
-
[BaseCamp] 6주차 회고Rookie 2021. 3. 9. 23:25
숨 가쁘게 지나갔던 개발 5주차가 끝났다. 6주차에는 5주차보다는 여유로웠지만, 주말에 밀린 집안일과 휴식을 취하다보니 여전히 개인 공부는 못하고 있다.... 6주차는 코드리뷰, 리팩토링과 테스트 코드 작성을 하게 되었다. 코드리뷰를 받으면서 나름 잘 짰다고 생각했던 코드들의 문제점이 낱낱이 파헤쳐졌다. 🤪🤪🤪 시간상 주요 기능 위주로 리뷰를 받았지만 기본적인 문제들은 동일하게 있었다. 그리고 데이터 베이스 모델링 결과를 받으면서 구조가 변경되었는데, 다같이 뒤엎어서 작업할 때의 아득함이란.... 이게 git-flow에 맞는 방식일까 했지만 지금 생각하면 최선이지 않을까...싶다. 이번 회고에서는 간단히 경험한 내용(?)에 대하여 적고, 저번에 계속 못하던 KPT도 짧게 진행한다. 계속 미루니까 안쓰게 ..