🍺DATE : 2023.02.01 WED
📁 알고리즘을 열심히 해야하는 이유
프로젝트를 본격적으로 진행한지 삼 일만에 알고리즘의 중요성을 또 한 번 깨닫게 되었다.
현재 구현하고 있는 부분은 페어링 부분이다.
페어링과 페어링 이미지를 두 가지 방식으로 연관 관계를 주고 구현해보고 있다.
첫 번째는 '페어링 : 페어링 이미지 = 1 : 1 ', 즉 일대일 연관관계로 두 엔티티의 관계성을 주는 방식이다. 페어링에서 총 받는 이미지가 3장이기 때문에 해당 이미지를 하나의 엔티티에 저장하는 방법으로 일대일 관계성을 생각해보았다.
두 번째는 '페어링 : 페어링 이미지 = 1 : N ', 즉 일대다 연관관계로 두 엔티티의 관계성을 주는 방식이다.
첫 번째 방식과 두 번째 방식 모두 장단점이 존재하기 때문에 어떤 방식이 더 효율적이고 좋은지에 대해서 고민해보려고 했다.
내가 알고리즘에 대한 중요성을 다시 한 번 느끼게 한 것은 두 번째 방식으로 페어링 수정을 구현하는 과정 때문이었다.
이미지를 어떻게 받고, 이미지 정보를 어떻게 수정해야할 지 고민이 많았다.
만약 처음에 2장을 등록하고, 수정할 때에 1장의 이미지가 바뀌고 1장의 이미지가 추가되어 총 3장의 이미지로 바뀌는 사례를 생각해야했기 때문이다. 단순히 이미지의 아이디로 바꿀 수 없는 부분이었기 때문이다.
고민의 고민 끝에 우선은 반복문과 조건문을 이용하여 구현하였으나, 굉장히 비효율적이며 1차원적인 코드가 완성이 되었다.
그래서 이 부분을 좀 더 고민해서 효율적으로 바꾸고 싶었다.
이래서 알고리즘이 중요하다는 것을 다시 깨달았다. 알고리즘에 분명 비슷한 사례가 존재했을 것이기 때문이다...!
오늘 오후 시간을 해당 내용을 고민하며 많은 시간을 보내게 되었다.
하지만 큰 성과는 없었던 것 같다..
내일 아침이 되면 다른 방식이 또 떠오를 수 있으니 우선 오늘은 여기까지 해보고, 내일 다시 해보려고 한다!
그리고 빠르게 이제는 다른 부분도 구현해야지..!
'사이드 프로젝트 > GetABeer' 카테고리의 다른 글
[사이드 프로젝트] EP 6. 도메인 연결 및 HTTPS 설정 (0) | 2023.02.07 |
---|---|
[사이드 프로젝트] EP 5. ImageUpload 구현하기 (+NPE...) (0) | 2023.02.03 |
[사이드 프로젝트] EP 4. QueryDsl 과 친해지기 (0) | 2023.02.03 |
[사이드 프로젝트] EP2. 테이블 명은 신중하게 (0) | 2023.02.01 |
[사이드 프로젝트] EP 1. 시작인 듯 시작 아닌 시작 같은 플젝 (0) | 2023.01.31 |
댓글