homebrew-mysql-tutorial-featured-img

MacOSX에서 Homebrew사용해서 MySQL설치하기

# HomeBrew 설치방법은 이전 포스팅(http://blog.marines.co.kr/archives/989) 을 참고하면 됩니다.

Brew가 설치된 상태에서 Git설치를 하고

Homebrew update를 합니다.

 

* 이제부터 MySQL설치방법입니다.
Terminal을 사용해서 install을 합니다.

자동으로 설치가 진행되지만 바로 사용하기엔 Root권한 암호설정도 안되어 있어서 별도의 작업이 필요합니다.

MySQL서버를 시작합니다.

## MySQL에서 Root암호 설정
mysqladmin을 이용하여 root 암호 설정

MySQL을 처음 설치하면 root 암호가 설정되어 있지 않기 때문에 반드시 설치 후 바로 root 암호를 먼저 설정해주세요.%%% root 암호를 설정하기 위해서는

이러한 명령을 실행하면 됩니다. 실행하면 패스워드를 입력하라고 하는데 처음 root의 패스워드는 없으므로 그냥 엔터를 치시면 root 패스워드가 변경됩니다.

* update문을 이용하여 root 암호 설정

마지막으로 패스워드가 재대로 변경되었는지 테스트를 합니다.

* 사용권한 설정하기
‘GRANT’ 명령을 이용하면 쉽게 사용자 추가 및 권한 설정이 가능합니다. (MySQL Manual 4.3.5)

일반 사용자 추가

특정 이름의 데이터베이스에 대한 모든 권한을 가지는 사용자 추가

‘dbuser_’으로 시작되는 데이터베이스에 대한 모든 권한을 가지는 ‘dbuser’ 사용자 계정 추가%%% 이런식으로 계정을 만들면 새로운 사용자에 대한 개별적인 데이터베이스 권한 설정을 생략할 수 있습니다.

모든 권한을 준다면 아래와 같은 방법을 하는것이 더욱 편리힙니다.

