반응형

Good Java / 우재남

Good Java

작가
우재남
출판
한빛아카데미
발매
2016.02.12.

리뷰보기


역시 한국사람이 지은 책이어서 읽기가 편안했습니다. 번역은 가끔 발로한 것들이 있어서..^^


오랫만에 Java 프로그래밍 책을 잡으니 감회가 세로웠습니다.


사실 프로그래밍 언어를 이것 저것 배우고 할줄 알고 있어서 어렵게 생각되지는 않았습니다.

주요 개념과 방법은 전부터 알고 있었고 가벼운 마음에서 보았기 때문이죠. 더욱이 번역서가 아니어서 그냥 죽~ 읽어 내려갔습니다.


예전에 C 프로그래밍을 생각하면서 쉽게 쉽게 책장을 넘겨 갔습니다.


객체지향 언어의 개념도 알고 있던 터라 어렵지는 않았네요...

단지 JAVA로 구체적인 구현방법에 대해서는 새롭게 느껴졌습니다.


그러면서도 신선하게 다가오는 (사소할 수도 있는) 내용이나 기억에 남기고 싶은 내용을 적어봤습니다.


처음 프로그래밍을 배우시는 분들은 하나 하나 따라가면서 연습하시기 좋은 책인 것 같습니다.

특히, 자세한 소스코드와 개념 설명을 위한 그림을 통해 이해하기 쉽게 친절하게 설명되어 있습니다.

 

 

이하 주요내용 입니다.


printf() method의 유형 : 

%d : 정수형    %d ,   100

%f : 실수형     %5.1f , 12345.6

%c : 문자형    %c ,  'c'

%s : 문장형    %s , "itot"


(int) 12345,6  ==> 12345 ( (int)가 정수형으로 바꾸어준다)




예외 타입의 종류


Exception

    -----------> ClassNotFoundException

    -----------> IllegalAccessException

    -----------> RunTimeException

                            ----------> ArithmeticException

                            ----------> NullPointerException

                            ----------> IndexOutOfBoundsException

                                                     ----------> ArrayIndexOutOfBoundsException

                                                     ----------> StringIndexOutOfBoundsException

     -----------> IOException

                           ----------> EOFException

                           ----------> FileNotFoundException





표준 입출력 

    입력 :  System.in         Scanner         BufferedReader

    출력  : System.out    System.err


파일 입출력

   입력 : FileInputStream     BufferedReader   FileReader

   출력 : FileOutputStream    BufferedWriter     FileWriter


(Tip : 한글은 BufferedReader/Writer 사용이 용이 왜냐하면 2바이트 문자 스트림이기때문에...)



접근 제어 수식어별 접근 가능 여부

 수식어

같은 클래스

같은 패키지 

하위 클래스 

외부 클래스 

public

protected 

o

default 

private 



생성자 : 클래스의 이름과 동일한 메소드를 말하며, 주로 인스턴스 생성시 초기값을 정해주기 위해 사용


메소드 오버로딩(Overloading) : 같은 클래스 내에서 메소드의 이름이 같아도 파라미터의 개수나 데이터 형식만 다르면 여러개를 선언 할 수 있는것 (생성자도 메소드 오버로딩 가능) 클래스를 활용 인스턴스 생성 시 초기 값 설정에 효과적임.ㅎ


인스턴스 변수와 클래스 변수

클래스 변수는 클래스 안에 공간이 할당되어 (인스턴스에는 공간이 없고) 여러 인스턴스에서 같이 사용하는 변수

static 키워드를 사용하여 생성


인스턴스 메소드와 클래스 메소드

클래스 메소드를 사용하면 클래스 변수에 직접 접근하지 않고 클래스 메소드를 이용하여 값을 바꿀 수 있다.

(다시말하면 혹시 모를 버그를 방지할 수 있다)



클레스의 상속

기존 클래스가 가지고 있는 필드와 메소드를 그대로 물려받은 새로운 클래스를 만드는 것

public으로 정의된 것만 상속됨 , private으로 정의된 것은 상속 안됨

