minuco
반응형
article thumbnail
Android Activity Life cycle
Android/TIL 2023. 3. 8. 00:48

Android Developers :: Life cycle 생명주기에 대해 한번 정리하고자한다. (andeoid Developers 참고) 생명주기에 대한 이해 사용자가 앱을 사용하면서 나가고 다시 돌아오고 하면서 Activity 인스턴스는 Life cycle 안에 서로 다른 상태를 통해 전환이 된다. Activity class는 Life cycle 의 상태변화(시스템이 활동을 생성, 중단 또는 다시 시작하거나, 활동이 있는 프로세스를 종료하는 등)를 알아차릴 수 있는 콜백을 제공한다. ※ Activity 상속 구조 Object > android.content.Context > android.content.ContextWrapper > android.view.ContextThemeWrapper > and..

article thumbnail
SharedPreferences
Android/TIL 2023. 3. 8. 00:45

키 - 값 데이터 저장 앱의 데이터들을 저장하여 관리해야하는 상황에서 데이터가 많거나 중요한 데이터라면 서버나, DB, File 형태로 저장한다. 하지만 간단한 설정 값이나 문자열 같은 데이터들은 DB에 저장하기에는 부담스럽고 애매한 경우가 많아 SharedPreferences 를 사용하여 데이터를 관리하면 좀 더 편하게 사용할 수 있다. SharedPreferences? 저장하려는 키-값 컬레션이 비교적 작은 경우 SharedPreferences API 를 사용해야한다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸수있는 간단한 메소드를 제공한다. (간단하게 말하면 sml 파일에 팔요한 데이터를 저장하여 쉽게 읽고 쓰는것) 위치 : data/data/(..

article thumbnail
JVM 동작과 실행과정
Android/java 2021. 8. 12. 08:33

목표 - 자바소스 파일 JVM 실행 과정 이해 학습할것 - JVM이란 무엇인가 - 컴파일 하는 방법 - 실행하는 방법 - 바이트코드란 무엇인가 - JIT 컴파일러란 무엇이며 어떻게 동작하는지 - JVM 구성요소 - JDK와 JRE 차이 1. JVM 이란 무엇인가? JVM (Java Virtual Machine) 이란 각 종 OS에 '독립적' 으로 java 프로그램을 작성하여 실행할 수 있게 해주는 구현체이다. EX) C 언어는 기계어로 컴파일이 되프로 H/W 에 맞게 각각 컴파일이 되어진다. - CPU 제조사에 따라 해석할 수 있는 기계어가 다르기 때문이다(C 프로그램은 플랫폼에 종속적). 그에 반에 java 프로그램은 cpu가 해석 할 수 있는 기계어가 아닌 JVM이 해석 가능한 가성 머신용 바이트 코..

article thumbnail
Java 기초개념 (컴파일, 실행)
Android/java 2021. 2. 27. 18:20

안녕하세요? 오늘부터 java에 대해서 공부해 보겠습니다. java란? java는 객체지향(OOP) 프로그래밍 언어입니다. 현재 웹 개발이나 앱 개발 등 다양한 실무에서 쓰이고 있습니다. java의 특징 ● 객체지향(OOP, Object OrientedProgramming) 언어이다. - 쉽게 생각하면 자동차를 만드는 과정에서 처럼 부품 하나하나(하나하나가 객체)를 만들어 조립해서 자동차를 완성한다고 생각하면 될 것 같습니다. ● 이식성이 높다. - 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. ● 메모리를 자동 관리한다. 등등 이 있습니다. java가 실행되는 과정 JVM은 운영체제에 따라서 알맞은 신호로 변경해서 프로그램의 구동을 도와줍니다. 하지만 각 운영체제..

article thumbnail
스레드 (Thread) - 제어
Android/java 2021. 2. 26. 23:46

스레드를 생성하고 시작하려면 스레드는 다양한 상태를 가지게 됩니다. 스레드의 상태는 자동으로 변경되거나 코드로 변경해서 제어할 수 있는데요. 이번 시간에는 스레드 제어에 대해서 알아보겠습니다. 스레드 상태 우선 스레드의 실행 흐름을 그림으로 알아보겠습니다. 스레드 객체를 생성하고 start() 메서드를 호출하면 바로 실행되는 것이 아니라 실행 대기 상태가 됩니다. 실행 대기상태란 언제든지 실행할 준비가 되어있는 상태를 말합니다. 운영체제는 실행 대기 상태에 있는 하나의 스레드를 선택하고 CPU가 run () 메서드를 실행상태로 만듭니다. 실행 상태의 스레드는 run() 메서드를 모두 실행하기 전에 다시 실행 대기 상태로 돌아갈 수 있고, 실행 대기 상태에 있는 다른 스레드 중에서 하나를 선택해 실행 상태..

article thumbnail
스레드 (Thread) - 동기화 메소드 (2)
Android/java 2021. 2. 24. 22:18

동기화 메서드 지난 시간에는 스레드 A를 사용하는 중 스레드 B를 사용하면 스레드 B가 스레드 A의 상태를 변경시켜버려 의도하지 않았던 결과를 얻었는데요, 이를 방지하기 위한 방법을 알아보겠습니다! 스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없게 하려면 스레드 작업이 끝날 때까지 객체에 잠금을 걸어서 다른 스레드가 사용할 수 없도록 해야 합니다. 멀티 스레드에서 단 하나의 영역을 실행할 수 있는 영역을 임계 영역이라 하는데 자바는 임계 영역을 지정하기 위해 동기화 메서드를 제공합니다. 내부의 동기화 메서드를 실행하면 즉시 객체에서 잠금을 걸어 다른 스레드가 동기화 매소드를 실행하지 못하게 해요! 그 방법을 설명드리겠습니다. 동기화 메서드를 만들려면 메서드 선언부에 synchronized 키워드를..