첫번째 localhost?로컬 호스트 (DB가 자기컴퓨터에 깔려 있는경우..에만 접속을 허용하겠다는 뜻입니다.

두번째 문장은 로컬 호스트를 제외하고는 모든 ip에서 접근을 시키겠다는 내용입니다.

세번째는 c클래스만 허용하겠다는 의미 입니다. xxx.xxx.%.% 면 B클래스 xxx.%.%.%면 A클래스로 제한을 할수 있습니다.

그리고 변경된 내용을 메모리에 반영하기 위해 다음 명령을 실행합니다.

이렇게 MySQL을 설정해 놓으면 사용자가 다른 호스트에서도 접속할 수 있고 테이블 추가 삭제 등도 할 수 있습니다.

:: Reference Post ::
http://benjsicam.me/blog/how-to-install-mysql-on-mac-os-x-using-homebrew-tutorial/
http://blog.saltfactory.net/121
http://gpgstudy.com/gpgiki/MySQL%EC%97%90%EC%84%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%99%80%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EB%A7%8C%EB%93%A4%EA%B8%B0

CentOS_64-bit-2013-05-25-19-46-59 (1)

Linux (CentOS 6.4) 설치

A.      OS 다운로드

  1. http://ftp.daum.net/centos/
  2. 6.4 / Minimal / 64bit 버전 설치 – http://ftp.daum.net/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso

 

B.      OS 설치

CentOS_64-bit-2013-05-25-19-46-59 (1)
디스크 부팅 첫 화면 – GUI 설치는 두 번째 선택. (vm에서는 첫번째로 해야 GUI모드로 설치됨)

CentOS_64-bit-2013-05-25-19-47-47
설치 디스크 검사 여부 선택.

CentOS_64-bit-2013-05-25-19-50-18
GUI 설치 모드로 진입.

CentOS_64-bit-2013-05-25-19-50-58
한국어 선택

CentOS_64-bit-2013-05-25-19-51-03
키보드 선택

CentOS_64-bit-2013-05-25-19-51-11
기본 저장 장치 선택

CentOS_64-bit-2013-05-25-19-51-21
모든 데이터 삭제 선택

CentOS_64-bit-2013-05-25-19-51-43

컴퓨터 이름 설정 / 네트워크 설정 클릭

CentOS_64-bit-2013-05-25-19-52-39
장착 된 네트워크 어댑터 목록, 어댑터를 선택 후 변경하기 클릭.

CentOS_64-bit-2013-05-25-19-55-32
자동으로 연결 체크 / IPv4 설정 탭 선택 / 네트워크 정보 입력 후 적용.

CentOS_64-bit-2013-05-25-19-55-50
시스템 시간대 선택

CentOS_64-bit-2013-05-25-19-56-04
root 계정 암호 설정

CentOS_64-bit-2013-05-25-19-56-19
설치 방식 선택 – 파티션 수동 구성을 위해 [사용자 레이아웃 만들기] 선택

CentOS_64-bit-2013-05-25-20-18-55
장착되어 있는 하드 디스크 목록이 나온다. 그림은 20GB 디스크 3개가 잡혀있는 상태.

CentOS_64-bit-2013-05-25-20-19-28
시스템 드라이브로 사용할 디스크를 선택 후 만들기 클릭.

CentOS_64-bit-2013-05-25-20-20-11
파일시스템 구성 – root 파티션 선택 후 첫 번째 파티션으로 만듦에 체크.

CentOS_64-bit-2013-05-25-20-20-37
기타 파티션 설정.

CentOS_64-bit-2013-05-25-20-20-53 CentOS_64-bit-2013-05-25-20-21-59 CentOS_64-bit-2013-05-25-20-22-15
첫 번째 디스크 파티션 분할 완료. 나머지 데이터 저장소로 사용 할 2개의 디스크는 LVM으로 구성. 만들기 클릭.

CentOS_64-bit-2013-05-25-20-22-23
LVM 물리 볼륨 선택. 생성 클릭.

CentOS_64-bit-2013-05-25-20-22-41
해당 디스크만 체크한 후 최대 용량으로 선택. 확인. 세 번째 디스크도 같은 방식으로 처리.

CentOS_64-bit-2013-05-25-20-23-09
2개의 디스크가 LVM 물리 볼륨으로 지정이 되었음. 다시 만들기를 클릭한 후 LVM볼륨 그룹을 생성. 생성 클릭.

CentOS_64-bit-2013-05-25-20-23-26
볼륨 그룹 명은 적당히 지어준 후 확인 클릭.

CentOS_64-bit-2013-05-25-20-23-34
40GB 의 LVM 볼륨 그룹이 생성된 모습. LVM 논리 볼륨을 생성하기 위해 만들기 클릭.

CentOS_64-bit-2013-05-25-20-24-00
LVM 논리 볼륨 체크. 앞서 만든 그룹 선택 후 생성 클릭.

CentOS_64-bit-2013-05-25-20-24-11
마운트 지점을 /data 로 설정 후 확인 클릭.

CentOS_64-bit-2013-05-25-20-24-18
파티션 구성 완료. 다음 클릭.

CentOS_64-bit-2013-05-25-20-24-41
경고 메시지. 포맷 클릭.

CentOS_64-bit-2013-05-25-20-24-49
경고 메시지. 기록 클릭.

CentOS_64-bit-2013-05-25-20-27-43
부트로더 설정. 기본으로 둔 채 다음 선택하면 설치가 진행됨.

CentOS_64-bit-2013-05-25-20-27-55
설치 화면

CentOS_64-bit-2013-05-25-20-28-00CentOS_64-bit-2013-05-25-20-28-44CentOS_64-bit-2013-05-25-20-30-34
설치 완료. 재부팅 클릭.

CentOS_64-bit-2013-05-25-20-31-34
정상적으로 설치가 완료 된 후 재부팅 된 모습.

CentOS_64-bit-2013-05-25-20-38-48
Root 계정 입력 후 로그인.

CentOS_64-bit-2013-05-25-20-38-59
네트워크 정상 연결 확인. # ping 168.126.63.1

20131231_001123

Apache Mahout

20131231_001123

Mahout 이란?

– 힌두어로 “코끼리를 모는 사람”이라는 뜻. Hadoop(하둡)의 로고가 코끼리인 것을 이용.
– Apache Lucene 프로젝트의 하위프로젝트로 시작되었다가, Open Source기반 협업 필터링 프로젝트 Taste를 흡수하면서 Apache Mahout으로 발전.
– 하둡을 기반으로 맵리듀스(Map Reduce)를 이용해 클러스터링, 분류, 분석 작업을 수행할수 있음.
– 대용량 데이터분석이 가능하며 확장성을 제공하는 기계학습 라이브러리.

 

제공되는 분석 기능들

– 협업 필터링
– 분류 : 특정 아이템이 어떤 분류에 속하는지 예측
– 클러스터링 : 비슷한 아이템들끼리 그룹핑
– 패턴 마이닝 : 빈번하게 발생하는 패턴을 찾음
– 그외에 회귀분석, 진화알고리즘, 벡터유사도 등 다양한 분석기능 제공

20131231_000054

추천시스템이란?

추천시스템은 정보 필터링(IF)기술의 일종으로, 특정 사용자가 관심을 가질만한 정보(영화,음악,책,뉴스,이미지,웹페이지 등)를 추천하는 것이다.

[추천시스템이 사용되는 곳] – Amazon 상품추천
– Netflix 영화추천
– Facebook 친구추천
– 휴대폰 벤더 : 다른통신사로 이탈확률 높은 고객예측

[추천효과]
– Netflix : 대여되는 영화의 2/3가 추천으로부터 발생
– Google News : 38%이상의 조회가 추천에 의해 발생
– Amazon : 판매의 35%가 추천으로부터 발생
– Netflix Prize (~2009) : Netflix에서 주관하는 경연대회로 영화선호도를 가장 잘 예측하는 협업필터링 알고리즘에 수상 (USD $1,000,000)

 

이러한 추천시스템중 대표적인 방식으로 “협업필터링” 방식이 있다.

많은 사용자들로부터 누적된 대규모의 데이터를 활용하여 이를 분류하고, 분류된 데이터의 기준을 기반으로 개로운 데이터에 대입하여 분류하는 방법.
사용자들의 과거 경향이 미래에도 그대로 유지될것이라는 전제를 바탕으로 함.

[사용자기반 협업필터링]
– 비슷한 선호도를 가지는 다른 고객들의 상품에 대한 평가에 근거하여 추천.
– 우선 비슷한 성향을 가진 이웃을 찾고, 그 이웃의 선호도를 이용함.
– 이웃을 선정하는 기법에는 클러스터링, K-최대근접이웃(K-mins), 베이지안 네트워크 등이 있다.
– 두 고객이 모두 평가를 한 상품이 있어야 하고, 오직 두 고객사이에서만 상관관계를 구할수 있는 제약이 있다.
– SNS의 친구 추천등에서 사용

20131231_000054

[아이템 기반 협업필터링]
– 사람들이 과거에 좋아했던 상품과 비슷한 상품을 좋아하는 경향이 있는 것을 기반으로 함.
– 고객이 선호도를 입력한 기존 상품들과 예측하고자 하는 상품과의 유사도를 계산하여 선호도를 측정.
– 고객들의 선호도만을 이용하기 때문에 고객간의 유사도는 고려되지않음.
– 아마존,넷플릭스의 상품추천 등에서 사용
20131231_000117

 

[출처 : http://www.slideshare.net/pitzcarraldo/mahout-cook-book (SlideShare) ]

[Android] Hardware세팅에 GPS on/off 여부 확인하기

간단하게 LocationManager를 사용하여 GPS활성화 여부를 체크하는 방법입니다.
LocationManager의 isProviderEnabled 함수를 사용하여 Boolean 값을 리턴 받습니다.
비활성화되어있을 경우 세팅메뉴로 바로 보내도록 예제를 만들어봤습니다.

[Android] Telephony.SmsManager로 SMS발송하기

Reference Link : http://developer.android.com/reference/android/telephony/SmsManager.html

Android 앱에서 직접 문자를 발송하는 기능을 알아봅니다.
해당앱 사용자들의 핸드폰에서 직접 문자를 발송하도록 하는 기능을 설명하려 합니다.

기존 API Level4에서 “android.telephony.gsm.SmsManager” 등과 같이 gsm, cdma 하위 클래스로 있던 SmsManager는 Deprecated되었으니 유의하시기 바랍니다.
2개의 클래스를 하나로 합친것이 “android.telephony.SmsManager” 인데, 사용법은 동일합니다.

이렇게 간단하게 문자를 전송할수 있습니다.

 

[AIP] iOS에서 Singleton Pattern사용하기

다음은 Objective-C에서 싱글톤 패턴을 사용하는 방법입니다.
init하지 않고 sharedInstance로 객체를 반환받아서 사용하면 됩니다.

 

CLASSNAME.m 내용

CLASSNAME.h 내용

screen-capture-4

[WP] 워드프레스 테마적용후, 제목에 한글이 안나오는 경우

이 문제때문에 한참을 삽질을 했습니다.

현재 제가 사용중인 테마는 PAGELINE이라는 유료테마입니다.

 

업데이트 이후, 한글이 사라져버리는 현상이 있어서 문제를 찾다보니

cufon replacement기능때문이었습니다.

 

 

페이지가 로딩된후 Cufon폰트로 강제로 교체해버리면서 생기는 현상입니다.

 

PAGELINE은 이를 어드민에서 설정할수 있도록 되어있으나, 다른 테마를 사용하는 분들은 cufon.js파일과 관련된 embed코드를 찾아서 삭제하시면 해결되실 겁니다.

 

screen-capture-2

[UNIX] Package Manager

Homebrew는 OSX에 포함되지않은 UNIX툴입니다.

이를 통해서 LUA등을 설치가능합니다.

http://mxcl.github.com/homebrew/

 

https://github.com/mxcl/homebrew/wiki/installation

위에 주소에 접속하면, Installation 설명이 나옵니다.

 

Shell Prompt에

/usr/bin/ruby -e “$(curl -fsSL https://raw.github.com/gist/323731)”

입력해주면 설치가 됩니다.

 

 

Requirements

1 Not all brews have CPU or OS requirements, but you can assume you will have trouble if you don’t conform. Also, you can find PowerPC and Tiger branches from other users in the fork tree. See Interesting Branches.

2 Homebrew itself does not depend on Xcode and not all formulae require Xcode. Homebrew will still attempt to install formulae if Xcode is not installed; this is so people can create custom Homebrew installations, that e.g. only install binaries. The X11 components are automatically installed if you installed Xcode via the App Store. If you are not on Lion you will have to register with Apple Connect and then download Xcode. If you do install via the App Store, you will need to run the “Install Xcode” app that is placed in /Applications.

3 Homebrew itself does not depend on Java. However software that tries to build Java bindings (Subversion, Berkeley-DB, Cmake, etc.) require Apple’s “Java Developer Update”. The latest versions are “Update 10” for 10.5 and “Update 5” for 10.6.