protected로 정의된 것은 자신의 클래스 또는 패키지에서만 접근 가능(패키지는 클래스를 모아놓은 묶음)

extends 키워드를 사용

class Sedan extends Car {

}


생성자의 상속

수퍼 클래스의 생성자가 먼저 생성, 후 서브 클래스의 생성자 생성


오버라이딩

상위 클래스의 메소드를 하위 클래스에서 재정의 하는 것


메소드 오버라이딩의 제한 : final 키워드 사용



추상 클래스

직접 인스턴스를 생성할 수 없는 클래스

서브 클래스에서 상속 받은 후 서브 클래스에서 인스턴스 생성 가능

abstract 키워드 사용


추상 메소드

본체가 없는 빈껍데기 메소드로 서브 클래스에서 오버라이딩하여 사용하도록 하기 위해 사용

(무조건 오버라이딩해야함, 안하면 문법오류 발생)

메소드 앞에 abstract 키워드 사용


인터페이스

추상 클래스와 비슷하지만 인터페이스는 필드, 추상 메소드를 가질수 있고, 일반 메소드, 상생자는 가질 수 없다.

필드도 static final을 붙인 상수화한 필드만 사용가능하며 반드시 초기화 해야함.

implements 키워드 사용


다중상속

논리적으로 가능하나 JAVA는 다중상속 불가, 그러나 인터페이스를 이용하여 다중상속한 것으로 구현 가능.

 

 

반응형
반응형

5-1. 고객분석의 목적


 고객분석을 왜 할까요? 

(이게 바로 목적이 되겠지요? ^^)


고객은 '기업의 상품이나 서비스를 구매/이용하고 대가를 지불하는 사람'이라고 할 수 있습니다. 

그러니 고객 분석은 당연히 기업에서 할 것이고 

기업의 모든 활동의 목적은 '고객이 상품이나 서비스를 더 많이 구매/이용하게 하기 위함'일 것입니다.

너무 싱겁게 정의가 끝나버린 것 같네요..

그렇지만 목적을 확실히 해야만 효과를 극대화 할 수 있으니 

정확하고 명확한 정의는 매우 중요한 것 같습니다.

다시말하면 고객 분석도 '고객이 상품이나 서비스를 더 많이 구매/이용하게 하기 위한 활동'이며 특히,

'고객과 관련된 데이터를 분석하여 경영 활동을 촉진하는 것'

이 목적이라고 할 수 있습니다.


그러면,


어떻게 고객이 상품이나 서비스를 더 많이 구매/이용하게 할 수 있을까요?

특히, 데이터 분석을 통해서 무엇을 찾아내고 알아내야 할까요?

다시 말하면 무엇을 찾아내야 고객이 더 많은 상품/서비스를 구매/이용하게 할까요?

강제로는 안될 테니 결국 고객이 좋아할 만한 상품/서비스를 만들고 제공할 수 있어야 겠지요.

이러한 활동은 기존의 경영관리 및 마케팅 측면에서 많이 고민되어 왔습니다.

경영관리는 조금 거리가 있다고 생각될 수 있으니 마케팅 측면을 살펴 보시지요.

마케팅하면 생각나는게 있으시죠? ^^

네, 바로 마케팅 믹스, 4P 입니다. 

최근에는 4C라고 하여 고객관점의 정의도 있습니다. 

4E라고하여 감성적인 부분까지 고려하는 방법도 있네요.


간단히 정리하면 4P는 Product(제품), Price(가격), Place(유통), Promotion(촉진)을 의미합니다.

4C는 Customer Value, Cost to the Customer, Convenience, Communication을 의미합니다.

4E는 Evangelist, Enthusiasm, Exchange, Experience 입니다.

4P에 무형의 가치를 축한 7P도 있습니다.

7P는 4P에 People, Process, Physical evidence를 추가한 것 입니다.

(자세한 내용은 검색하시면 바로 찾아보실 수 있을꺼에요..~)


