
개요저번에도 언급했지만, 구글 드라이브와 같은 파일 저장소 서버를 계속 개발하고 있다. 올 4월 전시회 출품하는 단계까지는 개발을 완료했지만, 우려되는 부분이 많아서 고민들 중 하나를 정리해보려고한다. 가장 걱정되는 부분 중 하나가 업로드다. 현재 구현 방식에는 문제가 있을 수밖에 없다. 이전 글도 사실 파일 업로드를 어떻게하면 효과적일지에 대한 고민을 하면서 작성한 글이었다. MultipartFile에서 부터 찾아들어간 Multipart/form-data 전송 방식. 그리고 chunked 업로드 그리고 결론부터 말하면, 내가 고민한 것에 대한 정답은 이미 나와있었고 의외의 곳에서 힌트를 얻었다. 문제점현재 서비스의 업로드의 가장 큰 문제는 서버가 파일 업로드/다운로드를 중개해준다는 것이다.사용자 ..

작년에도 참가했던 컨퍼런스에 올해도 참석하게 됐다. 2024.07.28 - [일상/대외활동] - I/O Extended 2024 Incheon 참가 요약 및 후기 올해는 좀 쉬어갈까 했는데, 발표자분이 초대해줌 + 오랜만에 지인들도 볼겸 참가하게 됐다. 컨퍼런스를 갈 때마다 보고싶은게 서로 다른 세션에 흩어져 있어서, 왔다갔다하는게 피곤해서 이번엔 Tech 세션에서 쭉 듣기로 했다. 가장 많이 도움될만한 세션 1번과 6번일 것 같고, 2,4번도 재밌을 것 같다. 3,5번은 사실 큰 도움이 될 것 같진 않지만, 한번쯤 들어볼만하지 않을까? 란 기대를 하고 있다. 1. SnowFlake, 분산서버에서 고유 ID를 생성하는 방법대상 : 백엔드 5년차 이상의 RDB 테이블 설계 경험(PK와 인덱스에 대한 고민)..

개요스프링 서버를 개발하다보면 클라이언트 측에서 보내주는 파일을 당연한듯이 MultipartFile로 핸들링하게된다. 그런데 MultipartFile을 들어가보면 interface인데, 요청을 받기 위한 MultipartFile은 따로 구현체가 없다. 그렇다면 어떻게 클래스처럼 사용할 수 있을까? 이는 private static 클래스로 숨겨져 있기 때문이다. 구조를 정리하면 다음과 같다.HttpServletRequest ↓StandardServletMultipartResolver ↓StandardMultipartHttpServletRequest (MultipartHttpServletRequest 구현체) ↓StandardMultipartFile (private static class)Standar..

독서 스터디에서 결국 멧돼지책이 선정되어 읽게 됐다. 어려울 거란 소문과 크게 다르지 않았고, 스터디를 하는 사람 중에서 나만 그렇게 느낀게 아니었다. 챕터별로 굉장히 많은 내용을 꾹꾹 눌러담았고, 제기한 문제를 한가지 분야의 해결책만 제시한게 아니다보니 잘 이해하지 못하는 내용이 매번 등장하다보니 GPT와 대화하면서 읽었다. 그러다보니 한 챕터 진도를 나가는데 굉장히 많은 시간을 소요해서 매주 꽤 힘들었다. 내용을 정리하기 앞서 이 책을 읽을 대상을 정리해보면 다음과 같다. 1. 충분히 실무를 경험 해본 사람들이이어야하며, 사용자가 증가하는 B2C 프로젝트 개발자2. 단순 데이터 관리에 대한 지식뿐만 아니라 데이터 관리, 인프라, 서버 어플리케이션 등에 다양한 경험이 있는 사람3. 600페이지 수준은 ..
- Total
- Today
- Yesterday
- AWS EC2
- OpenAI
- serverless
- 티스토리챌린지
- ChatGPT
- Redis
- Spring
- lambda
- AOP
- JWT
- EKS
- 스프링부트
- elasticsearch
- CloudFront
- cache
- S3
- ecs
- terraform
- java
- AWS
- GIT
- 후쿠오카
- 람다
- docker
- 인프런
- 오블완
- Kotlin
- CORS
- springboot
- Log
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |