뱅크샐러드

뱅크샐러드

개발팀 리뷰

위 내용은 뱅크샐러드 전 • 현 재직자의 응답 결과입니다.

기술 스택

언어

Go

python

백엔드

AWS EKS

데이터베이스

AWS RDS(with MySQL)

Redis

데브옵스

Kubernetes

Terraform

재직자가 작성한 글

profile picture

다희

뱅크샐러드 CX Researcher

<<내 제품의 체력 알고 체력 키우기>> - 토스 PO Session 영상을 보고 나서 --- "마케팅을 끄니까, MAU가 줄어든다. 이렇게 계속 MAU 가 줄어들까? 다시 비용태워야하나?" "오늘 장애가 있어서 서비스 이용이 문제가 있었고, 그래서 DAU 가 줄었다. 다시 회복할 수 있을까?" --- 제품을 만드는 회사를 다니다보면, 어떤 이벤트에 의해서 DAU, MAU 지표가 변했을 때 어떻게 해결할 것이고 우리가 추가로 무언가를 해서라도 해결해야하는 문제인지 아닌지 고민하는 모습을 종종 볼 수 있습니다. 토스 PO session 에서는 PO가 꼭 알아야할 개념으로 Carrying Capacity 를 설명하는데, 이 Carrying Capacity 를 알면 우리 제품이 광고, 마케팅에 의존하지 않고 도달할 수 있는 최종 유저 수를 예측할 수 있다고 말합니다. [Carrying Capacity 계산법] Carrying Capacity = '매일 유입되는 신규 유저의 수' / '매일 이탈하는 고객의 비율' 예를 들어, '매일 유입되는 신규 유저의 수' 가 2천 명 이고 '매일 이탈하는 고객의 비율'이 1%라고 하면 그 제품이 도달할 수 있는 최종 유저 수는 20만 명이 되는 것인데요. 이렇게 내가 만드는 제품의 Carrying Capacity 를 알고 있으면, 현재 DAU/MAU 성장 혹은 하락이 일시적인 것인지와 어느 수준에 도달하면 성장이 둔화될 지 미리 예측해볼 수 있다고 합니다. --- [⭐️ 내가 영상을 통해 배운 게 있다면?] 1. 왜 제품의 DAU/MAU 가 변하다가 어느 시점에 멈춰서 유지되는지 단박에 이해하게 되었다. 2. 제품 자체가 가지는 체력인 Carrying Capacity 값 자체를 바꾸는 액션이 없다면, 그 제품은 마케팅이나 어떤 이벤트에 의해 일시적인 성장만 가능하다. 3. 'Carrying Capacity 높인다.' 는 생각으로 내가 시장/제품/고객을 리서치한다면, 더 실질적인 제언과 임팩트를 만들 수 있지 않을까.

profile picture

이승민

뱅크샐러드 프로덕트 매니저

저도 뱅크샐러드에 있으면서 망분리 규제를 경험했는데요, 보안을 위해 필요한 규제이지만 현장에서는 많은 불편함이 있습니다. 그래서 이번 규제 완화 발표가 반갑습니다. 대표적으로 개발 환경에서의 규제 예외적용 항목이 크게 도움될 것 같습니다. 많은 금융 기업의 혁신을 기대합니다.

재직자가 좋아한 글

🕊️ 자바의 기본 트랜잭션 매니저와 그 구현체들  |  데이터 무결성을 관리하는 데 있어서 트랜잭션 매니저는 자바 애플리케이션에서 매우 중요한 역할을 합니다. 이번 포스팅에서는 자바의 기본 트랜잭션 매니저 인터페이스와 그 구현체들을 알아보겠습니다.    트랜잭션 매니저란? 트랜잭션 매니저는 여러 데이터베이스 작업이 하나로 묶일 수 있도록 관리해주는 구성 요소입니다. 이는 모든 작업이 성공적으로 완료되거나, 하나라도 실패할 경우 전체 작업을 원상태로 되돌리는 'All or Nothing'의 원칙을 보장합니다. 자바에서는 주로 JTA(Java Transaction API)를 이용하여 트랜잭션을 관리합니다.   스프링과 트랜잭션 매니저 스프링 프레임워크에서는 더 편리하게 트랜잭션을 관리할 수 있는 추상화된 트랜잭션 매니저를 제공합니다. PlatformTransactionManager 인터페이스는 스프링의 다양한 트랜잭션 매니저가 구현하는 기본 인터페이스이며, 구현 클래스에는 DataSourceTransactionManager, JpaTransactionManager 등이 있습니다.   이러한 구현체들은 애플리케이션의 데이터 접근 방식에 따라 적합한 트랜잭션 관리 방법을 제공합니다. 가장 일반적으로 사용되는 몇 가지 PlatformTransactionManager 구현체와 그 특징에 대해 설명하겠습니다.   DataSourceTransactionManager JDBC를 직접 사용할 때 주로 이용합니다. 이 구현체는 데이터 소스를 통해 직접 커넥션을 관리하고, JDBC의 기본 트랜잭션 API를 이용하여 트랜잭션을 처리합니다. 간단하고 직관적이어서 JDBC 기반의 데이터베이스 작업에 매우 적합합니다. * 단일 JDBC 데이터 소스에 대한 트랜잭션 관리에 최적화되어 있습니다. * 다른 리소스와의 트랜잭션을 관리할 수 없기 때문에 JTA와 같은 분산 트랜잭션 환경에서는 사용하기 어렵습니다. HibernateTransactionManager Hibernate 세션과 트랜잭션을 관리하기 위해 설계되었습니다. 이 매니저는 Hibernate 세션을 현재 스레드에 바인딩하고, 트랜잭션이 시작될 때 세션을 열고 종료할 때 세션을 정리합니다. * Hibernate 세션과 생명주기를 동기화하여 안정적인 세션 관리를 가능하게 합니다. * Hibernate를 사용하는 애플리케이션에서 데이터에 접근하는 코드의 일관성을 유지하도록 도와줍니다. * 다른 데이터 접근 기술과 함께 사용할 경우, JTA를 사용하는 것이 더 적합할 수 있습니다. JpaTransactionManager JPA를 사용하는 애플리케이션에서 엔티티 매니저의 생명주기와 트랜잭션을 관리합니다. 이 매니저는 JPA 엔티티 매니저를 스프링 프레임워크의 트랜잭션 관리 프레임워크에 통합하여 사용합니다. * JPA 기반의 애플리케이션에서 트랜잭션과 엔티티 매니저의 통합 관리를 제공합니다. * 데이터베이스 기술의 추상화를 지원하므로, 다양한 데이터베이스 기술에 쉽게 적용될 수 있습니다. 결론 PlatformTransactionManager의 다양한 구현체들은 자바 스프링 프레임워크에서 각기 다른 데이터 접근 기술에 따른 트랜잭션 관리를 가능하게 합니다. 이를 통해 개발자들은 애플리케이션의 요구 사항에 맞는 최적의 트랜잭션 관리 전략을 선택하고 구현할 수 있습니다. 각 구현체의 특성을 이해하고 적절히 활용하면, 데이터의 일관성과 무결성을 효과적으로 유지하면서 안정적인 애플리케이션을 구축할 수 있습니다.

좋아요 23 저장 56

thumbnail