안녕하세요 멋사3기 Kyunni입니다.
혼자서 낑낑대며 안드로이드 Udacity도 진행을 하고, 알고리즘 공부도 본격적으로 시작하고, 재미있는 영화는 판을 치고, 날씨는 경보문자가 매일같이 올 정도로 더워지면서.. (핑계일 뿐이겠지만..*) 멋사 동영상도, 그리고 루비 포스팅도 게으르게 대했던 것 같습니다. 스스로 다그치고 반성하며, 다시 새로운 마음으로 오늘의 포스팅을 진행합니다. 아마도 오늘 밀렸던 포스팅을 모두 마무리하고 잠들 계획입니다 :) 아자아자!
이번 강의는 방문자수 카운트, 이메일 보내기에 대하여 학습하였습니다. 여기서 사용되는 오픈 소스들과, 방문한 IP Address들을 관리하는 방법에 대하여 자세히 알아보도록 하겠습니다. 오랜만에 하는 포스팅인 만큼 기초가 되는 부분도 자세히 포스팅해보도록 하겠습니다.
# 참고로 프로젝트는 저번 포스팅에 이어서 진행하도록 하겠습니다.
방문자수 Count
1. DB Model 만들기
IP Address를 담아 둘 모델이 따로 필요하기 때문에 viewcount라는 이름의 모델을 하나 생성해주었습니다.
IP Address를 담아 둘 ip_address라는 string 형태의 테이블을 생성해주었습니다.
2. 접속한 사람의 IP Address 저장
rails에서 ip address를 얻는 방법에 대하여 구글링해본 결과, 'request.remote_ip'라는 명령어라는 검색결과가 나왔습니다.
그래서 위의 코드는 해당 명령어를 이용해 1번에서 만들어준 데이터베이스에 접속한 사용자의 IP Address를 저장하는 코드입니다.
3. IP Address의 총 Count 출력
위와 같이 저장된 IP Address의 총 count를 출력해보면, 같은 사용자인데도 불구하고 새로고침을 누를 때마다 무한히 증가함을 확인할 수 있습니다. 그렇다면, 동일한 사용자에 대해서는 카운트를 적용하지 않는 방법을 생각해야할 것 같습니다.
DB에 들어간 요소들을 배열로 만들어주었고, 이를 .uniq.count를 통해 중복을 제외한 것들만 뽑아내서 숫자를 세어주었습니다. 이렇게 코드를 돌려보면, 아직까지는 저 혼자만 이 웹사이트에 방문하였기 때문에 1이라는 숫자가 뽑아져나옵니다.
** Google Analysis
위 사이트는 구글이 제공하는 웹로그 분석 통계 서비스입니다. 그래서 사실은 위에서 진행해주었던 복잡한 과정들이 필요가 없습니다 :)
새 계정을 만들어서, Account name, website name, industry category, URL, region을 기입하고, 사이트에서 제공하는 자바스크립트 코드를 모두 복사하여,
위 사진과 같이 application.html.erb의 yield 다음 줄부터 쭉 붙여넣어줍니다. 그리고 앞에서 작성해준 코드는 싹~ 날려버려도 무방합니다.
이메일 보내기
개발자로서 프로그래밍을 잘하는 방법은 남이 잘 만들어놓은 API, 오픈 소스를 잘 활용하여 자신의 서비스에 적용할 줄 아는 것이라고 생각합니다. 그래서 멋사에서도 그러한 방법을 많이 알려주는 것 같아 기쁜 마음으로 배우고있습니다.
# 새로운 프로젝트명: send_email, 컨트롤러명: home, 액션명: index
1. Mailer 사용
mailer는 컨트롤러나 모델의 생성과 마찬가지로 콘솔창에서 'rails g mailer [mailer name]'의 형태로 형성이 가능합니다. 이를 이용하여 누군가에게 메일을 보내는 일이 가능해지는 것입니다. 생성된 파일들을 확인해보면, mailer 카테고리에 usermailer라는 이름의 파일이 생성된 것을 확인할 수 있습니다. 저희는 이 파일을 이용할 것입니다.
2. Mailgun 사용
rails 내에서 이메일을 보낼 수 있도록 제공하는 서비스입니다.
가입을 하고, 웹사이트 하단에 보면 Sandbox Domain을 확인할 수 있습니다. 이는 테스트 용도라는 의미입니다. 참고로 실제 서비스에서는 샌드박스를 사용해서는 안됩니다.(테스트용이므로)
일단, rails에서 mailgun을 사용하기 위해서는(외부 라이브러리) gem파일을 추가하고 bundle install을 해주어야합니다. 이후에 github(https://github.com/jorgemanrubia/mailgun_rails)의 매뉴얼 대로
config > environment > development.rb 파일에 위의 코드를 추가해줍니다. 그리고 api key와 domain 자리에는 자신의 계정에 대한 정보를 넣어주면 됩니다.
앞에서 생성된 메일러 파일에 위의 코드를 붙여넣고, 이메일 자리에는 자신이 원하는 이메일을 대입해주면 됩니다. 강좌에서는 10 Minutes Mail이라는 10분동안 이메일을 무료로 제공하는 서비스를 이용하였습니다.
http://10minutemail.com/10MinuteMail/index.html
3. action 생성
index와 email_send라는 액션을 생성해주었고, email_send 액션을 들여다보겠습니다.
위와 같이 메일러.함수.deliver_now라는 명령어를 내리면 지금 즉시 이메일이 전송됨을 의미합니다.
4. 제목과 내용을 직접 쓴 이메일 전송
메일러 파일
컨트롤러 파일
뷰 파일
'RUBY ON RAILS' 카테고리의 다른 글
간단한 Git 명령어 (0) | 2015.08.16 |
---|---|
devise를 이용한 회원 관리하기 (0) | 2015.08.11 |
Rails 로그인하기 (Session & Cookie) (0) | 2015.07.31 |
데이터베이스 시드 & 이미지 업로드 (0) | 2015.07.29 |
데이터베이스 릴레이션 (0) | 2015.07.23 |