TIL

TIL_20230510

번잔중 2023. 5. 10. 23:57

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기
  • 운동하기 - 웨이트 트레이닝

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 59. Spiral Matrix II(https://leetcode.com/problems/spiral-matrix-ii/)
  • 문제 조건
    • 양의 정수 n이 주어지고, n x n 행렬을 1부터 n^2까지를 나선형 순서로 값을 채워라.
  • 문제 해결 과정
    • 어제 나온 문제와 비슷하다.
    • 정사각행렬이기 때문에 n에 따라서 원소의 총 개수는 n^2이다.
    • 1부터 n^2까지 순차적으로 값을 증가시키면서 R -> D -> L -> U 순서로 반복문을 수행하면 된다.
    • 이번에는 정답의 반환 타입이 2차원 배열이기 때문에 2차원 배열을 만들어서 해보자

Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기

  • 오늘 작성해본 부분은 넘어온 이미지 파일이 없고, 기존 이미지가 존재하는 경우였습니다.
  • 이 경우는 게시글에 포함된 이미지를 전부 삭제하고 싶다는 의미로 생각해서 기존에 있던 이미지를 모두 삭제 해주는 로직을 작성했습니다. 
  • 작성한 이후 제대로 동작하는 것을 확인한 후에, 문제를 발견했습니다.
  • 만약 다른 경우, 이미지를 추가로 저장하고 싶거나 기존 이미지 중 일부를 변경하고 싶거나 기존 이미지 중 몇 개만 삭제하고 싶은 경우에는 어떻게 해야 할까요?
  • 새 이미지가 파일 타입으로 넘어오게 되면 어떤 이미지를 삭제해야 하는지 알 수가 없습니다. 그래서 기존 이미지와 새로 넘어오는 이미지를 비교할 수 있는 것이 필요하다는 생각을 했습니다.
  • 대체할 수 있는 방안들
    1. 그냥 게시글 수정에서 이미지가 넘어오면 기존 이미지를 모두 삭제하고 새로운 이미지만 남긴다. → 가장 단순하고 구현 난이도가 낮지만 원하는 수준의 기능은 아닙니다.
    2. 변경 또는 삭제해야 하는 이미지가 있으면 우선 스토리지에 저장한 후 기존에 남은 이미지들은 나중에 삭제한다. → 삭제할 사진을 알아낼 방법이 없어서 우선 제외했습니다.
    3. 게시글 수정 화면에 이미지 삭제 API를 함께 두어 삭제가 일어나면 S3와 DB에서 삭제하고, 실제 게시글 수정 서비스 로직에서는 이미지를 저장만 한다. → 이전에 프로필 이미지를 등록할 때, 요청이 많아지면 서버에 부하가 심해질 수 있는 우려때문에 사용하지 않은 방법이라 패스
    4. ✅ 게시글 수정 화면에서 이미지 목록을 쭉 보여주고, 이미지마다 X 표시를 붙여놓고 해당 버튼을 누른 이미지를 List 형태로 서버에 request할 때 함께 전송한 다음 해당 목록에 포함된 이미지는 제거해준다. 그 후에 넘어온 파일은 새로 저장해준다. → 가능하다면 현재로서는 가장 베스트인 방법인 것 같아서 시도해보려고 합니다.

운동하기 - 웨이트 트레이닝

11일차!

  • 오늘의 운동
    • 벤치프레스 5 x 12
    • 와이드 그립 시티드로우 4 x 12
    • 사이드레터럴레이즈 4 x 12
    • 스쿼트 5 x 12
    • 크런치 4 x 12

느낀점

  • 제가 엄청 싫어하는 유형의 문제인데 그래도 비슷한거 한 번 풀어봤다고 익숙해서 코드를 조금 수정하고 정답을 맞췄습니다. 역시 공부는 반복과 숙달인듯!!
  • 게시판 이미지 기능이 구현하기 어렵다고는 했는데, 그래도 해봐야지요. 어떻게든 해내야지요. 별수있겠습니까 호호
  • 운동을 더 꾸준하게 해야하는데, 그렇게 못해서 조금 스스로 부끄럽지만 그래도 운동을 할 수록 늘고 있는 것이 느껴집니다. 웨이트 꿀잼! 앞으로 더 자주 올리겠어요.

내일 할 일

  • LeetCode 데일리 문제 풀기
  • Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기
  • 원티드 프리온보딩

'TIL' 카테고리의 다른 글

TIL_20230512  (1) 2023.05.12
TIL_20230511  (0) 2023.05.11
TIL_20230509  (0) 2023.05.09
TIL_20230508  (0) 2023.05.08
TIL_20230507  (0) 2023.05.07