사진 공유 같은게 가능한가요?
133
작성한 질문수 12
강의 잘보고 있습니다! 감사합니다 이번에 채팅 구현 전에 한가지 궁금한것 이 있다면 유저가 직접 찍어 올린 사진을 실시간적으로 다른 유저들에게 보여주게 할려면 웹서버로 접근해서 가져오는건가요? 예를들면 카톡에서 자기 휴대폰에 저장된 이미지를 어떤 방식으로 다른 대상에게 보여주는지 궁금합니다.
답변 1
3
안녕하세요,
사진이라고 딱히 특별한 것은 없고, 특정 포맷을 가진 파일이니
결국 질문주신 부분은 <파일을 어떤 방식으로 주고 받을까?>로 요약할 수 있습니다.
간단히 말하면 서버에도 두 종류가 있는데
이번 단원에서 배우는 연결 방식의 서버 (Stateful)와 추후에 나올 웹 서버(Stateless)가 있습니다.
연결 방식의 서버는 실시간으로 쌍방향 통신이 가능하기 때문에,
특정 유저가 보낸 파일을 그냥 다른 유저한테 전달만 하면 끝납니다.
심지어 그냥 파일 사이즈와 파일 내용을 binary로 밀어넣어서 송수신하면 됩니다.
그러면 받은 쪽에서는 binary 내용을 받아서 새로운 파일을 만들고, 내용을 복붙하면 되겠죠.
리니지1의 혈맹 마크가 이런 경우라고 생각할 수 있습니다.
연결 방식의 서버는, 서버 쪽에서 필요할 때 클라한테 정보를 보낼 수 있다는 장점은 있지만,
별다른 정보 송수신이 필요없더라도 항상 연결을 유지시켜줘야 하는 번거로움 + 성능 이슈가 있습니다.
웹 서버는 양방향 연결된 것이 아니라 클라가 질의를 하면 서버가 응답만 할 수 있다고 보시면 됩니다.
따라서 어떤 유저가 실시간으로 보낸 파일를 바로 다른 유저에게 전달하긴 힘들죠.
이런 경우 폴링 방식으로 [혹시 나한테 온 새로운 정보가 있을까?]를
주기적으로 웹서버에 질의를 하는 방식으로 처리를 하게 됩니다.
통상적인 개념으로 생각해보면 카톡은 웹 기반으로 만들었을 것 같은데
카카오에서 근무한 적이 없으니 100% 정확하게는 말씀드릴 수는 없겠네요.
2020/10/07 업데이트:
물론 게임이 아닌 모바일 앱이라면 푸시 서버를 이용해서 새 카톡 메시지 여부를 먼저 통보 받는게 더 현명하긴 하겠네요!
그리고 사진을 메모리에 들고 있기엔 너무나도 개수가 많으니,
AWS S3와 같이 별도의 서버에서 들고 있지 않을까? 라는 예상을 해봅니다 :)
감사합니다.
TLS 질문드립니다.
0
43
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
46
2
Unity Span
0
76
2
XML, Dll 차이점
0
105
2
Session 질문입니다
0
79
1
Write Read 커서 키워드
0
76
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
70
2
네트워크 Send 전담 스레드 배치
0
98
2
UnhandledException 으로 서버 터지는 경우
0
85
2
컨텐츠 단, 엔진 단
0
105
1
질문 있습니다
0
77
2
C# 게임서버 3D MMORPG
0
145
2
유니티6 버전
0
97
2
receive하는 부분과 send하는 부분의 차이
0
134
2
커서의 위치의 중요성
0
103
2
C++ 전혀 모르는데 C# 서버
0
169
2
강의에 질문이 있습니다
0
86
2
멀티스레드 이해도 질문
0
95
1
500 vs 500
0
130
3
OnAcceptHandler 액션 함수
0
61
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
191
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
82
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
106
1
스핀락 질문.
0
110
2





