오늘 할 일
- LeetCode 데일리 문제 풀기
- Heart
- 회원가입시 프로필 이미지 등록하는 기능 설계(아예 한꺼번에 받을지, 프로필 이미지 저장 및 삭제 용도의 api를 따로 만들지 고민)
오늘 배운 것
LeetCode 데일리 문제 풀기
- 오늘의 문제: 109. Convert 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 |