본문 바로가기

스타트업/운영11

데이터분석, 통계 읽기 불완전한 통계 "데이터 샘플"이 완벽하지 않다고 해서, 통계를 믿지 않는 사람들이 아주 자주 있다. 음... "이론"을 증명하거나 "전체"를 대변하기 위한 거라면 맞는 말이다. 하지만, 그게 아니라면 틀린 말이다. 데이터를 읽는 이유는, 의사결정을 하기 위해서다. 의사결정을 할 땐 일부라도 데이터가 있는 게 좋다. 데이터를 보면 현장의 패턴이 보인다. 없는 것보다는 있는 게 훨씬 더 좋다. 다만, 전체에 대한 의사결정을 하지 않는다. 부족한 정보는 현장정보로 채운다. 샘플이 부족하면 그걸 감안하고 본다. 노이즈가 섞여 있다면, 그걸 감안하고 본다. 아주 클린한 데이터라도, 사람 마음과 관련된거라면 언제든지 달라질 수 있다. 명심하자. 통계는 의사결정을 위한 하나의 정보이다. 통계 자체의 완벽성에 얽매일 .. 2022. 4. 29.
서버개발 기본기, "데이터 다루기" :: 알고 넘어가자. 데이터분석 이야기를 하기전에, 데이터엔지니어링 이야기를 좀 하고 넘어가자. 데이터분석이 숨은 뜻을 찾아내는 거라면, 데이터엔지니어링이란, 데이터를 보관, 이동, 정리, 변형하는 기술을 말한다. Hadoop, Oracle 등은 데이터소프트웨어들이지, 엔지니어링 그 자체는 아니다. SI를 하면 대형데이터 다룰 일이 별로 없다. 새로 만드는 시스템은 데이터가 없고, 추가시스템이라면 접근권한이 없기 때문이다. "초기데이터 구축"도 중요하지만, "상용데이터"를 다루는 건 완전히 다르다. 그래서, 3년이나 지나도 "데이터 다루기의 기본"을 모르는 경우가 많다. 정리해보자. 지울까 말까 데이터 생성의 주체는 두 개 밖에 없다. "사람"이거나 "기계"이거나. 여기서 "사람"이란 사용자를 지칭한다. "사용자 데이터" 내.. 2019. 9. 11.
소프트웨어 개발자, 신입사원 교육. 어떻게 해야할까? 교육. 교육은 어렵다. 내가 성장하는 게 아니라, 남을 성장시키는 것이기 때문이다. 스스로 하지 않으면 아무리 옆에서 잘해줘도 소용이 없다. 옛날에는 답답했다. 일이 너무 많고 바빴다. 그래서 내가 직접했다. 가르칠 시간이 없었다. 그랬더니 여전히 나 혼자서만 일하게 되었다. 2명 이상 해야 하는 일이 오면 못한다고 튕겨내거나, 1달치 일을 2달로 늘려 잡았다. 병렬방식이 아니라 직렬방식으로 일한 것이다. 1년쯤 되니까 죽을 것 같았다. 올해 한 것을 내년에도 반복한다고 생각하니, 갑자기 암울해졌다. 나는 계속 도전하고 변화하고 싶었다. 이런 건 나랑 맞지 않았다. 대타를 길러야 했다. 어쩔 수 없이 교육이란 걸 시작하게 되었다. 가르치면 돼 ? 처음엔 적당한 사람을 데려다 놓고 가르쳤다. 그런데, 태도.. 2019. 9. 5.
레거시 운영개발팀을 수습하다. 이건 꽤 오래전, 어떤 조직에 불끄러 들어갔을 때 이야기다. Red Zone 조직 피로도를 낮춰야한다. 맨날 밤늦게 퇴근하는 것도 하루 이틀이지. 이대로는 피로도가 높아서 언젠가 빵하고 터지고 만다. 빵하고 터지면 "조직노하우"는 제로가 되고 만다. 매번 제로에서 새출발 할 수는 없다. 탑을 높이려면 계속 남이 쌓은 일에 뭔가를 더해가야 한다. 가장 급한게 "조직피로도"를 낮추는거다. 피로도를 낮추려면 "적시퇴근"을 시켜야 한다. "정시퇴근"까진 못해도 몸이 달궈지기 전에 퇴근시켜야 했다. 그러려면 업무량을 자르거나 일정을 당기고 미룰 수 있어야 한다. 음, 그걸 조직에 어필할 수 있을까? 조직이 그런 딜을 받아주려면 믿음이 필요했다. 내가 펑크를 내지 않을 거라는 믿음. 일정은 고객합의까지 필요했기 때.. 2019. 8. 19.
뭣이라, 거래데이터를 고친다고? ※ 원본 바로가기 : https://twitter.com/Dangerplanet/status/1095261839527563264 오늘자 트윗이다.주인공은 유명 쇼핑몰이다.내용의 핵심은, 사용자 "주문서"를 조작했다는 것이다.심지어 고객과 통화해서 양해를 구한 것도 아니다.항의를 했더니, 구매 취소 문자가 왔다. 이 분 트윗 밑에 글타래가 달렸다. "저도 같은 경험을 했어요.""저번에 투명케이스를 샀는데, 다른 제품이 오더라고요." 이곳은 오픈마켓이 아니라 자기들이 물건을 도매로 산 다음에 판다.즉, 인터넷쇼핑몰이 장난치는 당사자라는 뜻이다. 문제는 저걸 컴퓨터로 고칠 수 있다는 게 신기하다.기능이 된다고 짜줬을 것 같은데 솔직히 실망이다.분명 사업팀에서 요구했을텐데... 후... 하... "주문서"는 ".. 2019. 2. 14.
인스타그램 다운 장애, 왜 일어났을까? 아침에 인스타그램 다운으로 시끄러웠다.웹에서 500 error 가 뜬다고 난리였다.웹어플리케이션 서버가 DB 와 통신할 수 없을 때 나는 에러다.에러값을 리턴했다는 건 웹어플리케이션 서버는 살아있었다는 뜻이다. 그런데 왜, 언제부터 500 error 가 떴을까?추측해보았다. 장애현상 장애가 나면 다양한 형태로 개발팀에 보고가 접수된다.앱, 웹의 장애비율은 실사용자수에 기인한 것이다.대부분 앱사용자니까 앱쪽 보고가 많은 건 당연하다. 다만, 웹사이트 장애가 함께 올라오는 건 전체 다운(Down)으로 보는 게 맞다.웹쪽 보고서에 500 error 가 있었다. 언제 장애가 일어났을까? 인스타그램이 트위터 공식계정에 이슈를 올린 건 10:46분. 한국시간이다. 인스타그램이 조치가 완료되었다고 올린 게 11:07.. 2019. 1. 29.
Java GC time 어떻게 할까? Garbage Collection.C/C++은 객체를 선언하면, 명시적으로 Destroy 시켜줘야 한다.그렇지 않으면 메모리를 할당한 채로 운영되다가, Out Of Memory 에러를 띄운다. 하지만 Java 는 명시적으로 Destroy 시켜주지 않아도 된다.Java VM 이 자동으로 Destroy 시켜주기 때문이다.물론 실시간으로 하는 건 아니고, 일정 시간을 두고 모아서 없앤다.쓰레기 수집하는 것과 비슷해서 Garbage Collection 이라고 부른다. 문제는 이 기간 동안 Java VM 은 인입된 트래픽을 정지시켜 놓는다.이게 순식간에 지나가면 문제가 없는데, 어떤 때는 5~6초를 넘어간다.하드디스크 상의 SWAP Memory를 지우면서 I/O Bottle Neck 이 걸리는 거다.SSD라면 상.. 2019. 1. 17.
MySQL 테이블 크기 알아내기 물리적 크기를 알아내는 건 DB구조 파악의 첫번째 지름길.어제 크기와 오늘 크기를 알아내어 증가분을 비교한다.물리적 크기가 큰데 분산이 안되어 있다면, 어떻게 분산 배치할지 고민해야 한다. DB 스키마 내에 있는 각 테이블의 물리적 구조 조회하기 select * from information_schema.TABLESwhere table_schema = 'DB_NAME'; 그 중에서 각 테이블의 물리적 크기 조회하기 SELECT TABLE_NAME AS 'Tables', round(((data_length) / 1024 / 1024), 2) 'Data size(MB)',round(((index_length) / 1024 / 1024), 2) 'Index size(MB)'FROM information_sch.. 2019. 1. 3.
빅데이터 분석, 데이터를 모르면 보이지 않는다. 데이터를 보면서 사업과의 다리를 놓은 게 십년이 넘은 것 같다. 인프라성 프로젝트도 꽤 했으니, 언제나 사업과 가까이 있었던 건 아니다. 다만 모든 데이터를 볼 수 있는 위치에서 개발운영했기 때문에 중요한 정보들을 먼저 보고, 시사점을 빨리 캐치할 수 있었다. 어떤 자료는 꾸준히 가공을 했고,중요한 건 사업팀, 임원들에게 먼저 전달하곤 했다. 사업팀에서야 별거 아니겠지만, 시스템 관점에선 꽤 큰 성공경험이었다. 하지만 조직문제에 부딪혀서 그 경험들을 확장할 순 없었다. 최근에 빅데이터 열풍이 지나면서, 이제 각 기업들에 자리를 잡고 있다고 한다. 하지만, 개인적으로는 반대다.여전히 갈 길이 멀다고 본다. 왜냐하면 아직도 빅데이터를 "기술인프라의 도입"으로 이해한다. 포르쉐를 샀다고 프로레이서가 될 수는 .. 2018. 3. 23.
반응형