얼마전 SBS에 누군가 투고한 260만명의 성구매자 파일을 투고했다는 뉴스에 관해서 글을 쓴 적이있다. 자극적인 키워드인만큼 조회수가 굉장히 높았다 (다른 공부관련 글에 비해...ㅠ).
그런데, 티스토리 블로그를 운영하게 되면, 어떤 키워드 검색으로 해당 글로 접속하였는지를 알려주는데, 그 키워드 중에서 유독 눈에 띄는것이 "성매매 확인", "성매매자 확인" 이었다. 이런게 있나?
나도 궁금해서 쳐봤다.
그랬더니 유흥탐정이라는게 나오더라.... 이게 무엇인가?
보통 이런 비공개적인 서비스를 가장 잘 정리하는 나무위키를 참조해보았다.
유흥탐정의 서비스는 서로 다른 세 명의 시장 참여자가 사용하더라.
첫번째, 자기 애인이 유흥업소를 다닌다고 의심하는 사람.
Photo by Kyle Glenn on Unsplash
강남에 전직 성매매 업소 실장이 설립했다고 알려진 유흥탐정은, 전화번호만 제공하면, 그 전화번호로 유흥업소를 다녔는지 아닌지를 확인해주는 서비스를 제공한다고 한다. 이러한 서비스 때문에, 자기 애인의 전화번호를 넘겨주어 유흥업소 출입 기록을 조회하는 대가로 서비스 대금을 지급한다더라.
물론 이러한 서비스는 불법이다. 알아본 바로는 신용정보의 이용 및 보호에 관한 법률에 위반된다더라. 또한 사생활 조사 하는 것을 금지하기 때문에 애초에 탐정이란 직업이 불법이라더라 한국에선.
때문에, 이 서비스의 실질적으로 운영된 기간은 2018년 8월부터 9월사이 고작 13일이 전부라고 한다. 그런데, 고작 2주도 안되는 이 시간에 무려 800명이나 이 서비스를 이용했다고 하고 운영자는 이 서비스 운영으로 3천만원의 수익을 올렸다카더라. 엄청난 수요가 아닌가? 이런 서비스를 운영하는게 합법이기만 하면, 카카오랑 네이버가 당장에라도 운영하겠다고 나설 판이다.
이런 엄청난 서비스가 가능했던 이유는 핵심 DB가 있었기 때문이다.
여기서 두번째 시장 참여자가 나온다, 경찰을 피하고 싶은 유흥업소 운영자들,
Photo by Adam Jaime on Unsplash
이 서비스가 가능했던 이유는 결국은 잘 짜여진 고객 리스트, 즉 DB 덕분이다.
유흥업소 운영자들은, 자기에게 고객인척 전화가 오는 사람이 경찰인지 아닌지 판독의 필요성을 느꼈다. 따라서 초창기에는 유흥업소 몇군데가 결합하여 손님과 경찰의 목록 리스트를 만들기 시작했다. 이른바 "골든벨"이었다. 이 DB의 최초 목적은 손님인척 가장하여, 자기에게 연락하는 사람이 경찰인지 아닌지 구분하는 것을 목적으로 골든벨이 탄생하였다.
이 골든벨 리스트를 활용하여, 다른 유흥업소들에게도 월 회원료를 받고 DB 조회가 가능하게했다. 그리고 다른 유흥업소들은 자기에게 연락온 번호가 경찰인지 아니면 일반 손님인지를 이 골든벨 리스트로 확인했다. 월 회원료는 5만원이라고 전해진다.
하지만 경찰을 피하고자 하는 목적 이외에도, 손님에 대한 상세한 정보가 더 쌓이기 시작했다.
바로 세번째 시장 참여자들의 노고 덕분이다. 진상을 피하고자 하는 유흥업소 운영자들,
이미 골든벨의 틀은 만들어졌고, 더 다양한 유흥업소가 참여함으로써, 정보는 더욱 축척되게 되었다. 다만 유흥업소에 방문하는 손님들중 그들이 마주하고 싶지 않은 특정 개체가 있었으니, 바로 진상이었다.
유흥 업소들은 고개의 상세한 정보, 취미 및 특징, 차 등의 더 구체적인 개인정보를 담아 골든벨을 견고하게 만들었다. 그리고 마찬가지로 이 진상을 피하고자 하는 유흥업소들에게 월 회원료를 받고 DB를 구독하게 했다. 모르긴 몰라도 웬만한 지역 벼룩시장보다 구독자가 높았음을 난 확신한다.
어쨌거나, 이게 불법이고 운영자는 재판받고 다 잡혀서 DB의 현 존재가 에매모호해졌으나, 이게 없어질 DB 같아 보이지는 않는다. 사실 골든벨 이전에도 간간히 뉴스가 나와 몇십만명 단위의 리스트가 있다는 것이 확인된 적도 있었고, 전국적으로 사용하던 대량의 리스트가, 경찰조사 한번으로 없어질수가 있을까? 가능성은 희박하다.
또한 골든벨 DB가 1800만개의 전화번호가 담겨 있다고 하는데, 저 DB를 구독했던, 조회했던 사람들 중 저 DB의 복사본을 가지고 있지 않다고 어떻게 확신할 수 있을까?
안드로이드에서 하나의 액티비티 (화면)이 다른 화면과 연결하기 위해서는 인텐트를 사용한다고 한다.
그러면 정말 간단하게 (나 같은 안드로이드 병아리의 경우에는 그다지 녹록지는 않았다) 인텐트로 화면을 서로 이어보자!
우선, 그전에 사용했던 프로젝트는 다시 또 더러워졌으니 일단 버리고 새로 만들자.
Empty activity 로 만들고 프로젝트명은 "Intents"로 해보자.
프로젝트명 "intents"; Empty Activity "package com.example.intents;" 를 확인
** 패키지 이름은 나와 다를 수 있다는걸 재차 강조한다. 나는 "example"로 되어 있지만, 각자의 화면에서 설정한 패키지 이름으로 서로 다를 것이다.
자 여기까지가 초기 셋팅이 되었으니, 우선 방법을 하나하나 실행해보고 나중에 파헤쳐보자.
Step 1 연결할 다른 액티비티의 java 클래스 파일과 xml 파일 만들기
app-> java -> 신규 클래스 생성
프로젝트 디렉토리에서 app -> java 폴더에 마우스 오른쪽 클릭 한 다음, new-> Java class 생성하도록 하자. 신규 클래스의 이름은 "SecondActivity"로 명명하자. 그러면 위와 동일한 화면을 얻을 것이다.
그다음 바로 xml 파일을 생성해도 상관은 없으나, 혹시 기억하는 병아리가 있을지 모르겠다. 모든 액티비티를 관장하는 java 파일은 AndroidManifest.xml (App -> manifests 폴더 하위에 있음)에 등록이 되어야 한다. 따라서 우선 AndroidManifest.xml 에 우리가 새로운 자바 클래스 파일을 만들었다는 사실을 알려주고 오자.
위의 코드 블록을 참조하여 기입하도록 하자. 우리 병아리들이 이제 벼슬이 나기 시작했으니, 이전처럼 하나하나 어디 추가하라고는 말하지 않겠다. 절대로 귀찮아서 그러는 것은 아니니 미소 지으며 넘어가자.
자 이제, 자바 클래스 파일을 생성한 뒤 manifest.xml 에 생성했다는 것을 알려줬다. 이제 자바 클래스 파일에 연동된 UI 화면만 있으면 된다.
그러기 위해서, 귀찮으니 있는 것을 복사해다 쓰도록 하자.
layout 에서, activity_main.xml을 복사해서 똑같은 layout 폴더 안에 붙여 넣기 한 다음, 이름은 "activity_second.xml"로 명명한다.
그러면, 첫 번째 액티비티가 Empty 액티비티 임으로 두 번째도 똑같이 Empty Activity에서 "Hello World!"라는 텍스트뷰를 가지고 있는 화면이 생긴다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity"> // 연결되는 자바 클래스 파일 수정
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="두 번째 액티비티"// 글자 수정
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
xml (UI 화면)과 자바 클래스 (기능)을 서로 올바르게 연결하기 위해 activity_second.xml의 "tools:context=" 부분을 "". SecondActivity">"로 수정하여 SecondActivity.java 와 연결해준다.
그리고 TextView의 android:text="두 번째 액티비티"로 바꾸어서, 나중에 화면이 바뀔 때 첫 번째 화면과 다른 점을 한눈에 볼 수 있도록 하자.
그리고 반대로도, SecondActivity.java 파일로 다시 돌아가서, 아래와 같이, activity_second 레이아웃을 참조하게 한다.
이렇게 하면, "화면과 기능을 서로 연결한다"라는 목표에서, "화면과 기능" 부분은 완료된다. 즉, "서로 연결한다!"라고 말할 때 그 "서로"는 정의된 것이다.
이제 연결을 시작하자.
Step 2 연결하기
연결을 언제 할 것인가? 보통 버튼을 누를 때 하지 않나?
버튼 만들러 가자.
첫 번째 보는 화면은 activity_main.xml UI 화면 일 것임으로, 해당 UI 화면에 버튼을 만들어 보자.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="첫 번째 액티비티"// 수정
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
/* 아래로 다 추가 */
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="두 번째 액티비티로 가즈아!"
android:onClick="onClick"
android:id="@+id/button"
/>
</android.support.constraint.ConstraintLayout>
그다음, 저 버튼을 눌렀을 때 수행하는 "기능"은 activity_main.xml과 연결된 MainActivity.java로 가서 기능을 만들면 된다.
package com.example.intents;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent; // 추가import android.view.View; // 추가publicclassMainActivityextendsAppCompatActivity{
@OverrideprotectedvoidonCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/* 아래로 다 추가 */publicvoidonClick(View view){
startActivity(new Intent("com.example.intents.SecondActivity"));
}
}
여기까지 하면, 화면의 UI 버튼과 기능까지 연결되었다. 여기까지 같이 온 사람은 굉장히 고생이 많았다. 꼭 좋은 결실 있기 바란다.. (나한테도 ㅠ)
Step 3 실행해보자
앱 실행 시 첫번째 액티비티 화면두 번째 액티비티로 가즈아! 버튼 클릭 시 두번째 액티비티로 이동
다시 되짚어 보자.
처음에 우선 새로운 java class(SecondActivity.java)를 만들어 액티비티를 정의하고, 사용자가 볼 수 있는 UI 컴포넌트(activity_second.xml)를 만들어 자바 클래스와 연동한다. 여기까지 되면, 최초에 있던 MainActivity와 연결할 다른 액티비티 하나를 더 만든 셈이다.
그다음 모든 액티비티는 manifests.xml 에 등록되어야 사용이 가능하다고 함으로, 등록한다.
다른 액티비티로 넘어갈 수 있는 버튼을 UI 컴포넌트 (activity_main.xml)에 만든 뒤, 그 버튼 클릭 시 실행되어야 하는 기능을 MainActivity.java 에 정의한다.
바로 저 정의되는 부분이 인텐트이다.
향후 내가 공부를 더 채워서, 다시 와서 어떻게 기술적으로 되는지 차근차근 설명을 다시 해보겠다. 우선 지금은 기능이 활성화됨에 만족하고 넘어가자.
한두 달 전에 일산 쪽으로 가던 길에 같이 계시던 분이 여기 명소라고 잠깐 들리자 해서 들렸었다. 휴게소 여행을 다니는 사람이 있을 만큼 요새는 휴게소의 특징별로 사람들이 참 많이 찾더라(전지적 참견 시점의 이영자 휴게소 맛집 소개도 한몫했을 거다). 보통은 각 지역의 휴게소의 음식들로 분류하는 게 대부분인데, 여기는 이름부터 알 수 있듯이 하늘로 이어진 다리로 명소가 된 곳이었다. 나는 잘 몰랐지만 그 당시 같이 있던 분을 포함해 많은 사람들에게 잘 알려진 곳이었다.
조금 전 전지적 참견 시점 방송에 시흥 하늘 휴게소가 나왔다. 청하 매니저가 여행을 자주 다니지 않는 청하를 위해, 목적지로 가는 길에 잠시 들릴 수 있는 유명한 명소를 소개해 주고 싶었단다. 하늘휴게소 이야기와는 별개로 참 같이 일하기 예쁜 마음씨다.
그리고 굉장히 공감가는 방문 목적이다. 휴게소 뭐 그냥 휴게소다. 이 휴게소만을 최종 목적지로 두고 방문을 하는 사람은 많이 않겠지만, 혹시 그런 경우가 있다면 실망을 좀 할 것 같다. 잠깐 들려서 구경하는 목적 이외에는 사실 그다지 크게 볼거리는 없다. 그냥 지나가는 길에 잠깐 들려가는 정도로 충분한 것 같다.
음식이야 사실 휴게소 음식은 대부분 다 괜찮다. 그러면 이 휴게소의 유일한 특징인 뷰포인트(View point)가 남는데, 사실 차 오고가는거 위에서 보는 느낌 이외에는 큰 감동은 없다. (애초에 입장료 하나 없는 휴게소에서 너무 바라는 게 많은 건가?) 어쨌든 호텔 뷰나, 자연 명소 뷰포인트를 생각하고 오는 거라면 실망을 좀 하겠다.
다만, 아까도 말했듯이 남들이 다 찾아가는 곳에는 그럴만한 이유는 있다. 그리고 누가 휴게소에 가서 몇시간 구경할 목적으로 가겠는가? 사실 그간 없던 형태의 휴게소 건물인건 맞으니, 혹여나 지나가는 길에 시간적 여유가 된다면 10분 정도 눈요기는 할 수 있을 것 같다.
나는 사랑이
어떻게 이뤄지는 지 연구 했지
여러가지 상황의 수를 계산 해 봤지
그땐 내가 좀 못 생겨서 흑흑
니가 좋아하는 노랠
알아내는 것은 필수
가성이 많이 들어가서
마이크 조절이
굉장히 조심스러웠었지
그렇게 노래방으로 가서
그녀가 좋아하는 노랠해
무심한 척 준비안한 척
노랠 불렀네 어어
그렇게 내가 노랠 부른뒤
그녀의 반응을 상상하고
좀더 잘 불러볼걸 노랠 흥얼 거렸네
사랑때문에
노랠 연습하는 건 자연의 이치
날으는 새들도
모두 사랑노래 부르는 게
뭔가 가능성만 열어 준다면
근데 그년 남자친구가 있었지
그것은 내 실수
그 후로 혼자 노래방에서
복잡한 맘을 달랬네
몇 달을 혼자 노래방에 갔는지
그렇게 노래방이 취미가 되고
그녀가 좋아하는 노랠해
괜찮은 척 안슬픈 척
노랠 불렀네 어어
그렇게 내가 노랠 부른뒤
우연히 집에 가려 하는데
갑자기 그녀가 노래방에 가자 하네
그렇게 나는
그녀를 따라 걸어보지만
괜찮은 척 사실 난 너무 많이 떨려요
그녀 아무렇지 않아도
나는 아무렇지 않지 않아요
근데 그녀는 나를 바라보고는
자기도 지금 아무 렇지 않지 않대요
무슨 말이 냐고 물어보네
그렇게 노래방을 나오고
그녀를 집에 데려다 준뒤
무슨일 인가 괜찮은 건가
멍해 버렸네 어어
핸드폰도 없는 늦은 새벽
집에서 계속 잠은 안오고
그녀가 좋아하던 노랠 흥얼 거렸네
그녀가 좋아하던 노랠 흥얼 거렸네
(출처: 멜론 뮤직)
요즘에 나오는 노래를 안 들은 지가 꽤 됐었는데, 얼마 전 오랜만에 만난 친구가 코인 노래방에서 이 노래를 부르더라.
간간히 까페에서 흘러나오던 노래를 굳이 제목까지 찾아보지 않았었는데, 노래방에서 만났다. 다들 아마 이런 경우 많지 않을까?
친구가 노래를 부르면서 나는 가사를 계속 보고 있었는데, 가사가 정말 좋았다. 과하게 치장하거나 하는 표현 없이 친구들한테 카카오톡 메시지로 주고받을 만한 어구나 단어들로 쓰여 있어 굉장히 솔직하고 공감도 잘 되는 느낌이었다.
누구나 과거에, 현재에, 또는 미래에, 마음에 있어 보고만 있어도 떨리는 이성과 노래방을 가본 경험이 있을 것이고, 노래를 부를때 실력을 자랑하고 싶어 고민해봤던 적이 있으리라 생각한다. 나 또한 그런 경험이 있었었고, 이 노래 가사를 보면서 참 예전 생각이 많이 났던 것 같다.
설레는 이성과 노래방에서 있었던 것을 떠올릴 때 생각나는 노래가 몇가지가 있는데, 내 경우엔 그중 하나가 "그댄 달라요 - 한예슬"이다. 당신의 경우에는 어떤 노래인가?