2017년 8월 23일 수요일

중앙일보 기자 인터뷰 내용

프로필(나이, 학교, 특이경력)

79년생이고
천안대학교 졸업
나눔로또 홈페이지 만들었음. 2010년쯤?



스타트업에 몸담게 계기, 거쳐간 회사는 어떤회산지

대학 졸업후 교수님이 창업을 했음. 그때 부터 스타트업 시작.
1. 교수님이 창업한 SI(외주용역) 회사
2. 디자이너들끼리 창업한 회사
3. 스포츠토토 커뮤니티 회사
4. 온라인 인강 회사
5. 이커머스 회사
6. 온라인 용역거래 회사
7. 플랫폼 개발 회사
8. 온라인 광고 중개 회사
9. 보험관리 플랫폼회사
10. 엄마 커뮤니티 회사
등등..


이직이 잦았던 이유
회사가 자주 망하기도 했고, 새로운 개발욕심과 환경에서 근무하고 싶은 욕망
그리고 사주에 역마살이 많다고도 했다.



스타트업에 대한 일반적인 인식(수평, 개방) 괴리가 있는지.

대기업이나 중견기업과는 다른 궤도에 있는 스타트업에서는 철저하게 필요에 의한 설정만이 있을 뿐이다. 필요없다면 하루아침에 사라진다. 수평적인 회사문화라면 스타트업 수평적인것이 가장 효율적이었기 때문이고 수직적인 회사문화라면 역시 같은 이유다. 스타트업이 모두 수평적인것은 아니다. 오너의 성격에도 많은 영향이 있겠지만 결국은 작은 회사에서 최대한의 효율을 뽑아낼수 있는 가장 효과적인 방식이기 때문이다. 여기서 모든 스타트업은 수평적인 회사문화가 있을것이다 라고 생각하겠지만 그렇지는 않다. 

실제로 오너가 능력이 다방면에 출중하거나 직원들이 무능한 사람들 뿐이라 일일이 대표나 임원이 모든것을 결정해야만 해서 수직적인 체계로 잡혀진 스타트업도 매우 많다. 무능한 사람들을 뽑냐고? 오너가 일은 잘하는데 사람 볼줄 모르는 경우다. 




스타트업 특유의 단점은 무엇이 있는지

대부분의 스타트업의 단점은 참여자들이 스타트업이라는 특성의 회사 대해 이해가 낮아서 생기는 문제들이다. 얻어갈게 분명해야하는 업종인데도 불구하고 내가 얻어가야 하는지 불확실한 사람들이 주로 문제를 야기시킨다. 그저 월급을 받고 경력을 쌓고 싶어서 스타트업에 참여하게 되면 결단코 하나 얻어가는거 없이 토사구팽 당하고 말것이다. 이게 단점이라면 가장 단점이라고 생각한다. 




갑질 학력차별등이 스타트업에 만연한지 ? 구체적인 ?

웃긴 얘기이긴 한데, 스타트업에서 갑질한다는건 회사는 이미 벌만큼 회사라고 생각이 든다. 그것도 상위 1%에나 되야 가능한 일이지 싶다. 
만연하기 쉽지 않다는 말을 하는것이다. (99% 스타트업들은 직원들이 오히려 오너보다 귀한 경우가 많다. 고졸이라도 경력많은 엔지니어 같은 직종은 무릎꿇어서라도 잡는다!!)

어찌되었던 (내가 겪은)그런 상위 1% 스타트업에서 이루어 지고 있는 갑질 혹은 학력차별은  창업멤버들에 의해서 좌지 우지 되는경우를 봤다. 창업멤버들이 전에 다른 회사에서 겪었던 안좋은 (그러나 그들에게는 유리한) 회사 정책을 정하거나 실행하면서 시작된다. 예를들면 그들이 졸업한 특정대학 출신우대라든지예쁜외모의 여직원을 채용해서 추근덕댄다든지외국에서 공부잘하고 한국온 멋모르는 어린친구들 채용해서 저임금으로 부려먹는다던지그렇게 젊은 친구들이 (저임금으로 착취당하는지도 모르고) 많이 입사해서 (역시 많이 퇴사하는지도 모르고) 젊은 이미지의 스타트업 이라는 멋질것같은 타이틀의 회사에 다른 젊은 친구들이 들어오고 싶어한다. 그렇게 시니어 급을 뽑지 않으니 그저 어린친구들은 그게 당연한줄로만 알고 퇴사하면서 두번다시 스타트업에 가지 않는 좋은 계기가 되기도 한다. 