article thumbnail
스레드 (Thread) - 동기화 메소드 (1)
Android/java 2021. 2. 23. 23:58

싱글 스레드 프로그램에서는 1 개의 스레드가 객체를 독차지해서 사용하면 되지만, 멀티스레드 프로그램에서는 스레드들이 객체를 공유해서 작업해야 하는 경우가 있습니다. 이때 여러 스레드에서 동시에 한 객체에 접근할 수 있게 되면, 한 스레드에 의해 변경된 객체의 상태가 다른 스레드의 작업에 영향을 미쳐서 의도치 않은 결과를 낼 수 있습니다. 공유 객체를 사용할 때의 주의할 점 멀티 스레드 프로그램에서 스레드들이 객체를 공유해서 작업해야 하는 경우, 스레드 A가 사용하던 객체를 스레드 B가 상태를 변경할 수 있기 때문에 스레드 A가 의도했던 것과는 다른 결과를 산출할 수도 있습니다. User1 스레드가 Calculator 객체의 memory 필드에 100을 먼저 저장하고 2초간 일시정지 상태가 됩니다. 그동안..

스레드 (Thread) 하위클래스
Android/java 2021. 2. 21. 23:56

안녕하세요 오늘은 스레드(Thread) 2편입니다. 지난번 시간에 스레드란? 에서 Runnable로 스레드를 만들어 보았는데요. 지난 시간 내용입니다 :) 스레드 (Thread) 란? 우선 스레드를 공부하기 전 알고 넘어가야 할 개념이 있는데 프로세스(process)입니다. 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 시행되는데, 이것을 프로세스 itminco.tistory.com 오늘은 Thread를 하위 클래스로부터 생성해 보겠습니다. 작업 스레드가 실행할 작업을 Runnable로 만들지 않고, Thread의 하위 클래스로 작업 스레드를 정의하면서 작업 내용을 포함시킬 수 있습니다. Thread 클래스를 상속한 후 run() 메서드를 재정의(Overriding)해서 스레드가 ..

코틀린(Kotlin) 이란?
Android/Kotlin 2021. 2. 21. 03:31

안녕하세요. 오늘은 코틀린(Kotlin)에 대해서 공부해 보겠습니다. 코틀린(Kotlin)이란, JVM에서 동작하는 프로그래밍 언어입니다. 현재 현업에서도 JAVA에서 코틀린(Kotiln)으로 변환하는 추세입니다. 대표적으로 Android에서 많이 사용이 되고 있습니다. 안녕, Kotlin fun main() { println("안녕, kotlin") } 코틀린 (Kotlin)은 Java와 다르게 class를 따로 선언하지 않고 함수를 선언할 수 있습니다. 우선 함수 fun(Function)의 약자로, 앞으로 나올 코드가 함수임을 나타내는 키워드입니다. 함수는 그저 명령어들을 담아 놓는 상자라고 생각하시면 됩니다. 이름이 main인 함수는 프로그램의 시작점입니다. 함수는 거저 명령어들을 담아 놓는 상자라..

article thumbnail
스레드 (Thread) 란?
Android/java 2021. 2. 18. 22:41

우선 스레드를 공부하기 전 알고 넘어가야 할 개념이 있는데 프로세스(process)입니다. 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 시행되는데, 이것을 프로세스라 합니다. 그리고 내부에서 코드의 실행 흐름을 스레드(Thread)라고 하죠. 운영체제는 두 가지 이상의 작업을 동시에 처리하는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킨다. 스레드(Thread)의 뜻은 한 가닥의 실이라는 뜻이다. 한 가지 작업을 실행하기 위해 순차적으로 코드를 실처럼 이어 놓았다 해서 유래된 이름이다. 멀티 프로세스는 OS(운영체제)에서 할당받은 자신의 메모리를 가지고 실행하기 때문에 각 프로세스는 서로 독립적이다. 따라서 하나의 프로세스에..

article thumbnail
상수
Android/java 2019. 3. 29. 18:46

상수란? 변하지 않는 값을 말한다. 상수의 이름은 대문자를 주로 대문자를 사용하며, 여러 단어를 연결할 경우에는 _를 사용한다. 한번 선언한 상수는 값이 면하지 않기때문에 동시에 값을 지정하는 것이 좋다. 상수를 사용해야 하는 경우 - 값이 변하면 위험한 경우에 상수를 사용 - 값만 봤을때 무엇을 의미하는지 쉽게 파악할 수 없는 값에도 값 자체를 사용하기 보다는 상수를 사용

article thumbnail
문장 출력과 변수
Android/java 2019. 3. 29. 18:31

01. Hello world 문장 출력 기본적으로 이클립스에서 클래스를 만들때 main함수를 체크해주면 이런 모양의 코드가 자동적으로 작성이 됩니다. 그후 Systam.out.println("Hello World"); 입력해 줍니다. Systam.out.println("Hello World"); // Hello문장을 출력해라. ;(세미콜론)은 문장의 마침표 역활을 합니다. 여기서 .(도트)는 이클립스의 자동완성기능 입니다. 도트를 적어준후 (컨트롤 + 스페이스)를 누르면 자동완성기능이 실행 됩니다. System.ou.println();를 정리 Systam은 java.lang패키지 에 속하는 클래스이다. 따라서 import를 하지 않아도 바로 쓸수가 있다. java.lang.System 클래스 내부에 존대..

반응형