자, 너무 마케팅 적인 이야기를 한것 같은데요...

중요한 것은 여러가지 마케팅적인 관점의 전략을 고민할때 바로 중심은 고객이라는 것입니다.

그리고 이러한 고객을 이해하는데 중심이 되야하는 것이 바로 데이터(고객분석)이라는 것이지요.


짧고 굵게 정리하면,

고객분석은 회사에서 (상품/서비스를 팔아서) 돈을 벌기위해 하는 것이고,

이를 위해서 마케팅 전략(마케팅믹스) 수립 시 기준과 의미를 제공하기 위해 

고객과 관련된 데이터를 분석하는 활동이 고객 분석이라고 하겠습니다.


그렇다면 어떻게 해야 고객 분석을 잘 할 수 있을까요? ~ ^^


다음에는 고객 데이터의 종류와 종류에 따른 수집/저장/처리/관리 방법에 대해서 알아보겠습니다.

반응형
반응형

4 - 고객 프로파일링(Customer Profiling) - 데이터 분석 프레임 관점

 



안녕하세요, 꾸벅 !!!




고객 프로파일링 관련 네번째 포스팅입니다.

이번에는 고객 프로파일링의 핵심(?)이라고 할 수 있는 분석 프레임에 대해서 생각해보겠습니다.

기본적으로 다른 프로파일링과 다르게 고객과 기업에서 제공하고자 하는 상품 또는 서비스와의 매칭에 사용되는 것이 고객 프로파일링이라고 생각됩니다.
즉, 고객은 고객이 좋아하는(원한는) 상품/서비스를 제공 받고
기업은 상품/서비스 제공을 통해 이윤을 창출할 수 있도록 잘 연결해주는 것이 기업에서의 고객 프로파일링이라고 할 수 있죠.
(그렇기 때문에 주로 마케팅이나 영업에 관련된 분들이 관심이 많으실 것 같습니다.).
이번 포스팅의 제목처럼 데이터 분석 프레임 관점으로 보려는 것은
바로 고객과 상품/서비스의 연계 분석을 위해 어떤 프레임에서 고민하는 것이 좋은지 생각해보기 위해서 였습니다.

이렇게 생각해 보시죠. 여러분은 데이터 분석/활용의 실력을 인정받게 되어 새로운 직무인 Data Scientist 또는 Data Engineer 로 일하게 되었다고 생각해보시죠.
회사의 요구는 앞서 말한 것 처럼 회사의 상품/서비스를 고객에게 효과적/효율적으로 제공하기 위한 고객 프로파일링을 만들어주길 원하고 있습니다.
자!, 여러분은 어떻게 하시겠습니까?
...
...
...

잠시 생각해 보시죠  

...
...
...
...

제 생각을 말씀드리면 고객을 적당한 특징으로 분류하기 위한 고객 프로피일링이 있어야할 것 같고,
상품/서비스에 해당하는 프로파일링이 있을 것 같고,
이 두개를 연결해주는 것이 필요할 것 같습니다.

이처럼 고객, 상품/서비스, 연결을 고련하는 프레임웍을 Customer Product Framework 이라 부르겠습니다.





고객프로파일 <-- 연결특징 --> 상품 프로파일


[그림]



먼저,고객을 프로파일링하는 방법은 앞선 포스팅에서 언급한 것처럼 심리학 관점에서의 다양한 시각으로 데이터를 수집하고 분석함으로서 확보가 가능할 것 입니다.
(물론 데이터에 따라 깊이는 다를 것입니다.)
즉, 고객의 생리/심리/사회적 관점의 데이터를 찾고 만들어내어 고객군을 특정하는데 필요한 지표를 만들고 관리하는 것 입니다.
그러나 일반적으로 정부/공공기관 또는 대기업이 아닌 이상 이처럼 고객을 분석하기 위한 데이터가 충분하지 않은 것이 현실 입니다.
어쩔 수 없이 회사내에 존재하는 고객관련 데이터를 모두 모으고, 분석해서 새로운 데이터를 생성해서 활용해야겠지요.

