분류 전체보기 93

[모바일 프로그래밍] 비만도 계산기 앱 만들기

Anko 라이브러리 Kotlin 개발자가 개발한 Kotlin 전용 Android 개발 라이브러리이다. 그러나 현재는 더 이상 사용되지 않고 있다. this page로 들어가보면 Anko 라이브러리가 더 이상 쓰이지 않는 이유를 볼 수 있다. 그리고 Anko를 대신할 라이브러리들을 소개해준다. 지금은 Anko 라이브러리를 써보자... dependency에 Anko 추가한다. implementation "org.jetbrains.anko:anko:$anko_version" 현재 anko_version이라는 변수값이 존재한다. 이 변수값은 Project 레벨의 Module에서 값을 추가해준다. 그리고 Sync Now 버튼을 클릭한다. Main Activity Layout 1. 키(height)를 입력할 Edi..

KoreaTech 2020.04.02

[번역] Google Play 인디 게임 페스티벌 결선 진출작들을 만나다.

출처 : Android Developers Blog 원문 링크 올해 초, 유럽과 일본 그리고 한국의 훌륭한 인디 게임들을 축하하는 국제 대회인 Google Play Indie Games Festival 2020 참가 신청 접수가 시작되었습니다. 우리는 각 팀의 기술적인 능력과 획기적인(groundbreaking) 창의성을 선보이는 수백개의 멋진 작품들을 받았습니다. 게임을 제출한 모든 분들께 감사드립니다. 밤 늦게까지 힘든 선택을 한 끝에, 각 지역의 결선 진출 20 작품을 발표할 수 있어 기쁩니다. 알파벳 순으로 나열된 아래의 선정작들을 확인하시길 바랍니다. 각 작품은 진정한 예술 작품입니다. 선정된 각 팀들은 그들의 사업이 성장하는데 도움이 될 상금과 혜택들을 받게 됩니다. 또한 최종 작품을 선택하는..

Android Developer 2020.04.01

[모바일 프로그래밍] string.xml을 통한 다국어 설정 + 국제화, Non-Translatable Setting

Android 다국어 설정 방법(string.xml) TextView, Button, EditText 등 text 속성을 주로 사용하고, 해당 속성에서 바로 문자열을 입력하면 다음과 같은 경고 메시지를 볼 수 있다. Hardcoded string "안녕!", should use @string resource 현재 text 속성에 입력한 "안녕!" 이라는 문자열은 HardCode 되었기 때문에, string resource를 통해서 사용하라! 는 경고 메시지이다. 위 경고 메시지를 없애기 위해서는 메시지 그대로 string resource를 사용해서 문자열을 불러와야한다. 이 말은 res - values - string.xml 파일에 문자열을 등록해야 한다는 뜻이다. 처음에는 "app-name"에 "Mob..

KoreaTech 2020.03.31

[모바일 프로그래밍] Scratch

