[TIL] 2021.08.27 [항해99 / 82일] 성능이 떨어졌어요
오늘은?
동료들의 피드백 반영, 유저 테스트 반영 계획 & 마무리 일정 회의
필요 없는 사진 삭제 기능 구현
삽질, 삽질, 삽질, 삽질, 삽질, 삽질, 삽질, 삽질
회고
"이번에는, 구체적인 설계까지 구상한 후에 구현을 시작해 보세요"
그래서 작성했다.
// 필요없는 사진 처리
1. 문제인식
게시글 작성중 첨부한 이미지는 그 즉시 서버에 저장됨
그 상태에서 게시글 작성 취소 시 무의미한 데이터로 남음
서버의 부하를 막기 위해 주기적으로 삭제해야 함
2. 해결방법
node-schedule 사용하여 주기적 실행
작성된 게시글의 img_list 조회 +
이미지가 저장된 폴더 조회 +
두 결과값을 비교하여 게시글에서 사용하지 않는 이미지는 삭제
3. 구체적 설계
util.router -> node-schedule(02:00:00) ( utilController.cleanUp )
util.controller -> cleanUp(
1. posts = utilservice.findAllPost
2. images = fs.readdirSync() // 동기 방식
3. cleanUpList = posts.filter((x) => !images.includes(x)) // 차집합
)
util.service -> 1. findAllPost( board.findAll )
2. findAllImage() // 불필요~?
뭘 해야 할지 술술 그려진다.
어렵지 않아 보인다며 자신감을 드러냈다.
응 아니야.
다차원 배열은 만만한 녀석이 아니었다.
늘 그렇듯이, 이런 삽질을 거친 후
구현을 하긴 했는데...
시킨 운동을 마치고 돌아온 그분이 황당해하며 말씀하신다.
"도대체 왜 그러는 거예요?"
"왜 자바스크립트로 C언어를 하는 거예요?"
"이 코드 그대로 C로 옮겨도 돌아갈 정도로 low level이네요"
.........
이게 칭찬이야 욕이야?
"리팩터링을 네 번은 해야겠네요."
역시 욕인 것 같다.
당연하게도, 구현했을 때부터가 시작인 코드 리뷰를 통한 수정사항이 잔뜩 쌓였다.
반복문을 줄이고, 애시당초 배열의 가공을 controller에서가 아닌 service에서 하고 등등!
다시금 시간 가는 줄 모르고 매달리며 신나게 괴로워하는 중인데
근래 일 평균 네시간만 잔 여파일까?
지켜보다가 이런 말을 하신다.
"전반적으로 성능이 떨어졌는데, 잠을 잡시다. 효율 있게 해야죠?"
성능이 떨어졌댄다...ㅋㅋㅋ
너무 재밌어서 졸리지도, 피곤하지도 않은데 확실히 머리가 안 도는 것 같다.
마무리를 못 하고 그냥 자는 건 참~ 불편한데
시간 사용의 효율성에 대해 깊은 공감을 하니, 일단 자고 마저 하겠다.
오늘의 명언
시간은 누구에게나 공평하게 주어진 자본금이다.
이 자본을 잘 이용한 사람이 승리한다.
- 아뷰난드
'Today I Lived > 항해99' 카테고리의 다른 글
[TIL] 2021.08.29 [항해99 / 84일] 기본 (0) | 2021.08.29 |
---|---|
[TIL] 2021.08.28 [항해99 / 83일] (2) | 2021.08.28 |
[TIL] 2021.08.26 [항해99 / 81일] 삽질 (0) | 2021.08.27 |
[TIL] 2021.08.25 [항해99 / 80일] ufo.town (4) | 2021.08.25 |
[TIL] 2021.08.24 [항해99 / 79일] 칭찬 (4) | 2021.08.24 |
댓글