본문 바로가기

Programming

(467)
컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[1/2] HashMap은 Map의 인터페이스를 구현하는 대표적인 Map 컬렉션입니다. HashMap에서 키로 사용할 객체는, hashCode( )와 equals( ) 메서드를 오버라이드 하여 동등 객체가 되는 조건을 정해야 합니다. 쉽게 설명하자면, 키는 유니크 값이기 때문에 중복으로 존재할 수 없기 때문이죠. 키가 같다면 이는 동일한 Entry로 취급해야 하기 때문입니다. 같은 객체로 판단하는 프로세스는 다음과 같습니다. 1. 우선, hashCode( )의 리턴 값이 같으면 equals( )의 리턴 값을 점검합니다. > 만일 hashCode( )의 리턴 값이 다르면 이는 즉시 다른 키로 인식합니다. 2. equals( )의 리턴 값까지 true라면, 이는 같은 키로 판정을 완료합니다. > 만일 false가 리턴..
2. 안드로이드 기본 구조의 이해 (3) - 리소스 외부화, XML 안드로이드 개발 시 주요 특징 중 하나는, '리소스의 외부화'를 극대화한다는 점입니다. 리소스를 외부화하여, 모듈로서 사용하는 방식은 비단 안드로이드뿐만 아니라 다른 언어나 IDE 등에서 많이 사용되는 기본 원리이긴 합니다. 하지만 안드로이드에서 이러한 리소스 외부화를 강조하는 이유는 무엇일까요? 한번 차근차근 살펴보겠습니다. 일단 여기서 말하는 '외부화'가 진행되는 리소스는 정적인(static) 리소스 입니다. JAVA에서의 static과 혼동하지는 않기를 바랍니다. 여기서 말하는 정적인(static) 리소스는 누가 언제 실행하든 항상 같은 결과가 나오는 콘텐츠를 의미합니다. 대표적인 것이 바로 문자열(String)입니다. 예를 들어서 어떤 장문의 스트링 "안녕하세요, 회원가입을 하려면 .......을..
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[2/2] 앞서서 Map에서의 간단한 공통 인터페이스 메서드를 살펴보았습니다. 컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] 이번에는 Map 컬렉션에 대해서 살펴보겠습니다. Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조입니다. 중요한 특성 중 하나는, key는 중복 저장할 수 없으며 value는 중복 저 nozeroslope.tistory.com 우리가 어떤 객체의 키를 이미 알고 있다면, get( ) 메서드를 이용해 간단하게 객체를 찾아올 수 있습니다. 하지만 저장된 전체 객체를 하나씩 얻어서 처리하려는 경우에는 두 가지 방법을 사용할 수 있습니다. 1. keySet( ) 메서드 사용 2. entrySet( ) 메서드 사용 각각의 방법을 살펴보겠..
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] 이번에는 Map 컬렉션에 대해서 살펴보겠습니다. Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조입니다. 중요한 특성 중 하나는, key는 중복 저장할 수 없으며 value는 중복 저장이 가능하다는 점입니다. - 만일 기존 키와 동일한 key로 특정 value를 저장하게 되면 기존의 value는 없어지고, 새로운 value로 대치하게 됩니다.    Map 컬렉션에는 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 등이 있는데 여기서는 우선 Map 컬렉션에서 공통으로 사용되는 Map 인터페이스의 메서드를 확인해 보겠습니다. Map 컬렉션은 Key를 통해서 객체를 호출하고 관리하는 경우가 많기 때문에, 키를 파라미터 값..
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 3 이제까지 안드로이드의 '컴포넌트(component)에 대해서 기본적인 속성들을 살펴보았습니다. 이러한 컴포넌트에는 네 가지 종류가 존재합니다. 세부 사항은 계속 살펴볼 예정이므로, 간단하게 요약해 살펴보겠습니다. 1. Activity(액티비티) : UI 구성을 위한 컴포넌트 2. Service(서비스) : UI 없이 백그라운드에서 장시간 수행되는 컴포넌트 3. ContentProvider(콘텐츠 프로바이더) : 애플리케이션 간 데이터를 공유하기 위한 컴포넌트 4. BroadcastReceiver(브로드캐스트 리시버) : 이벤트 모델로 수행되는 컴포넌트 ○ Activity(액티비티) 가장 기본적으로 사용자 화면을 제공하는 컴포넌트 입니다. 화면을 구성하는 컴포넌트이므로, 자연스럽게 가장 많이 사용하는 컴포..
컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [2/2] 앞선 아티클에서 HashSet의 기본 사용방법을 알아보고, hashCode( )와 equals( ) 메서드를 살펴보았습니다. 이번에는 사용자 정의 클래스를 통해서 hashCode( )와 equals( ) 메서드를 오버라이드해 사용하는 예시까지 살펴보도록 하겠습니다. 컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [1/2] 본격적으로 Set 컬렉션의 구현 클래스를 살펴보겠습니다. 우선, HashSet을 보겠습니다. 기본적으로 HashSet 생성은 아래와 같이 기본 생성자를 호출하는 방식입니다. 타입 파라미터 E에는 컬렉션에 nozeroslope.tistory.com 이번에는 사용자 정의 클래스인 Member 클래스를 선언하도록 하겠습니다. 우리가 하고자 하는 것은, 이 Member 인스턴스..
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 2 앞서서 우리는 안드로이드드 구조 이해에 중요한 개념인 컴포넌트의 기본 원리를 살펴보았습니다. 이제 이 내용을 바탕으로, 안드로이 앱에서 찾아볼 수 있는 부가적인 특징들을 살펴보도록 하겠습니다. 2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 안드로이드의 큰 특징이자, 안드로이드 아키텍처 이해에 있어서 중요한 컴포넌트(component)에 대해서 살펴보도록 하겠습니다. 1. 컴포넌트는 앱의 구성단위이다 컴포넌트는 안드로이드 앱을 구성 nozeroslope.tistory.com ○ 애플리케이션 진입 지점(main 함수 등)이 따로 없다 어떤 앱이 실행되기 위해서 최초로 실행되는 코드 부분 - 즉 main 함수 같은 부분 - 이 컴포넌트의 경우 존재하지 않습니다. JAVA의 경우,..
컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [1/2] 본격적으로 Set 컬렉션의 구현 클래스를 살펴보겠습니다. 우선, HashSet을 보겠습니다. 기본적으로 HashSet 생성은 아래와 같이 기본 생성자를 호출하는 방식입니다. 타입 파라미터 E에는 컬렉션에 저장할 객체의 타입을 선언하는 것은 기존 컬렉션과 동일합니다. Set set = new HashSet(); Set set = new HashSet(); HashSet에서 중요한 포인트는, 객체들을 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다는 성질을 처리하는 방식입니다. HashSet은 객체를 저장하기 전, 두 가지 스텝을 거쳐 동일한 객체인지를 판단하고 저장을 하게 됩니다. 1. 객체 저장 전, 객체의 hashCode( )를 호출해 해시코드 리턴 값을 이미 저장된 객체들의 해시코드와 비교합니..