Android Studiod에는 App 개발과 별도로 간단한 코드를 실험 해볼 수 있다. Scratch 파일 이 그 목적으로 사용된다. Scratch 파일 생성은 간단하다. File - New - Scratch File 에서 생성할 수 있다. Java와 .gitignore 목록 사이에 있는 가이드선을 기준으로 위에는 최근에 생성했던 Scratch 파일의 종류를 볼 수 있고, 그 아래에는 Scratch 파일을 생성할 수 있는 모든 종류가 나와있다. 생성된 파일은 Project View에서 Project 단에서 볼 수 있다. 1. 코드를 작성한다. 간단하게 HashMap에 대한 코드를 작성했다. import java.util.HashMap; class Scratch { public static void ma..

KoreaTech 2020.03.30

AMD 에서 Android HAXM 오류 문제 해결

데스크탑을 새로 맞추면서 Android Studio에서 AVD를 돌려보려고 하는데 Android Version을 선택하는 창의 모서리에 Install HAXM 이라는 하이퍼링크가 활성화 되어있었습니다. Version은 당연히 Download가 안되었고 저걸 클릭하여 설치해야 하나보다 싶었는데... 아래와 같이 오류가 떴습니다. 오류 상황에 캡처할 생각을 하지 못하여 다른 블로그의 사진을 캡처하여 왔습니다. 출처 : https://codedragon.tistory.com/7747 대충 오류 내용을 읽어보면 Intel의 Hyper-V 기능을 활성화하지 못했다는 그런 문구 같았습니다. 여기서 제가 찔끔했던 부분은 이번에 맞춘 데스크탑의 CPU는 AMD의 Ryzen 이라는 점이었습니다. 그래서 CPU의 회사가 ..

NotePad 2020.02.10

[알고리즘] N-Queen

백트래킹(BackTracking) 가능한 모든 방법을 탐색한다. 단, 한정 조건을 통해 유망성을 점검하고 유망하지 않으면 해당 경우의 수를 배제한다. N-Queen N*N 체스판에 N개의 퀸을 서로 공격할 수 없게 배치하는 경우의 수를 출력하는 문제이다. 나의 멍청했던 접근법 단순하게 2차원 배열을 생성하고 모든 값을 0으로 초기화한 후에, 퀸을 하나 두었을 때 공격 가능한 모든 칸을 1로 바꾸고 남아 있는 0 중에 하나에 퀸을 두고 또 1로 바꾸고... 이런식으로 구현을 하였다. 정말 단순하고 무식한 방법이었다. 모든 경우의 수를 보았기 때문에 시간은 엄청나게 소요되었고, 중복된 경우의 수도 횟수에 추가되어서 어마어마한 뻥튀기 결과값을 초래했다. 해답 우선, 2차원 배열을 생성할 필요가 없다. 1차원 ..

NotePad 2020.01.26

[알고리즘] 정렬(Sort)

n개의 숫자가 입력으로 주어졌을 때, 이를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘 1. 선택 정렬(Selection Sort) 현재 위치에 들어갈 값을 찾아 정렬하는 배열 현재 위치에 저장 될 값의 크기가 작냐, 크냐에 따라 __최소 선택 정렬(Min-Selection Sort)과 최대 선택 정렬(Max-Selection Sort)로 구분 최소 선택 정렬은 오름차순, 최대 선택 정렬은 내림차순 로직 정렬 되지 않은 인덱스의 맨 앞에서부터, 이를 포함한 그 이후의 배열값 중 가장 작은 값을 찾아간다. C++ STL : sort algorithm 헤더파일에 속해 있다. sort(start, end)를 이용하여 start 이상, end 미만에 있는 인자를 오름차순(default)으로 정렬해주는..

NotePad 2020.01.14

C# 과 Python 연동

1. IronPython 설치 Visual Studio 2019 - 도구 - Nuget 패키지 관리자 - 패키지 관리자 콘솔 PM> Install-Package IronPython -Version 2.7.9 2. Python 코드 3. C# 코드 디렉터리 구분자는 역슬래시(\)가 아니다. 4. C# 코드 실행 알아낸 점 IronPython 실행과정 엔진 생성 var engine = IronPython.Hosting.Python.CreateEngine(); 스코프 생성 var scope = engine.CreateScope(); 파일 읽기 var source = engine.CreateScriptSourceFromFile("~~~~~~~"); 스코프를 넣어 파일 실행 source.Execute(scope)..

NotePad 2020.01.07

[Android] APK 용량 줄이기

APK Size 줄이기 1. ProGuard 를 사용하자. ProGuard 는 사용하지 않는 Java 코드를 제거해준다. Code foot prints 를 줄이는데 굉장히 효과적이다. 2. Split Apk 사용하자. 특정 해상도나, ABI 에 따라 별도 Apk 를 만들 수 있다. 특히 앱 사이즈를 크게 줄여준다. 3. 최종 Apk(+ProGuard) 이후에 Facebook's ReDex 를 이용해 최적화 하자. Code Size 도 줄여줄 뿐만 아니라, 잠재적인 성능향상에도 도움이 된다. 4. 사용하지 않는 XML files 를 확인하자. Lint 같은 툴들이 사용하지 않는 리소스를 체크하고 지워준다. 5. 최대한 Resource 를 줄이자. Gradle 의 shrinkResources 를 사용..

Android Developer 2019.10.08

[인터네트워킹] 2. 기본 네트워크 구축

Packet Tracer 를 이용하여 LAN, WAN 구축하기 Topology WAN LAN 개수 : 2개 (192.168.20.0/24 , 192.168.22.0/24) 라우터(2811) 설정 하드웨어 : WIC-2T 모듈 2개 장착 외부망 케이블 : DCE 케이블 내부망 케이블 : Copper Straight IP 설정 Router0 Port Router0(1) 192.168.20.254/24 FastEthernet 0/0 192.168.22.254/24 192.168.21.1/24 Serial 0/0/0 192.168.21.2/24 192.168.23.1/24 Serial 0/1/1 192.168.23.2/24 LAN 스위치 Vlan1 : 192.168.X.253/24 PC1 : 192.168.X...

KoreaTech 2019.09.12

[인터네트워킹] 1. 인터네트워킹 개요

인터네트워킹 장비 스위치(Switch) 와 라우터(Router) 스위치(Switch) 라우터(Router) L2(DataLink) 계층 L3(Network) Frame 데이터 단위 Packet MAC Address(6Byte) 주소 체계 IP Address(4Byte) 필터링 // LAN 길이 확장 (내부망 연결 담당) 기능 라우팅 // 원거리의 LAN/MAN/WAN 연결 (외부망 연결 담당) 전달 브로드캐스트 처리 차단 네트워크 장비 동작 영역 Name Hub Bridge Switch Router Topology Collision Domains 1 4 4 4 Broadcast Domains 1 1 1 4 Collision Domains : Bridge, Switch, Router 는 데이터 필터링 기능..

KoreaTech 2019.09.11

[IOT프로그래밍] Chapter 2 : Introduction to HyperText Markup Language : PART 1

2.1 Introduction HTML(HyperText Markup Language) HyperText : 평문 이상의 데이터(비디오, 오디오 등등) Markup Language : 시작과 끝 을 표현하는 언어 2.2 Markup Languages HTML Markup 의 특징 모든 태그들이 인터프리터(브라우저)에 저장되어 있다. 모든 태그들은 닫힘이 있어야한다. Not Case Sensitive : 대문자 소문자 구분하지 않는다. 2.3 Editing HTML HTML Source Code HTML 문서는 텍스트 에디터 를 통해 만들 수 있다. Notepad(WIN), Vi(UNIX), Atom 등등 HTML 인터프리터는 Line by Line 으로 문법 검사를 하며 만약에 발생하는 문법 오류를 무시..

KoreaTech 2019.09.10

[Android] AsyncTask

AsyncTask Added in API level 3 public abstract class AsyncTask extends Object java.lang.Object -> android.os.AsyncTask Intro UI Thread(Main Thread) 어플리케이션의 프로세스를 실행하는 쓰레드 화면 구성 담당 : Button, TextView 등의 UI 구성 요소를 생성 및 조작할 때 상호작용하는 쓰레드 시간이 오래 걸리는 작업은 UI 쓰레드로부터 분리하여 별도의 쓰레드에서 실행 하는 것이 좋다.(UI쓰레드 지연 및 차단 방지) Android UI 도구는 쓰레드로부터 세이프하지 않다. 따라서 UI 쓰레드가 아닌 쓰레드에서는 UI 구성요소를 조작하지 않는다. AsyncTask UI 쓰레드 를 적..

Android Developer 2019.08.02

[Android] Task 와 Back Stack

[ActivityBackStack] Task 특정 작업을 수행할 때 사용자와 상호작용하는 액티비티들의 모음 액티비티들은 실행된 순서대로 스택에 쌓인다. 이 스택을 백스택 이라고 한다. Example - 새 메시지의 목록을 보여주는 액티비티 하나를 가지는 이메일 앱 사용자가 메시지를 선택하면 해당 메시지를 보여주는 새 액티비티가 실행되고 백스택에 PUSH 된다. 사용자가 뒤로가기 버튼을 누르면 방금 열린 액티비티가 종료되고 스택에서 POP 된다. 다중 창 지원 환경(7.0 이상) 에서 어플리케이션들이 동시에 실행될 때, 시스템이 각 창마다 task들을 분리하여 관리 한다. 각 창은 여러 태스크를 가질 수 있다. (Chromebooks 에서 실행되는 안드로이드 앱의 경우도 마찬가지이다) 기기의 홈 화면은 대..

Android Developer 2019.07.15

[Android] Log

[Log] Log 로그 출력을 담당하는 API 일반적으로 Log.v(), Log.d(), Log.i(), Log.w(), Log.e() 메서드를 사용한다. logcat 창에서 로그들을 볼 수 있다. 자세한 정보의 순서는 ERROR, WARN, INFO, DEBUG, VERBOSE 이다. VERBOSE : 개발 할 때 를 제외하고 응용 프로그램에 컴파일 해서는 안된다. DEBUG : 컴파일되지만 런타임에 제거 된다. ERROR, WARN, INFO : 항상 보관 된다. 클래스 내에서 TAG 상수를 선언하는 좋은 예시 private static final String TAG = "MyActivity"; Log.v(TAG, "index=" + i); Log.d 로 전달할 문자열을 작성할 때 컴파일러는 Stri..

Android Developer 2019.07.10

[Android] Activity의 LaunchMode

LaunchMode 액티비티 실행시 쌓이는 액티비티 스택에 대한 운영 방식 을 설정하는 모드 이다. 하나의 액티비티 스택 == 태스크 ( Task ) == 백스택 모드에 따라 하나의 태스크 또는 여러 개의 태스크에서 어플리케이션이 실행될 수 있다. LaunchMode는 총 4개이며, manifest의 activity 요소의 android:launchMode 속성으로 지정할 수 있다. 액티비티에 LaunchMode 값을 지정하지 않는다면 기본 값인 standard 가 들어가게 된다. 다중 인스턴스 지원 여부에 따른 분류 지원 有 : standard, singleTop ( singleTop 은 조건부 지원 ) 대부분의 액티비티에 대한 일반적인 시작 지원 無 : singleTask, singleInstance..

Android Developer 2019.07.10

Ant, Maven

Ant ( Apache Ant ) ANT : Another Neat Tool ( 또 다른 균형잡힌 도구? ) 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구 자바 프로젝트들을 빌드하는데 표준으로 사용된다. 빌드를 위한 환경구성을 XML 파일을 사용한다. ( 기본적인 빌드 파일명 : build.xml ) Maven 공식 문서 : http://maven.apache.org/what-is-maven.html 공식문서를 번역하여 정리하기로 하였다. Maven : 이디시어(유대어의 일종)에서 비롯된 말로써, 지식 축적기 라는 의미이다. Maven 의 기능 1. 쉬운 빌드 프로세스 ( Making the build process easy ) Maven은 빌드 프로세스의 근본적인 메커니즘을 세세히 알..

카테고리 없음 2019.07.08

[Android] 난독화(Proguard)

Proguard 코드 난독화 및 APK 최적화를 위한 도구 왜 필요한가? 코드 난독화를 통해 디컴파일시 본인의 코드가 노출되는 것을 방지 불필요한 메서드를 제거하여 멀티덱스를 피할 수 있다. MultiDex? 안드로이드 앱을 구성하는 코드는 컴파일 되어 덱스(Dex) 파일로 만들어 진다. 하나의 덱스 파일은 최대 65536개 의 메소드만 참조 할 수 있다. 만약 프로젝트의 코드가 65536개의 메소드를 초과하면 여러 개의 덱스파일 이 생성된다. 멀티 덱스를 사용하여 컴파일 할 수 있지만, 빌드 과정에서 앱 내의 파일을 여러 덱스파일로 나누어야 하므로 빌드 속도가 느려지고 APK의 용량이 커진다. Proguard 와 Non-Proguard 비교하기 디컴파일러 : jadx v0.9.0 사진 위에 걸린 링크를..

Android Developer 2019.05.14

[데이터분석개론] Gephi로 데이터 분석 및 시각화 실습

데이터 시각화 방법 정리 1. 빅카인즈에서 다운 받은 Raw 데이터를 어느 정도 필터링 하여 단어 분할한 후에 Gephi로 Import 한다. 2018년 E스포츠 기사들이다. 2. Statistics를 수행한다. Average Degree Modularity Eigenvector Centrality 3. Filters 를 설정한다. Degree Range Partition ( 이후 과정에서 설정 ) 4. Filter 를 클릭하면 아래와 같이 그래프가 출력된다. 위 그래프는 각 노드의 Degree(엣지 개수)가 400개 이상인 노드들만 모아진 것이다. Arial Bold, 32 를 클릭하여 폰트를 한글 폰트로 설정한다. ( 한글 폰트로 바꾸지 않으면 한글 텍스트가 깨진다. ) 5. Appearance 를 ..

KoreaTech 2019.05.03

[Android] OpenSource, ButterKnife, Firebase

Open Source Open Source Library? Open Source License를 가진 Library 누구나 제한 없이 재사용, 수정, 사용 할 수 있다. 대부분의 오픈소스 소프트웨어는 GNU General Public License 를 가지고 있다. GNU General Public License는 대표적인 Open Source License 이다. ButterKnife 뷰를 쉽게 바인딩 해주는 라이브러리 1. ButterKnife Download butterknife github 에 나온 Download 가이드를 따라서 compileOptions 와 dependencies 를 추가합니다. !!!! 그런데 !!!! 이런 빌드 오류가 발생하네요....?? 그러면 오류문이 하라는대로 해보겠습..

Android Developer 2019.05.02
반응형