이때 중요한 것이 회사의 상품/서비스와의 관계를 고려하는 것이 필요합니다.
우리가 고객프로파일링을 하는 것은 일반적인 인구/집단의 특성을 분석하고자 하는 것이 아니라 회사의 상품/서비스를 잘 제공하고자 하기 위함이기 때문입니다. 이를 위해서 상품/서비스가 제공하고자 하는 내용과 타겟 고객에 대한 이해가 필요합니다.
(여기서 잠깐, 상품/서비스의 종류가 다양한지 않고 고가의 상품/서비스인 경우에는 전체적인 프레임을 잡아서 관리하는 것보다 통계 모델에 따른 타겟 고객 설정/활용이 효율적일 수 있습니다.)

예를 들면, 음악 스트리밍 서비스를 제공하는 스포티파이에서는 사용자를 모험심, 다양성, 참신성, 지역성,주류성으로 분류하여 사용자 특징을 분류한다고 합니다. (상세내용 아래 참조)
느낌 오셨는지요?!
바로 상품의 특성을 고려한 지표들 입니다.
일반적인 특성을 나열해 놓은 것이 아니라 상품/서비스와 연관되어있는 것들을 지표로 삼은 것 같습니다.
일반적인 특성으로는 심리학에서 말하는 성격/성향(Big 5)와 같은 내용들로 지표를 만들 수도 있겠지만 이를 실제 상품/서비스와 연계해서 쓰기에는 많은 노력과 시간이 필요하기 때문에 일반적인 기업에서 이러한 방법을 선택하기에는 쉽지 않은 것 같습니다.
요 방법은 따로 다시 이야기 해보기로 하고요..^^



그렇다면, 상품/서비스의 프로파일링은 어떻게 하는게 좋을까요?
상품/서비스의 특성 역시 상품/서비스를 분류하기 위한 독특한 특질 이라고 할 수 있겠습니다.
노트북을 예로 들면 어떤 특질이 있을 까요?
최신 기술의 적용 정도, 모니터 화면 크기의 정도, 무게의 정도, 온라인 게임을 위한 그래픽지원 수준 등등, 보통 상품의 스펙이라고 하는 부분의 내용이 들어 갈 수 있을 것 같습니다.
그렇다면 위에서 봤던 스포티파이에서는 음악 서비스의 특질을 어떻게 분류하고 있을까요?
소리의 특성을 음향적 특성, 음악가 친밀도, 라이브수준, 인기도, 말의 양, 속도 등 11가지를 관리하고 있습니다.

마지막으로 이 두 개의 특징을 연결하는 연결의 특징에는 무엇이 있을까요?
보통은 상품/서비스의 구매/이용 특성에 해당하는 것들이 이에 해당될 것 같습니다.
스포티파이에서는 청취 형태를
평소에 듣는 음악가, 평소에 듣는 노래, 좋아하는 음악, 싫어하는 음악 등 6개로 관리한다고 합니다.

눈치 체신 분들도 계시겠지만 모든 지표/특성들이 고객을 중심으로 바라보면서 정의/사용됩니다.
연결의 특징도 결국에는 고객의 특징중 일부로 이해될 수 있고,
서비스의 특징(음악의 특징)도 결국 이를 이용하는 고객의 특징으로 이해될 수 있지요.
(그래야 잘된 프레임이라고 할 수 있을 것 같습니다. ^^)
결국 이모든 특징들이 고객과 연결되어 고객을 구분짖는 특징으로 사용될 수 있다는 이야기이지요.


스포티파이의 방법은 상품/서비스 중심의 프로파일링이라고 할 수 있을 것 같습니다. 왜냐하면 관리 지표나 내용이 고객보다는 음악 관련된 것이 더 많기 때문입니다.
처음에도 말씀 드린 것처럼 일반적인 기업에서는 고객정보가 충분하지 않기 때문에 상품/서비스 기획에서 고려했던 프로파일(페르소나, 스팩 등)을 이용해서 데이터를 생성하는 것이 빠르고 편해서인것 같습니다.


