오늘 한일
오늘은 들어오는 화면 데이터를 가져와서 필요한 데이터로 이벤트를 구현하는 걸 부탁받았다.
문자열 관해서 알고리즘을 풀어본적은 있으나 직접적으로 문제 해결을 위해 실무에서 어떻게 처리해야하는지 내가 왜 이걸 해야하는지 알고 하니 평소에 알고리즘을 왜 풀어야하는지 제대로 체감 했다.
데이터가 굉장히 길게 나왔다. 간단하게 생각해서 f12를 눌렀을 때 나오는 창의 구성과 비슷하다.
화면에서 내가 일으켜야할 이벤트를 직접으로 생성하고 파악해야한다.
생각할 수 있는 순서는 다음과 같다.
1. 먼저 내가 필요한 데이터를 찾는다.
2. 필요한 데이터를 따로 추출한다.
3. 필요한 데이터 만으로 어떻게 이벤트를 일으킬 것인가
3단계로 생각할 수 있다.
먼저 1단계에서 화면에서 컴포넌트별로 x,y좌표가 나왔다. [x1,y1],[x2,y2] 이런식으로 말이다.
그러면 2단계로 이거를 추출할려고 했다.
위 를 예시로 들면 '{'를 기준으로 나누고 속성값을 따로 뽑아고 그에 대한 값을 리스트에 저장했다.
여기서 리뷰 했을 때 단점이 나왔다.
그냥 저렇게 다 리스트에 넣고 나중에 그거를 따로 골라서 뽑아야하면 loop를 2번 돌아야한다.
속도가 생명이기에 정말 많은 데이터가 들어온다면 이거는 반복문을 두 번 쓰는것 자체가 좋은 선택지가 아니다.
물론 내가 맡은 직무로 속도를 생각해야하기에 다시 한번 생각해보란 소리를 들었다.
다시 1단계로 돌아가 생각을 다시 해봤다.
나는 데이터중 가장 눈에 띄는 녀석이 좌표이기에 처음엔 이녀석으로 뭔가를 해볼생각을 했다.
근데 문제는 이거를 뽑아도 같은 좌표여도 그 위에 존재하면 어떻게 하나란 생각이 들었고 좀 더 찾아보니 몇번째 층에 있는지를 알려주는 속성인 hierarchy 이 존재하고 그에 따른 좌표가 있었다.
그래서 hierarchy와 x좌표,y좌표를 키 값으로 주고 그에 따른 속성값들을 Value 값으로 붙였다.
이러면 2중 반복문을 도는 것 보다 한번만 돌아도 키 값으로 저장하기에 따로 별 다른 반복문을 더 돌지 않아도 되고 나중에 탐색할 때도 키 값으로 해결이 가능할 것이다.
이렇게 문제를 해결하고 느낀건 내가 그동안 알고리즘을 문제해결로 푸는것이 아닌 내가 아는 지식에 더해서 풀었다는 느낌이 강했다는 것이다.
새로운 과제를 받고 문제를 정의하고 해결해야할 때 다시 나의 약점이 나타난 것 같다.
알고리즘도 틈틈히 풀어야 겠다.
꼭 어려운 문제를 푸는 것보단 주어진 문제를 명확히 정의하고 어떤 방식으로 풀어야 해결이 되는지 정리가 가능해야한다.
'일상,취미' 카테고리의 다른 글
다시 시작하는 TIL 9일차 (0) | 2024.06.18 |
---|---|
다시 시작하는 TIL8일차 (1) | 2024.06.17 |
다시 시작하는 TIL6일차 (1) | 2024.06.12 |
다시 시작하는 TIL 5일차 (1) | 2024.06.11 |
다시 시작하는 TIL4일차.... (0) | 2024.06.10 |