-
Notifications
You must be signed in to change notification settings - Fork 4
모바일 호환성을 위한 노력들
rlalswla edited this page Feb 24, 2025
·
2 revisions
- 모바일 화면 크기에 맞춤
- 사용자의 확대/축소 제한
- 노치 디자인 대응
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"
/>
<ImageContainer
onTouchStart={handleTouchStart}
onTouchMove={handleTouchMove}
onTouchEnd={handleTouchEnd}
onMouseDown={handleTouchStart}
onMouseMove={handleTouchMove}
onMouseUp={handleTouchEnd}
/>
- 모바일 터치 스와이프 지원
- 데스크톱 마우스 이벤트도 함께 처리
useEffect(() => {
const handleResize = () => {
if (!window.visualViewport) return;
const isKeyboard = window.visualViewport.offsetTop > 0;
setIsKeyboardVisible(isKeyboard);
};
window.visualViewport?.addEventListener('resize', handleResize);
});
모바일 키보드 표시 여부 감지 키보드에 의한 화면 레이아웃 변경 대응
키보드가 표시되기 전에는 채팅 input field 의 margin bottom 을 모바일 독바 height 만큼 준다.
padding-bottom: env(safe-area-inset-bottom);
키보드가 표시된 후에는 이를 제거
padding-bottom: ${(props) =>
props.isKeyboardVisible ? '15px' : 'calc(env(safe-area-inset-bottom) + 15px)'};
`;
const PreviewImage = styled.img`
max-width: 100%;
max-height: 100%;
object-fit: contain;
user-select: none;
-webkit-user-drag: none;
pointer-events: none;
`;
- 화면 크기에 맞춘 이미지 리사이징
- 모바일에서의 이미지 드래그 방지
- 모바일 홈 스크린 앱 설치 지원
- iOS 상태바 스타일 최적화
- ios simulator / vite --host 를 통한 실제 모바일 환경에서 localhost 접근
- 탭바 슬라이딩 애니메이션으로 전환하기
- Presigned url 을 통한 이미지 업로드
- 입력 크기에 맞춰 늘어나는 textarea만들기
- flex:1를 사용할 때 부모 컴포넌트의 사이즈를 넘어가는 현상
- 위아래로 채팅 무한 스크롤 구현하기
- 공통 컴포넌트 문서화를 통해 UI 재사용성 향상
- 전역적 소켓 관리
- 쿼리 캐싱을 이용한 서버 상태 관리
- 전역 에러 처리
- 모바일 호환성을 위한 노력
- 기술 선정 이유
- 아키텍처
- 답해요 채팅 저장 방식 고민(데이터베이스 고민)
- 말해요 채팅 저장 방식 고민
- MongoDB에서 답해요와 말해요 채팅 데이터 관리 및 샤드 설계
- 웹소켓 연결 방식 고민
- MongoDB 인덱스 유무에 따른 쓰기, 조회 성능 테스트
- 중복 웹소켓 세션 처리 전략 및 구현 결정
- @Async를 활용한 이메일 전송 비동기 처리 및응답 시간 개선
- Docker 환경에서 ClassPathResource.getFile()이 실패하는 문제 해결
- Redis sync vs Async
- MongoClient vs Spring Data MongoDb
- 채팅방 웹소켓 이벤트 정리
- 무한 스크롤 정리
- 중복 로그인 방지
- 이미지 업로드 분리 및 비동기화
- 채팅 전송 도중 채팅방이 삭제된다면?
- 금칙어 필터링
- 답해요 성능테스트
- 새로 개설된 말해요 채팅방 실시간으로 알리기