다음 시간에는 이러한 특징들을 만들어 내기 위해 필요한 분석 기법과 IT관점에서의 기술적 구현 방법에 대해서 이야기해 보겠습니다.
분석 기법에는 고전적인 통계 기법(스코어링 기법 포함)과, 요즘 뜨고있는 인공지는, 기계학습 등의 방법이 있습니다.
그리고 기술적 구현 방법에는 5~6년 전부터 빅데이터가 화두가 되면서 다양한 오픈소스 프로그램과 소프트웨어 솔루션들이 출현하고 있습니다. 오픈소스 프로그램의 예를 들면 하둡(Hadoop), 스파크(SPARK), Hive, SQL, DBMS 등의 기술이 활용되고 있습니다.
다음 시간에 조금더 자세하게 이야기해 보겠습니다.

(아래는 스포티파이의 프로파일링 방법)
(출처: 이것이 빅데이터 기업이다. /함유근)

스포티파이 사용자 프로파일링(Profiling)

소리의 특성, 청취자의 특성, 청취 형태 3가지를 결합하여 사용자 프로파일 생성

소리의 특성

  • 음향적 특성(acousticness) : 노래의 음향적 특성을 점수화
  • 음악가 친밀도(artist affinity) : 특정 음악가에게 느끼는 친말도
  • 음악가 인기도(artist hottness) : 음악가의 최근 온라인 활동 정도
  • 춤추기 용이성(danceability) : 노래가 얼마나 춤추기에 적합한가의 정도
  • 지속도(duration) : 초 단위로 측정한 노래 길이
  • 에너지 : 노래의 전반적인 에너지
  • 라이브 수준 : 노래가 라이브로 녹음되었는지 여부
  • 소리 크기 : 노래의 전반적인 볼륨
  • 노래 인기도 : 최근 온라인상에서 노래의 인기도
  • 말의 양 : 노래 가사의 양
  • 템포 : 노래의 분당 비트(BPM)


스포티파이는 취향 프로파일링 기술을 이용해 사용자가 음악을 즐기는 특징을 포착해 개인의 취향 및 선호를 파악하는데, 아래 5가지의 특성을 반영.

  • 모험심 : 평소 편안하게 듣는 범주 밖의 음악을 얼마나 자주 듣는가
  • 다양성 : 청취자의 선호 스타일과 음악 장르가 얼마나 다양한가
  • 참신성 : 옛날 음악 대비 새로운 최신 음악에 대한 청취자의 선호도는 어떠한가.
  • 지역성 : 청취자가 선호하는 음악가의 출신 지역이 전 세계적으로 얼마나 광범위한가
  • 주류성 : 무명 음악가 대비 유명 음악가에 대한 청취자의 친밀도는 어떠한가


청취 형태

  • 평소에 듣는 음악가
  • 평소 듣는 노래
  • 좋아하는 음악
  • 싫어하는 음악
  • 음악에 대한 평가
  • 듣다가 건너 뛰는 음악



이처럼 특성을 뽑아내는 것은 오랜기간동안 해당 비즈니스 관련 업무를 한 사람 만 가능하다고 생각 할수 있지만, 아닙니다! 바로 데이터분석을 통해 오랫동안 해당 도메인에서 일히지 않았어도 찾아낼 수 있습니다. 간단하게는 Regression이나 주성분 분석, 또는 Clustering을 통해서도 가능 합니다.
이러한  상세 방법은 다른 포스팅에서 자세히 설명드립니다




감사합니다.

반응형
반응형

3 - 고객 프로파일링(Customer Profiling) - 심리학 관점

 


 

안녕하세요, 꾸벅 !!!

 



벌써 고객 프로파일링 관련 세번째 포스팅이네요..

 

첫번째 포스팅에서는 고객 프로파일링에 대한 전반 적인 개요와 의미에 대해서 알아보았구요,

