목록분류 전체보기 (295)
습관처럼
로그 데이터로 유저 이해하기 Jul 30, 2017 • 송훈화 0. 들어가며 우아한형제들 데이터서비스팀 송훈화입니다. 제 업무는 로그를 설계/정의하고 데이터를 분석하는 것입니다. 궁극적으로, 유저가 남긴 로그로부터 유저의 경험을 추정하고 니즈를 파악해 서비스 개선에 필요한 인사이트를 제공하는 것입니다. 이를 위해 로그 설계/수집/분석에 이르는 전반적 과정에 직/간접적으로 관여하고 있으며, 입사후 4개월간 경험한 내용과 생각을 공유하고자 합니다. 1. 분석의 시작은 서비스를 이해하는 것부터 입사 직후 진행한 업무는 클라이언트 로그를 설계하는 것이었습니다. 앱의 모든 화면과 이벤트(클릭, 배너 노출)를 상세히 파악하고, 시나리오와 서비스의 흐름을 이해하는 것부터 시작했습니다. 마치 실제 유저가 앱을 쓰듯이 ..
보호되어 있는 글입니다.
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 www.acmicpc.net 문제 설명 상근이가 숫자 카드들을 가지고 있으며 주어진 숫자가 상근이가 가지고 있는 숫자카드에 있는지 없는지를 판단하는 문제이다. 접..
1. 인증정보 관리 거의 모든 침해사고에서 인증정보가 탈취되고 악용됨에 따라 인증정보에 대한 적절한 보호 조치가 필요하다. 특히, 도메인 관리자 및 루트 권한 계정의 수를 줄이고, 로컬 관리자 계정 및 각종 권한 계정에 대해 암호 관리 솔루션을 사용해야 한다. 또한, 민감한 시스템 및 애플리케이션에 대한 원격 접근을 포함한 모든 접근에 대해 다중요소 인증 방식을 도입해야 하며, 인증정보가 악용되고 있는지 여부를 지속적으로 확인하기 위해 인증정보에 대한 감사를 진행하는 것이 좋다. 이와 함께, 관리자 계정에 대한 지속적인 모니터링이 요구되며 관리자 활동에 대해 강력한 인증 절차를 거쳐야 한다. 2. 망분리 시행 대부분의 금융기관들이 망분리를 적절히 시행하지 않고 이에 대한 모니터링도 이루어지지 않고 있어 ..
저는 보통 알고리즘을 풀 때 시간 복잡도를 제외하고 시간 초과가 발생하는 경우가 가끔 있는데 오늘은 이러한 점을 잠깐이라도 해결할 수 있는 방법을 알려드리도록 하겠습니다. 가장 먼저 C++ 에서 cout, cin 입출력은 printf, scanf 보다 효율성이 좋지 않습니다. 또한 소수 같은 경우 몇 번째 자리까지 표현을 해야 한다 라고 할 때 printf, scanf를 이용하는 것이 편할 것입니다. 하지만 일반적으로 코딩 테스트나 알고리즘을 혼자 풀어볼 때 빠르게 풀기 위해 저는 cin, cout를 이용하는 경우가 많습니다. 물론 경우에 따라서 바꿔가며 쓰는 것이 좋습니다 ^0^b 그렇다면 입출력에는 문제가 없지만 시간 초과가 발생하는 경우 다음 방법을 쓰면 조금이나마 입출력의 효율성을 증가시킬 수 있..
https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. 접근 방식 간단합니다 수를 정렬하고 해당 인덱스에 있는 수를 출력하면 됩니다. 이러한 문제들은 대표적으로 시가 복잡도를 계산하고 코드의 효율성을 판단하는 문제입니다. 3가지의 풀이 방식을 해보았습니다. (참고) 아래로 갈수록 더 좋은 효율성을 가지고 있습니다. 코드 [Algorithm 라이브러리 sort..
https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 www.acmicpc.net 문제 풀이 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = ..
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이다. 예를 들어, 1, 2번이 스타트 팀, 3, 4번이 링크 팀에 속한 경우에 두 팀의 능력치는 아래와 같다. - 스타트 팀: S12 + S21 = 1 + 4 = 5 - 링크 팀..