아까도 말했듯 스타트업 특성의 문제라기 보다는 회사를 지배하고 있는 사람들의 인간됨됨이가 가장 문제인듯 하다. 이런것들은 어느 회사든 마찬가지이지 싶다. 





이외 하고 싶은말.

스타트업이라는 회사에 취직한다는데에는 많은 자유가 부여되지만
그만큼 많은 책임감도 부여가 됩니다.
책임감이라는것은 실패를 용납하지 않는것들이기 때문에 
역설적으로 많은 자유가 주어집니다..

단순히 책임을 진다는 의미가 회사를 나간다거나 급여를 반납한다거나 하는 작은 포기로는
10% 채우지 못하죠. 그야말로 모두가 하나 때문에 망할수도 있는것이거든요 .

그것의 무게를 이해하기 전까지는 절대로 스타트업에 취업해서는 안됩니다.


그렇게 취업해서는 급여도, 경력도, 시간도 구성원 모두에게 낭비일 뿐입니다.

2017년 7월 13일 목요일

힘들다.

예전 디지털 대성에 있을때 팀장님이나 부,차장님이

아 힘들다. 그냥 개발만 했으면 좋겠다.

라고 하는 말을 잘 이해 못했는데

2017년에는 그 말이 뇌에서 떠나지 않는다.

그냥 직원일때는 오늘 할 이 일에만 신경쓰면 됐는데

지금은 내일이 내가한다고 되는일들이 아니더라.

그런건 정말 힘들다.

내가 열심히 한다고 되는것도 아니고 내가 열심히 할수도 없는 그런것들.

그래도

힘들다 라는 말로는

아무런 일이 진척되지 않으니

그냥 글로만 씨부리고 마는거니까.


불현듯...

양세현과 김성준이 왜 그랬었는지도 알것 같다..

기술총책임 이라는 자리가 사람을 그렇게 만드는거구나....

2017년 7월 10일 월요일

KT 혹은 SK 기기를 LGU+ 로 개통하기.


GS25 요금제

한달에 2.7만원 으로 데이터 무제한(음성100, 문자100)으로 사용하는 요금제를 가입하기 위해

기존에 쓰던 KT 용  G5 기기를 LG 로 개통하는 절차.

먼저

GS25 편의점에서 유심칩을 산다... 강남에서 회사가 있는 선정릉역 루트에 있는 모든

GS25 편의점을 다 뒤졌는데 딱 한곳. 그것도 회사 앞에서 겨우 하나 삼. 8800원.
(대부분 이런 상품이 있는지도 모르고 있음...)

일단 사서

https://gs25.uplussave.com/gs/prod/prodIntro.mhp
으로 가서 번호이동이든 신규가입이든 신청함.

맥에서 크롬으로도 작성했으니 꼭 윈도우가 아니어도 상관없음.

10-20 분 내로 해피콜이 왔음.

KT(혹은 SK) 에서는 그동안 사용 감사했다며 바로 끊음.

30분내로 등록 된다는데... 2시간이 넘어서 안됨. 젠장..

KT(혹은 SK) 고객센터에 전화해서 2번 > 3번 > 4번 (통화품질부서)  로 연결

기기의 일련번호와 IMEI 번호를 알려주고 휴대전화 보호 서비스가 걸려있는지 확인.

있으면 해지하고 없으면 끝.

LG 고객센터에 4번으로 전화함

KT(혹은 SK) 기기를 사용하려 한다 하고 일련번호, IMEI 번호, WIFI MAC 어드레스와 어떤기종인지 기기코드 를

알려주면 대리점을 통해 개통한다며 시간이 걸리고 개통되면 전화주겠다고 함.
(대리점 방문하면 한큐에 해결된다는 뜻, 아니면 좀 걸리니 양해바람 이라고 읽으면 됨.)

이러면 됨.

끝.

.
.
.

은 아니고

결국 개통이 안되서

LGU+ 대리점으로 가서 사정을 설명하니 1분만에 개통해줌...

알뜰폰이지만 자사계통이라 상관없는듯.

요약 : 그냥 대리점 가서 해결하세욥.


2017년 7월 9일 일요일

Mysql 중복 데이터 하나만 남기고 제거하기


값이 작은 int 나 뭐 varchar 50 이하는 그냥 UNIQ 설정을 하면 그만이지만

text 나  varchar(5000) 뭐 이런애들은 그런 설정이 안되니...

일단 해당애들을 걸러낸다. 필요한것은 인덱스 키와 중복을 판단할 컬럼.

select idx , content, count(*) as cnt from TABLE group by content

--------------------
| idx | content | cnt |
--------------------
| 23 | 11111 | 12 |
| 31 | 2222 | 33 |
| 33 | 3333 | 2 |
| 99 | 4444 | 1 |
--------------------

