[Python] MAU(Monthly Active Users) 계산 방법
·
개발 (Development)/Python
이번 글에서는 텍스트 파일 형태의 사용자 접속 로그를 활용하여 MAU(Monthly Active Users) 를 계산하는 방법을 소개합니다.MAU는 한 달 동안 한 번이라도 활동한 고유 사용자 수를 의미하며, 서비스 이용 현황을 파악하는 데 중요한 지표입니다.1. 데이터 확인저는 다음과 같이 user, ip, event_time 세 컬럼을 가진 로그 파일을 준비했습니다.IP는 보안상 위험이 있을 수 있으므로, 아래 예시에서는 임의의 비공개 대역 IP(192.168.x.x)로 대체하였습니다.useripevent_timeadmin192.168.0.102023-11-08 01:02:17.883guest192.168.0.102023-11-08 01:04:47.914admin192.168.0.112023-11-0..
[Java] JPA에서 DTO는 Interface로 구현할까? Class로 구현할까?
·
개발 (Development)/Java
JPA를 사용할 때 DTO(Data Transfer Object)를 어떻게 정의할지 고민이 되는 경우가 많습니다. 특히 interface 기반 DTO와 class 기반 DTO 중 어떤 방식을 선택해야 할지 혼란스러울 수 있는데요, 이번 글에서는 두 방식의 차이점과 사용 목적에 따라 어떤 방식을 선택하면 좋을지 정리해보았습니다.Interface 기반 DTO예시public interface UserDto { String getName(); int getAge();}@Query("SELECT u.name as name, u.age as age FROM User u")List findUsers();장점코드가 간단하며, getter만 정의하면 JPA가 구현체를 자동으로 생성합니다.읽기 전용 DTO에 적..
[PostgreSQL] View와 Materialized View의 차이점과 사용법
·
개발 (Development)/PostgreSQL
PostgreSQL을 사용하다 보면 복잡한 쿼리를 반복해서 사용할 일이 많아집니다. 이때 뷰(View)나 물리화 뷰(Materialized View)를 활용하면 쿼리를 깔끔하게 정리하고 재사용할 수 있습니다. 이번 글에서는 PostgreSQL에서 View와 Materialized View의 차이점, 장단점, 그리고 실무 적용 방법에 대해 정리해보았습니다.View란?View(뷰)는 하나 이상의 테이블이나 다른 뷰에 대한 쿼리를 저장해 놓은 가상의 테이블입니다. 데이터를 직접 저장하지 않고, 정의된 SQL 쿼리 결과를 보여주는 역할을 합니다.View의 장점복잡한 쿼리 재사용: 자주 사용하는 조인, 조건 등을 미리 정의해서 깔끔하게 쓸 수 있습니다.보안 강화: 민감한 컬럼을 제외한 일부만 노출하는 뷰를 만들어..
[General] 테스트 커버리지 작성 방법과 측정 도구 활용법
·
개발 (Development)/General
소프트웨어 개발에서 테스트 커버리지는 코드의 품질과 안정성을 가늠하는 중요한 지표 중 하나입니다. 이번 글에서는 테스트 커버리지가 무엇인지, 어떻게 측정하고 관리하는지에 대해 구체적인 도구 예시와 함께 정리해보았습니다.테스트 커버리지란?테스트 커버리지는 작성된 테스트 코드가 실제 애플리케이션 소스 코드의 어느 정도를 검사하고 있는지를 나타내는 수치입니다. 일반적으로 다음과 같은 기준으로 측정됩니다:라인 커버리지: 전체 코드 중 테스트가 실행한 코드 라인의 비율분기 커버리지: 조건문(if, switch 등)의 참/거짓 분기를 얼마나 테스트했는지함수 커버리지: 테스트를 통해 호출된 함수의 비율조건 커버리지: 조건문의 개별 논리 연산자들이 참/거짓 모두 테스트되었는지커버리지 측정 도구언어나 프레임워크에 따라 ..
[Others] `Day, DD Mon YYYY hh:mm:ss UTC+0000` 형태의 문자열을 엑셀에서 날짜/시간으로 변환하고 시간 차이 계산하는 방법
·
기타 (Others)
엑셀을 사용하다 보면 다양한 형태의 날짜와 시간 데이터를 다루게 됩니다. 특히 시스템 로그나 외부 데이터 소스를 통해 가져온 경우, 날짜 형식이 일반적인 엑셀 포맷과 다를 수 있어 직접 파싱해야 하는 경우가 많습니다. 이번 글에서는 문자열 형태의 날짜/시간 데이터를 엑셀이 인식할 수 있도록 변환하고, 이를 바탕으로 시간 차이를 계산하는 방법을 정리해보겠습니다.1. 문자열로 된 날짜/시간의 구조 파악예를 들어 다음과 같은 형태의 데이터가 있다고 가정해보겠습니다.Fri, 30 May 2025 07:28:36 UTC+0000이 문자열은 다음과 같이 구성되어 있습니다.요일: Fri,날짜: 30 May 2025시간: 07:28:36타임존: UTC+0000엑셀은 이와 같은 문자열을 자동으로 날짜/시간 형식으로 인식..