[TIL] 코드 최적화 2

oaksusu·2024년 3월 5일
0

TIL

목록 보기
8/41
post-thumbnail

0. 주제 선정하게 된 배경 :

(1) id값이 아닌 string으로 된 데이터를 사용

백엔드에서 받아온 영화 정보에는 id값, 영화명, 개봉일자, 포스트URL 등이 있었고, 화면에 필요한 정보만을 가져다가 사용했다.
영화 id값은 단순히 데이터를 필터링할때만 필요하고,
화면에서는 보여지는 내용에는 필요하지 않기 때문에 리덕스 툴킷에 영화id값까지 저장할 필요가 없다고 생각했다.
그러나 챗지피티를 통해 최적화 및 개선할 만한 내용 중에 영화 id값을 사용하라고 추천해줬다.

(2) 성능 및 메모리 관리 측면

성능 및 메모리 관리 측면까지는 미처 생각하지 못했다.
지금 당장은 많은 데이터를 다루지 않기에 데이터를 불러오고 관리할떄 필요없는 정보까지 저장을 하는것에는 개의치 않았던것 같다.
예를 들어, 불러온 데이터들 중에서 필요한 데이터를 필터링해서 해당 데이터만 저장하고 끝이였다.
필터링해서 얻은 데이터는 객체였고 객체 안에 있는 id만 필요함에도 불구하고 객체를 통채로 저장해서 사용했다.

1. 최적화를 해야하는 이유 :

(1) 영화명(String)이 아닌 id값으로 사용해야하는 이유는?

  1. 일관성 유지
    : 예를 들어, 극장 이름은 사용자가 인지하는 레이블이지만,
    실제로 시스템에서 극장을 식별하는데 사용되는 것은 일반적인 ID다.
    따라서 ID를 상태로 관리함으로써 시스템에서 사용되는 데이터에 더욱 일관성을 유지할 수 있다

  2. 효율성 :
    ID는 보통 숫자 또는 짧은 문자열로 구성되어 있어서
    극장 이름보다 메모리 사용량이 더 적다.
    따라서 많은 극장을 다룰때 더 효율적이다.

  3. 유연성 :
    ID를 사용하면 극장 이름이 변경되더라도 상태 업데이트가 필요하지 않다.
    극장 이름이 변경되면 ID는 일반적으로 그대로 유지되기 때문에 상태 업데이트 없이도
    시스템이 원활하게 작동할 수 있다.

  4. 고유성 보장 :
    ID는 일반적으로 고유하므로 선택된 극장을 식별하는데 더 신뢰할 수 있다.
    중복될 가능성이 없어서 ID를 사용하면 충돌을 방지할 수 가 있다.

(2) 성능 및 메모리 관리 측면

: 객체 전체를 저장하게 되면,
1. 메모리 사용량이 더 많아지게 되고
2. 개체의 깊은 복사와 비교가 필요할 수도 있게 됨

그런데 필요한 값만을 선택한 영화에 대한 정보를 추적하는데 사용할 경우
1. 메모리 사용량이 필요한 만큼 쓰이임!
2. 상태 업데이트가 더 가볍고 빠름

3. 적용해보기

커밋 내역

profile
삐약

0개의 댓글