전체 글 51

[Spring Boot] 스프링부트 시작하기-개발환경

스프링 부트를 사용하는 이유 스프링을 사용하다가 스프링 부트로 바꿔서 얻는 가장 큰 이점이라 하면 바로스프링에서XML을 이용하여 애플리케이션 구조를 생성하던것을 자바 구성(Java Config)를 통해서 애플리케이션 구조를 생성할 수 있다는 점입니다. 그 이외의 부수적인 이유들 중 몇개는 아래와 같습니다. 단독 실행 가능한 스프링 애플리케이션 생성 내장 서블릿 컨테이너 사용(디폴트는 톰캣이며 제티, 언더토우등으로 교체 가능) 스타터(starter)를 통해 간결한 의존성 구성 지원 라이브러리 의존성 버전 관리 스프링부트 설치 https://start.spring.io/ Project : Gradle Project Spring Boot : 디폴트로 선택되어 있는 것 Artifact : 본인이 생성하고 싶은 ..

카테고리 없음 2021.09.13

도지코인 채굴(마이닝) 방법(unMineable)

최근 도지코인이 급상승하면서 핫 이슈로 떠올랐습니다. 도지코인에 시드를 직접투자하기에는 부담이 있어 채굴을 해보려고 합니다. 검색중에 쉽게 pc로 채굴을 할 수있는 방법이 있어 소개해드리려고 합니다. 바로 unMineable 사이트를 통해 마이닝을 하는건데요. 방법은 직접 프로그램을 다운 받아 마이닝을 하거나 cmd 창에서 진행하는 방법 두가지가 있습니다. 우선 사이트에서 다운받는 방법을 소개해드리겠습니다. 1. 언마이너블 사이트로 이동합니다. unMineable - Mine your favorite non-mineable crypto coin or token! www.unmineable.com 홈페이지를 접속해서 다운로드를 클릭합니다. 도지코인 뿐만아니라 비트코인부터 이더리움, 다양한 암호화폐들을 채굴..

[서울-강서구-염창] 마라탕 맛집 홍마방

염창역 맛집 염창역 목2동 시장길에 줄서서 먹는 맛집 한군데 소개해 드릴까해요.🤩 힘들게 닌텐도 스위치를 겟하고 저녁을 먹으러 5시 30분쯤 갔나봐요. 오픈 11시 30분이고 중간 브레이크 타임은 15:00-17:00 예요. 내부는 4인 테이블 3개정도 2인테이블 4개 그리고 바 자리 1인석 6개쯤 이렇게 구성되어 있어요. 주문과 동시에 오픈 주방에서 빠르게 조리해 주시는데 끓고 있는 국수기계에 야채 데치고 면 삶아 따로 준비된 뜨건 육수 바로 부어주시는 조리법이라 음식 나오는 시간이 그리 오래걸리진 않아요. 5~10분이면 후다닥 나오더라구요. 기다리는 동안 예능 보려고 핸드폰 틀었는데 바로 나와서 껐어요.... 저는 마라탕(6500원), 탄탄면(6500원), 성젠바오(6000원) 이렇게 3가지를 주문했..

Daily-J/맛집 2020.11.17

Dagger란? -dagger 시작

Dagger2 란 무엇일까? Dagger는 자바와 안드로이드에서 의존성 주입을 구현하기 위해 사용하는 프레임 워크 입니다. 의존성 주입(Dependency Injection)이란? DI는 Dependency Injection의 약자로 의존성 주입을 의미합니다. 구성요소간의 의존 관계가 내부가 아닌 외부를 통해 정의되게 하는 디자인 패턴 중의 하나입니다. 의존성 주입의 목적은 객체를 생성하고 사용하는 관심사를 분리하는 것입니다. 위에 그림과 같이 내부가 아닌 외부에서 객체를 생성해서 주입하는 것을 의미합니다. 의존성 주입은 다음과 같은 장점이 있습니다. 코드의 재사용 리팩토링 쉬움 테스트 쉬움 보일러플레이트 코드 감소 의존성을 주입할수 있는 방법은 여러가지가 있습니다. * 직접 의존성 주입하기 : 작은 프..

Android 2020.04.21

it 기술면접 질문들(계속 업데이트)

JAVA String / StringBuffer / StringBuilder string 은 불변하고 Stringbuffer Stringbuilder 은 가변적이다. String은 문자열 연산이 적고 자주 참조하는 경우에 좋다. 특히 멀티쓰레드 환경에서는 신경쓸 필요가 없다. StringBuffer는 멀티쓰레드환경에서 동기화가 가능하다. StringBuilder 는 동기화를 지원하지 않기 떄문에 멀티쓰레드 환경에서는 적합하지 않다. JAVA String java에서 string 생성방식에는 두가지가 있습니다. new연산자를 이용한 방식 리터럴을 이용한 방식 두 가지 방식에는 큰 차이점이 있습니다. new를 사용해 String을 생성하면 Heap 영역에 존재하게 되고 리터럴을 이용할 경우 string co..

