ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jira 적용, 스토리지 정책 결정, WebSocket 문제 해결
    배움/작업기 2025. 6. 5. 20:44
    반응형

     

    작업을 하다 보면 추가해야할 기능, 버그 수정, 기능 변화 등 해야 할 것들이 끝도 없다..

    그래서 비록 협업툴이지만 나 혼자서도 쓸 수 있겠다 싶어 Jira를 써보기 시작했다.

     

    또한 생성 완료된 이미지를 웹상에 노출시키기 위해서 어떤 방식을 써야할지 고민해보았는데,

    먼저 연산 서버에서 생성한 이미지나 비디오를 특정 스토리지에 담은 후 URL로 노출시키고 그 URL을 통해 이미지나 비디오를 가져오는 방식을 택했다.

    그럼 스토리지는 어떤 것을 사용할 것이냐..

    1. 로컬 스토리지

    2. 클라우드 스토리지

    둘 중 뭐가 나을까 고민하다가 결국 확장성 등을 고려해 클라우드 스토리지로 택했다.

    스토리지 중에선 구글 클라우드 스토리지를 사용할 것 같다.

    AWS도 괜찮긴 하지만 요즘 구글이 클라우드 쪽으로 엄청 몰아붙이는 느낌이었달까.

    향후엔 구글의 클라우드 점유율이 AWS 이상이 될지도 모르겠단 생각이 들어서..

     

    아무튼. 그리하여 내 서비스의 데이터 흐름은 다음과 같이 되겠다.

     

    유저 - 프론트 - - 연산서버 - - Cloud - - 프론트 - 유저.

     

    유저가 프론트를 통해 요청을 보내면 백엔드가 요청을 받아 연산서버로 연산 요청을 보낸다.

    연산서버는 이미지 등을 생성한 뒤 산출물을 백엔드로 보낸다.

    백엔드에 임시 저장된 산출물은 클라우드로 업로드된 후 백엔드에서는 삭제된다.

    산출물은 클라우드에 저장되고, 백엔드에서는 해당 산출물의 URL을 프론트로 보낸다.

    프론트에서는 URL을 통해 클라우드로부터 이미지나 비디오 등을 노출시킨다.

     

    그런데 이런 과정을 위해서는 아무래도 먼저 Progress bar를 먼저 만들어야 할 것 같다..

    Progress bar를 위해서는 WebSocket을 적용할 필요가 있는데,

    연산서버에서는 이미 시스템 상태창과 Progress 정보를 내보내고 있다.

    그렇다면 내가 할 일은..

    1. 연산서버로부터 보내는 웹소켓 메시지를 백엔드에서 받는 것

    2. 백엔드에서 프론트로 웹소켓 메시지를 보내는 로직을 구현하는것

    3. 프론트에서 웹소켓 메시지를 받는 것

    4. 받은 메시지를 정제하여 웹상에 적절한 UI와 함께 노출시키는 것

     

    일단 오늘까지는 시스템 상태창은 백엔드상에 제대로 들어오고 있는 것을 확인했는데,

    이상하게도 Progress 정보는 들어오고 있지 않다.

    꽤 한참을 씨름한 결과..

    Client Id가 ws 도메인에 적절히 반영되어 있지 않다는 것을 발견했다.. ^^;

     

    시스템 상태는 Clinet Id와 무관하게 모든 Client 들에게 항시 보내는 데이터인 반면에

    Progress 정보는 특정 Client가 이미지 생성 요청을 보냈을 때 생성이 진행된 정도를 나타내는 것이기 때문에

    Client Id가 필수 정보였기 때문이다.

     

    아무튼 백엔드에서 데이터를 잘 받는것까지는 무사히 확인했다.

     

    이제는 클라우드를 구현하기 이전에 Progress bar를 구현하고,

    웹소켓을 구현하는 김에 상태창까지도 구현을 할 예정이다.

     

    반응형

    댓글

Designed by Tistory.