TIL

TIL_20230311

번잔중 2023. 3. 11. 23:57

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • Heart
    • 회원가입시 프로필 이미지 등록하는 기능 설계(아예 한꺼번에 받을지, 프로필 이미지 저장 및 삭제 용도의 api를 따로 만들지 고민)

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 109Convert Sorted List to Binary Search Tree(https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/)
  • 문제 조건
    • 오름차순으로 정렬된 요소로 구성된 단일 연결리스트의 head가 주어지고, 이것을 높이 균형 이진 탐색 트리로 만들어야 한다.​
  • 문제 해결
    • 크기를 알아야 하기 때문에 리스트를 하나 생성한 후, 재귀 함수를 수행해서 서브트리의 좌우 균형을 맞춰가야 한다.
    • 정렬된 상태로 연결리스트가 주어지기 때문에 리스트의 mid 값을 기준으로 트리를 만들면 높이가 하나 이상 차이나지 않는 트리가 만들어지게 된다.
    • 그래서 왼쪽과 오른쪽을 나눠서 leafnode까지 타고 내려간 후 root를 return하다보면 높이차가 1 이상 나지 않는 트리가 생성된다.
 

GitHub - chaning49/LeetCode

Contribute to chaning49/LeetCode development by creating an account on GitHub.

github.com

회원가입시 프로필 이미지 등록하는 기능 설계

  • 기존 방식: 회원가입시 기본 프로필 이미지로 설정하고 사용자가 변경하고 싶을 때 회원정보를 수정하는 화면에서 프로필 이미지를 등록할 수 있다. 
    • 프로필 이미지 등록 - MySQL에는 이미지 경로 저장, S3에 실제 이미지 파일 저장
    • 프로필 이미지 삭제 - MySQL에 있는 이미지 id를 찾아 삭제, S3에 있는 이미지 파일 삭제
    • 이미지 등록 api를 따로 만들어서 저장하는 방식
  • 고려해볼 방식
    • 자유 게시글 작성 방식처럼 form-data로 파일과 dto를 입력받는 방법
    • 기존 방식대로 api를 따로 두기
  • 더 찾아볼 내용
    • 등록, 삭제 api를 사용할 때, 요청이 많아지면 생기는 문제점(지연, db 부하 발생 등)
    • 분리된 api 방식을 다른 도메인에도 적용 가능한지 여부(자유 게시판, 모집 게시판)

느낀점

  • 리트코드가 이번에도 단일 연결리스트를 가지고 왔는데, 여전히 입출력이 어떻게 흘러가는건지 모르겠지만 그래도 이전 경험을 바탕으로 문제에서 제시하는 조건에만 맞게 로직을 구성하면 되는 문제였습니다. AVL 트리를 오랜만에 마주하게 됐는데 복습을 꼭 해야겠습니다. 출퇴근때 리트코드 복습각? ㅎㅎ
  • 회원가입 할 때, 프로필 이미지를 등록하는 api를 만들어야 하는데 아직 어떤 방식으로 할지 선택하지 못했습니다. 더 찾아볼 내용을 알아봐서 만들어보겠습니다.

내일 할 일

  • LeetCode 데일리 문제 풀기
  • Heart
    • 회원가입시 프로필 이미지 등록하는 기능 설계(아예 한꺼번에 받을지, 프로필 이미지 저장 및 삭제 용도의 api를 따로 만들지 고민) 및 효율적인 방법 고민해보기
  • Spring 학습에 참고할 책 찾아보기
  • 분기별 계획 작성하기

'TIL' 카테고리의 다른 글

TIL_20230313  (0) 2023.03.13
TIL_20230312  (0) 2023.03.12
TIL_20230310  (1) 2023.03.10
TIL_20230309  (1) 2023.03.09
TIL_20230308  (0) 2023.03.08