update TABLE as A,
(select idx , content, count(*) as cnt from TABLE group by content) AS B,
set
A.content = NULL   -- 지우기 쉽게 널로 채움. 바로 지워도되지만 시스템 상 삭제 컬럼을 두고 운영하는 경우가 있으니..
where
A.idx <> B.idx AND  -- 처음 인덱스만 나오니 첫 인덱스만 안겹치면 됨. (나중거를 쓰고 싶으면 MAX 를 사용)
B.cnt > 2 AND         -- 당연히 겹치는 기준인 카운트 2 이상만
A.content = B.content    -- 내용이 같은 놈들.


해서 일단 content 에 NULL 을 넣음.

데이터 확인하고

쿨 하게

delete from TABLE where content IS NULL;

끝.

2017년 7월 6일 목요일

Mysql 이벤트 스케쥴러


인터넷에 잘못된 엿같은 정보가 있어서 (대부분 돌아다님) 많이 헤멨음.

5. 버전 이상에서 작동됨.

AWS  AURORA 에서도 테스트 완료했음.
(aurora 에서는 이벤트가 기본적으로 작동하게 되어있음. 파라메터 그룹 수정할 필요 없음)

기본문법

create event IF NOT EXISTS (이벤트 명)
    ON SCHEDULE
        EVERY (반복 가동되는 시간 텀)
        STARTS (시작 시간 기준)
    DO (쿼리)


create event IF NOT EXISTS e1
    ON SCHEDULE
        EVERY 30 SECOND
        STARTS CURRENT_TIMESTAMP  -- 시작시간 기준임. '2017-12-31 00:00:00' 이렇게 지정가능
    DO insert into test.e set regdate=now();

라고 하면

지금 당장 1번 실행하고 30초 마다 돌려.

라는 뜻임.

EVERY 2 MINUTE => 2분마다 실행
EVERY 1 HOUR => 1시간마다 실행
EVERY 24 HOUR => 24시간 마다 실행
EVERY 1 DAY => 1일 마다 실행
EVERY 30 DAY => 30 일 마다 실행
EVERY 1 MONTH => 1달 마다 실행

제거는 mysql.event 에서 직접 삭제해도 되지만

drop event (이벤트 명) 으로 하는게 제일 깔끔함.

use database 로 현재 바라보고 있는 데이터베이스 에서 가동된다. (물론 권한이 있으면 타 데이터베이스 에도 가능은 함.)

권한도 접속계정의 권한에 따름.

AURORA 의 경우 mysql 의 시간 기준일을 변경할수 없으므로 잘 계산해서 넣어야함.

대개 가동되는 계정의 시간 기준일에 맞춰서 알아서 수정됨.


2017년 6월 14일 수요일

드디어 아마존으로 서버를 모두 옮겼다!!!!!

처음에 왔을때 매우 막막했다.

내 주전공이 아닌 자바로 구축되어 있는 서버였고

생전 처음보는 클라우드의 탈을 쓴 IDC 센터 인 엔클라우드 서비스로 인프라가 구축되어 있었고

구석구석 PHP 와 nodeJS 로 만들어진 똥덩어리 서비스.

채팅서비스도 푸시서비스도 제대로 작동안하고

데이터베이스 쿼리도 개 똥망 같이 구축되어 있었...

동접 100명만 되도 쓰러지는 서비스..

그럼에도 불구하고 한달에 유지비가 150만원이나 책정되고


채팅은 간단하게 센드버드 를 들여와서 해결했고

푸시는 아마존  ApiGateway 와 Lambda 로 해결.

구석구석 뿌려져 있던 PHP 와  nodejs 서버는 PHP - Codeigniter 로 통합.

똥만 쌓여가던 이미지 스토리지는 모두 S3 로 이전.

중간에 서버에서 이미지 받아 리사이징 하는 작업도 Lambda 로 처리.

데이터베이스는 잔가지 다 쳐내버리고 RDS - Aurora 로 모두 이전. - 쿼리튜닝은 당연하냐!!

한 서버에 모두 담겨있어서 하나가 장애가 나면 모두가 다 작동하지 않았던

결제, 문자, 푸시, 이미지서버 를 각각 다 분류해서 구성.

판매용앨범을 생성하는데 노드는 SQS 와 EC2 의 Autoscaling 으로 해결!

단돈 90만원 안쪽으로 인프라 비용을 줄였으며 DAU30만 까지는 거뜬할것으로 판단.

자자 이제 3.0 버전 업데이트하고 바통은 마케팅 영업으로 넘기자!!!!

아자자자!!!

우리 회사 잘하고 있다!!!