일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dfs #bfs #leetcode #python
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- 코틀린 #Do it #깡샘 #안드로이드
- leetcode #python #dfs #재귀
- 파이썬 #zip
- dfs #그래프 #graph #python #leetcode #course #schedule
- 2004 #조합 0의 개수 #백준
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- Python #leetcode #dfs #그래프 #백트래킹
- dfs #python #leetcode
- dfs #python #leetcode #combination
- dfs #leetcode #python #graph #그래프
- dfs #leetcode #python
- python #백준 #9375 #패션왕 #신해빈
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- final #java #자바 #안드로이드
- leetcode #subsets #dfs #itertools #python
- gcd #최대공약수 #백준 #2981 #검문
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- 아스테리스크 #Asterisk #파이썬
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- dfs #bfs #이진트리 #파이썬 #리트코드
- 리트코드 #팰린드롬 #파이썬
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- Today
- Total
목록Android/개발 관련 팁 (8)
멋진 개발자가 되고 싶다
스레드로 입 털기 우리가 안드로이드 앱을 만들면 단순한 앱일 경우 메인 스레드 하나만으로 동작할 것이야. 물론 우리가 사용한 코드 내부를 들어가 보면 다른 스레드를 쓸지도 모르지만 말이다. 그런데 말이다.. 너가 생각하는 멋진 앱을 만들고 싶다면 멀티 스레드는 필수가 된다.. 멀티 스레드가 뭐냐고? 이름만 들어도 스레드를 여러 개 돌려버린다는 뜻이지. 친절하게 예를들어 설명해주지. 네가 김치볶음밥을 만든다고 치자. 너는 햄을 볶고 나서 김치를 넣고 그 뒤에 밥을 넣어 잘 섞어준 다음 프라이팬에 있는 김치볶음밥을 접시에 올리겠지. 그 뒤에 쓰던 후라이팬을 이용해 달걀 프라이를 할 거야. 달걀 프라이를 다 하고 김치볶음밥에 얹게 되면 이미 김치볶음밥은 다 식어서 맛이 없게 된 뒤겠지? 이렇게 융통성 없게 하..
자바의 기본기를 닦고 안드로이드를 시작한 것이 아니기에 코드를 보다 보면 종종 static, final 같은 표현을 만날 때가 있다. 변수 선언을 하면 안드로이드에서 알아서 final을 달아라, static을 달아라 이러길래 시키는 대로 하고 있었는데 오늘에서야 확실하게 짚고 넘어가려 한다. final 여러 컨텍스트에서 단 한 번만 할당될 수 있는 entity를 정의할 때 사용됩니다 (위키피디아 참고) 단순하게 말하면 final로 선언된 변수는 한번 초기화되면 다른 값으로 재할당할 수 없다는 것이다. 1 2 3 4 public void test(){ final String str = "abc" // abc라는 값이 할당된 String 변수 str str = "def" // 에러 발생! } Colored ..
안드로이드 코드를 짜다 보면 토스트 메시지를 띄울 때 getApplicationContext()를 입력하게 된다. 뭐 이렇게 쓰니까~ 하고 넘어갈 수도 있는데 어떤 의미인지 짚고 넘어가자. context 어플리케이션 혹은 액티비티에 대한 전역적인 정보를 담고 있음 Application Context - 어플리케이션의 생명주기에 영향을 받아 어플리케이션이 시작하고 종료할 때까지 동일한 객체로 구현되어 있다. - 앱이 종료될 때 까지 살아있다. - getApplicationContext()를 통해 참조할 수 있다. Activity Context - 액티비티의 생명주기에 영향을 받아 액티비티가 시작하고 종료할 때 까지 동일한 객체로 구현되어 있다. - onDestroy()가 호출되면 사라진다. - getCon..
http 서버에서 데이터(파일)를 받아와서 안드로이드에서 파일을 실행하는 과제를 하고 있다. 하지만 기본적으로 서버와 클라이언트의 개념도 몰랐기 때문에 이번 포스팅은 안드로이드폰에서 데이터를 보내면 서버에서 데이터를 받아다가 다시 안드로이드로 보내주는 내용이 될 것이다. 파이썬으로 서버를 돌리는 이유는 "간단한 코드로 되어 있어 구동이 제일 간편하기 때문" python_server.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 import socket host = '' port = 9999 server_sock = sock..
엑소 플레이어란? ExoPlayer는 Android용 애플리케이션 레벨 미디어 플레이어로, Android의 Media Player 대신 사용할 수 있습니다. 로컬 및 인터넷을 통해 오디오/비디오를 재생할 수 있습니다. ExoPlayer가 인기 있는 또 다른 이유는 MediaPlayer에서 지원되지 않는 HTTP(DASH) 및 SmoothStreaming과 같은 많은 기능을 지원하기 때문입니다. 커스터마이징이 매우 용이하며 많은 특징과 기능을 제공합니다. 무엇을 다룰까요? 앞서 언급했듯이 ExoPlayer는 커스터마이징이 가능하고 모듈식입니다. 이를 통해 맞춤형 구성 요소 구현을 포함하고 필요에 맞게 완벽하게 조정할 수 있습니다. 문자 그대로 두 줄의 코드가 있어야 원시 오디오를 재생할 수 있는 안드로이드..
네트워크는 Network Interface, Internet, Transport, Application 4개의 계층으로 나뉜다. Transmission Control Protocol의 약자인 TCP는 UDP와 함께 Transport 계층의 대표적인 프로토콜이다. TCP는 웹이나 이메일같이 데이터가 정확하게 전달되어야 하는 통신에 사용된다. 통신을 맺고 끊는 과정에서 Client와 Server 간에 확인 절차를 거치는데 이러한 특징으로 연결지향(Connection Oriented) 프로토콜이라고 한다. UDP는 VoIP나 동영상 스트리밍같이 전송 속도가 빨라야 하는 통신에서 사용한다. TCP와는 달리 연결을 맺지 않고 한 쪽에서 일방적으로 데이터를 보낸다. 따라서 이러한 특징을 비연결지향(Connectio..
1. 파이썬 파일 없이 콘솔 만으로 http 구축하기 (1) "cd 원하는 위치" (2) "python -m http.server 80" : 80번 포트를 열겠다! 내 컴퓨터 상에서 브라우저로 접속할 시 http://localhost/ 혹은 http://127.0.0.1/ 이런 식으로 입력하면 된다. 같은 wifi를 공유한다던지 같은 ip를 사용하는데 다른 기기에서 접속하고 싶으면 콘솔 창을 띄우고 "ipconfig"를 입력. 거기에서 ipv4 주소를 확인. http://ip주소/ 이런 식으로 접근하면 된다. 2. 파이썬을 이용하여 http 구축하기 1 2 3 4 5 6 7 import http.server httpd = http.server.HTTPServer(('0.0.0.0', 8080), http..
이번 포스팅은 build.gradle 파일에 있는 compileSdkVersion과 targetSdkVersion이 무엇인지 알아보겠습니다. 우리는 보통 새로운 Android SDK 버전이 출시되면 이 두 API 레벨 값을 모두 업데이트합니다. 하지만 우리는 왜 이렇게 설정하는 걸까요? 그리고 보통 같은 값으로 설정하는데 왜 두 개가 있는 걸까요? compileSdkVersion과 targetSdkVersion은 모두 Android에서 이전 버전과의 호환성을 처리하는 데 매우 중요하므로, 새로운 Android SDK 버전이 나타날 때 수행할 작업과 연결됩니다. 하지만 그것들이 정확히 어떻게 작동할까요? compileSdkVersion Gradle에서 어떤 Android SDK 버전을 사용하여 앱을 컴파일..