두번째 포스팅에서는 데이터 관점에서 실제 해외 미국 액시엄이라는 회사의 사례를 알아 보았습니다.

오늘은 고객 프로파일링의 세번째 포스팅으로 심리학 관점의 프로파일링에 대해서 알아보겠습니다.



 

그럼 시작해 볼까요?! ^^

먼저 심리학이라는 학문자체가 너무 넓고 깊기에 모든 내용을 세세하게 다루지는 못할 것같구요

전체를 이야기하기는게 좋을 것 같습니다.

과거 심리학의 변화 역사를 따라 가면서 생각해보는 것도 좋을 것 같은데...

(경험주의, 정신분석, 개인심리, 행동주의, 인지주의 등등등)

이부분은 다음에 나누어서 이야기하는게 좋을 것 같습니다.. ^^


 

 

현대 심리학은 기본적으로 심리학의 세 가지 기본 분석수준,

즉, 생물심리사회적 접근이 필요하다는 관점입니다.

[그림 : 이해를 위한 생각의 관점]


각각의 분석수준에서 나온 결과를 통합적으로 해석 해야만 현상을 제대로 이해하고 예측할 수 있다는 것이지요.

예를 들면

어느 나이 지긋하신 신사분이

쌀쌀한 겨울 밤에 지하철 역을 지나가다가

노숙자분을 보고 갑자기 주머니에서 1000천만원을 꺼내어 주었다면.....!!!

이러한 개인의 행동/현상은 왜 일어난 것일까요???

위에서 말한 것처럼 이를 잘 이해하려면

신사분의 생리적, 심리적, 사회적인 측면에서 생각해볼 필요가 있다는 이야기 입니다.

즉,

생리적 관점에서 보면,

나이가 들다보니 여성호르몬이 많이 나와서 공감력이 확대되어

노숙자분이 한없이 애처로와 보여서 일수 있구요..

(아버지가 드라마에 빠지고 눈물 흘리시는 이유가 이와 같다는....^^) 

심리적 관점에서 보면,

노숙자분이 돌아가신 노신사분의 어머니의 모습과 똑 같아서,

또는 노숙자분을 만나기 전에 유산에 대해, 그리고 인생에 대해 많은 고민을 하고 있었는데

노숙자분을 보고 갑자기(타고난 성격인지, 만들어진 성격인지 모르지만 욱하는 성격에) 

인생에 회의를 느끼고 봉사하고자하는 마음에서 였을 수 있습니다.

사회적 관점에서 보면,

가족, 친구, 직장동료, 또는 다른 모임에서 기부나 사회 봉사에 대한 스트레스를 받아서 일 수 있습니다.

득, 친구나 다른 사람들은 모두 기부나 봉사활동을 하며 자랑스럽게(?) 그리고 스스로의 자긍심과 행복감을 느끼면서 살고 있는데 나는(신사분은) 그동안 무엇을 하며 살았나...라고 생각이 들어서

노숙자분을 본김에 기부하는 행동을 했을 수 있습니다.

어떤가요? 그럴 듯 한가요? ^^

그런데, 자세히 보시면 제가 예를 들은 부분이 한편으로는 그럴 수 있겠다라는 생각이 들지만

한편으로는 좀 억지 같다는 생각이 들지 않으신가요?


그러면...

이 세가지를 통합해서 생각해보면 어떨까요?

즉, 모든 이유가 실제로 그렇다면 어떨까요?

아무래도 기부하는 행동을 했을 가능성이 더 높겠지요?!

하나의 이유일수도 있고 여러 이유가 복합적으로 작용했을 수도 있지만,

중요한 것은 그냥 무턱대고 현상을 분석하기 보다는

이처럼 심리학의 기본 분석 수준을 따라서 생각하다보면

더욱 정확하게 현상을 이해할 수 있다는 의미 입니다.

도움이 되셨나요? ^^

다음 시간에는 생리/심리/사회 관점에서 고객 프로파일링을 위한

실질적인 데이터의 예를 들어보겠습니다.


감사합니다.

반응형

+ Recent posts