개발로 자기계발
728x90

1년 반정도 데이터 매니저로 일을 하다가 최근 DBA로 경력을 시작한 지 5개월 차에 접어들었습니다. 회사에서 DBA로서의 첫 5개월을 마치며, 5개월이라는 시간이 그렇게 길지는 않지만, 1개의 서비스를 오픈하며 DBA로서 많은 것을 배우고, 다양한 고민을 해보며 성장하는 계기가 되었습니다. 아직 주니어라 많이 부족하지만, 이 과정에서 느낀 점과 배운 것들을 공유하고자 합니다. 어디까지나 개인적인 견해입니다. 

 

개발자와의 협업

분류 내용
배경 신입 DBA로 들어왔을 때, 가장 먼저 느낀 점은 개발자와의 소통의 중요성이었습니다.
세부 내용 정규화와 성능의 균형, 테이블 구조 설계 시 개발자의 요구 사항과 DBA의 논리적 구조 설계 간의 균형을 찾는 과정에서 두 직군 간의 소통의 중요성을 느꼈습니다.
결론 서로 다른 관점에서의 토론을 통해 최적의 설계를 도출하는 것이 중요하다는 것을 깨달았습니다.

 

어드민의 역할과 데이터 관리

분류 내용
배경 많은 조직에서 데이터의 CRUD를 관리하는 어드민의 중요성은 강조되곤 합니다.
세부 내용 어드민의 사용 패턴이나 기능에 따라 데이터 접근 및 수정 패턴이 달라질 수 있으며,
이에 따른 테이블 및 인덱스 설계의 고려사항이 생길 수 있었습니다.
결론 사용 방법이 DB 성능에 영향을 줄 수 있으므로, 어드민의 역할과 관련된 설계는 신중해야 한다는 것을 깨달았습니다.

 

화면 UI와 데이터의 연계

분류 내용
배경 DB 설계는 종종 백엔드 중심으로 이루어지곤 합니다.
세부 내용 하지만 최종 사용자에게 제공되는 화면 UI와 데이터의 표현 방식을 고려하지 않으면, 
불필요한 데이터 변환 작업이나 추가 쿼리가 발생할 수 있습니다.
결론 사용자 경험과 DB 성능 최적화 사이의 균형을 찾는 것도 중요하다는 것을 느꼈습니다.

 

통계 데이터와 DB 설계

분류 내용
배경 대용량의 통계 데이터를 관리하는 것은 DBA의 주요 과제 중 하나입니다.
세부 내용 데이터하우스나 별도의 분석 플랫폼 없이 통계 데이터를 효과적으로 관리하려면,
파티셔닝, 요약 테이블, 뷰, 인덱싱 전략 등 다양한 방법을 고려해야 하는 것을 느꼈습니다.
결론 통계 데이터의 특성에 따라 다양한 설계 전략을 적용해야 함을 깨달았습니다.
(ex Aurora의 좋은 성능, 여러 개의 DB 서버로 분리)

 

프로시저와 이벤트의 활용

분류 내용
배경 프로시저나 이벤트 등 DB 내부에서 실행되는 객체들의 활용은 DBA의 주요 업무 중 하나라 생각합니다.
세부 내용 하지만 이러한 객체들의 사용은 DB의 부하를 증가시킬 수 있으므로 적절한 시나리오와 환경에서의 활용이 필요하다는 것을 느꼈습니다.
결론 프로시저나 이벤트 등은 편의성을 가져다주지만 서버 자원과의 균형을 고려하면서,
DB 내부에서의 처리 로직을 최적화하는 방향으로 접근해야 함을 느꼈습니다.

 

인덱스와 쿼리 최적화의 고민

분류 내용
배경 인덱스는 데이터 조회 성능을 향상시키는 주요 수단이지만, 항상 최적의 결과를 가져다주지는 않았습니다.
세부 내용 인덱스를 걸었을 때와 걸지 않았을 때의 쿼리 비용과 결과 행의 수를 비교하면서, 
어떤 상황에서 인덱스를 활용하는 것이 적절한지 고민하게 되었습니다.
결론 인덱스의 선택과 활용은 데이터의 특성, 쿼리 패턴, 서버 환경 등 다양한 요소를 종합적으로 고려해야 함을 깨달았습니다

 

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)