면접질문들 2020.03.01

안드로이드Q 개인정보 보호정책 변경사항

안드로이드 Q 버전부터는 더이상 사용자가 재설정할 수 없는 디바이스 식별자를 제공하지 않습니다. 권한을 가진 앱은 READ_PRIVILEGED_PHONE_STATE 권한을 가져야하나 Google Play 스토어에 등록된 앱은 해당 권한을 선언할수 없습니다. 즉, 일반적인 앱들은 접근이 불가능합니다. 기존에 사용되었던 값들은 아래와 같은 값들을 반환하게 됩니다. TelephonyManager getDeviceId() - null getImei() - null getMeid() - null Build getSerial() - unknown SERIAL - unknown WifiInfo getMacAddress() - 02:00:00:00:00:00 권장 사항 https://developer.android.c..

Android 2020.01.06

[Android] Fake gps 앱 및 모의위치 탐지

앱에서 네트워크 위치 및 gps 위치가 아닌 모의 위치를 사용하는 것을 탐지하려면 아래와 같이 작성 하면 됩니다. 1. 현재 기기에 MockSetting 옵션이 ON 인지를 검사하여 탐지 하는 방법 12345678910111213public static boolean isMockSettingsON(Context context){ boolean isMockLocation=false; try{ if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){ AppOpsManager opsManager=(AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE); isMockLocation=(opsManager.checkOp(Ap..

Android 2019.07.02

[Android]Retrofit을 이용한 apk 파일 다운로드 및 설치

개발 도중 플레이스토어에 올라가있지 않은 앱을 업데이트 하기위하여 앱에서 노티를 띄워 apk파일을 받아 설치하는 것을 구현하였습니다. 백그라운드에서 다운로드를 하고 notification에 progress를 업데이트 하기위해 아래와 같은 코드를 작성해야합니다. 1. Project Setup build.gradle에 retrofit의존성을 추가해줍니다. 1 implementation 'com.squareup.retrofit2:retrofit:2.5.0' Manifest에 아래와 같은 권한을 설정합니다. 1 2 3 4 5 6 7 또한 Android 7.0(Nougat / API 24)부터 Intent로 URI 파일 경로 전송시 "file://" 노출되어 있으면 FileUriExposedException 오류..

Android 2019.06.26

FileUriExposedException 오류 File Provider 로 해결

Android 7.0 이상부터 파일공유 정책이 변경되었습니다. Android 7.0 이상에서 File 경로를 Uri로 변경하고자 할 경우 아래와 같은 오류를 맞이하게 됩니다. Android 7.0 이상에서는 앱 외부에서 file://URI의 노출을 금지하는 StricMode API 정책을 적용합니다. ㅠㅏ일 URI를 포함하는 인텐트가 앱을 떠나면 FileUriExposedException 예외와 함께 오류가 발생합니다. 애플리케이션 간에 파일을 공유하려면 content://URI를 보내고 이 URI에 대해 임시 액세스 권한을 부여해야 합니다. 이 권한을 가장 쉽게 부여하는 방법은 FileProvider 클래스를 사용하는 방법입니다. res/xml/file_paths.xml 생성 AndroidManifes..

Android 2019.06.25

안드로이드 4대 컴포넌트란 무엇인가? -Service

서비스(Service)란? UI없이 백그라운드에서 실행되는 기능을 말합니다. 예를 들면 노래를 켜고 웹 서핑을 하는 상황이 있습니다. 우리가 음악을 듣는 어플을 사용할 때 보통 어플에 들어가 노래를 켜고 다른 화면으로 가거나 화면을 끄거나 다른 어플리케이션을 사용합니다. 그럼에도 불구하고 노래를 들을 수 있는건 백그라운드에서 노래를 틀어주는 작업을 수행하고 있기 때문입니다. 하지만 이러한 작업을 서비스를 사용하지 않고 별도의 스레드를 생성해 백그라운드 작업을 하면 문제가 발생합니다. 쓰레드로 백그라운드 작업을 하다가 앱에서 back 키를 눌러 액티비티를 모두 종료할 시 앱 프로세스의 우선순위가 낮아져 LMK(low memory killer)가 프로세스를 강제로 종료 할 수 있습니다. 이 때 쓰레드도 종료..

Android 2019.03.30