NEW
영화 추천 여정으로 이해하는 Qdrant 벡터 데이터베이스
요즘 RAG를 프로젝트에 도입하면서 Qdrant를 Vector DB로 도입하여 구축을 진행하고 있습니다.Qdrant Vector DB에서 사용하는 용어를 데이터의 생성부터 CRUD 측면으로 이해해 보는 것이 좋을 것 같습니다.당신은 영화 추천 시스템을 구축하기 위해 Qdrant라는 벡터 데이터베이스를 만나게 되었습니다.이 데이터베이스를 이용해 데이터를 저장하고 검색하면서 CRUD 개념을 자연스럽게 이해하게 될 것입니다.이번 글에서는 Qdrant의 주요 기능을 실제 API 요청 예시와 함께 알아보겠습니다.이를 통해 사용 예시와 함께 Qdrant의 강력한 기능을 직접 체감해 보세요.영화 데이터의 저장소: Collection과 PointQdrant에서 데이터를 저장하려면 먼저 이를 담을 공간을 만들어야 합니다.이를 Collection이라고 하며, 각 데이터는 Point라는 개별 단위로 저장됩니다.먼저 모든 영화 데이터를 담을 Collection을 생성합니다. Collection은 같은 유형의 데이터를 그룹화하기 위해 필요합니다.다음과 같은 REST API 요청을 통해 Collection을 생성할 수 있습니다.위 API 요청은 "movies"라는 이름의 Collection을 생성하며, 각 벡터의 크기는 768로 설정하고, 벡터 간의 유사도는 Cosine 거리를 기준으로 계산하도록 합니다.데이터를 다루는 방법: Create, Update, Delete, Set/Delete Payload이제 데이터를 Collection에 추가하고 수정하는 과정을 살펴보겠습니다.여기는 데이터를 추가(Create), 수정(Update), 삭제(Delete)하고 부가 정보를 다루는 Set/Delete Payload의 예시를 포함하고 있습니다.영화를 Qdrant에 추가하거나 기존 영화를 업데이트하려면 Upsert API를 사용합니다.Upsert는 새로운 Point를 추가하거나, 이미 있는 Point를 업데이트하는 역할을 합니다.이 API 요청은 ID가 1인 Point를 생성하며, Vector를 포함한 영화 "Inception"의 정보를 Payload에 함께 저장합니다.Payload에는 영화의 제목, 장르, 개봉 연도 등의 정보가 포함됩니다.기존 영화에 새로운 부가 정보를 추가하거나 수정하기 위해 set_payload를 사용합니다.이 API 요청은 ID가 1인 Point, 즉 "Inception"의 Payload에 rating과 actors 정보를 추가합니다.이 작업을 통해 기존 데이터를 갱신하거나 새로운 부가 정보를 쉽게 추가할 수 있습니다.잘못된 정보를 삭제해야 할 경우 delete_payload를 사용합니다.이 요청은 "Inception"의 rating 정보를 삭제합니다. 이처럼 필요 없는 정보를 깔끔하게 제거함으로써 데이터를 정돈할 수 있습니다.영화 정보를 더 이상 유지할 필요가 없을 때는 Delete를 통해 Point 자체를 삭제합니다.이 요청은 ID가 1인 "Inception" 영화를 Qdrant에서 삭제합니다.이제 Qdrant의 강력한 검색 기능을 활용하여 유
12/23/2024
영화 추천 여정으로 이해하는 Qdrant 벡터 데이터베이스
NEW
요즘 RAG를 프로젝트에 도입하면서 Qdrant를 Vector DB로 도입하여 구축을 진행하고 있습니다.Qdrant Vector DB에서 사용하는 용어를 데이터의 생성부터 CRUD 측면으로 이해해 보는 것이 좋을 것 같습니다.당신은 영화 추천 시스템을 구축하기 위해 Qdrant라는 벡터 데이터베이스를 만나게 되었습니다.이 데이터베이스를 이용해 데이터를 저장하고 검색하면서 CRUD 개념을 자연스럽게 이해하게 될 것입니다.이번 글에서는 Qdrant의 주요 기능을 실제 API 요청 예시와 함께 알아보겠습니다.이를 통해 사용 예시와 함께 Qdrant의 강력한 기능을 직접 체감해 보세요.영화 데이터의 저장소: Collection과 PointQdrant에서 데이터를 저장하려면 먼저 이를 담을 공간을 만들어야 합니다.이를 Collection이라고 하며, 각 데이터는 Point라는 개별 단위로 저장됩니다.먼저 모든 영화 데이터를 담을 Collection을 생성합니다. Collection은 같은 유형의 데이터를 그룹화하기 위해 필요합니다.다음과 같은 REST API 요청을 통해 Collection을 생성할 수 있습니다.위 API 요청은 "movies"라는 이름의 Collection을 생성하며, 각 벡터의 크기는 768로 설정하고, 벡터 간의 유사도는 Cosine 거리를 기준으로 계산하도록 합니다.데이터를 다루는 방법: Create, Update, Delete, Set/Delete Payload이제 데이터를 Collection에 추가하고 수정하는 과정을 살펴보겠습니다.여기는 데이터를 추가(Create), 수정(Update), 삭제(Delete)하고 부가 정보를 다루는 Set/Delete Payload의 예시를 포함하고 있습니다.영화를 Qdrant에 추가하거나 기존 영화를 업데이트하려면 Upsert API를 사용합니다.Upsert는 새로운 Point를 추가하거나, 이미 있는 Point를 업데이트하는 역할을 합니다.이 API 요청은 ID가 1인 Point를 생성하며, Vector를 포함한 영화 "Inception"의 정보를 Payload에 함께 저장합니다.Payload에는 영화의 제목, 장르, 개봉 연도 등의 정보가 포함됩니다.기존 영화에 새로운 부가 정보를 추가하거나 수정하기 위해 set_payload를 사용합니다.이 API 요청은 ID가 1인 Point, 즉 "Inception"의 Payload에 rating과 actors 정보를 추가합니다.이 작업을 통해 기존 데이터를 갱신하거나 새로운 부가 정보를 쉽게 추가할 수 있습니다.잘못된 정보를 삭제해야 할 경우 delete_payload를 사용합니다.이 요청은 "Inception"의 rating 정보를 삭제합니다. 이처럼 필요 없는 정보를 깔끔하게 제거함으로써 데이터를 정돈할 수 있습니다.영화 정보를 더 이상 유지할 필요가 없을 때는 Delete를 통해 Point 자체를 삭제합니다.이 요청은 ID가 1인 "Inception" 영화를 Qdrant에서 삭제합니다.이제 Qdrant의 강력한 검색 기능을 활용하여 유
2024.12.23
좋아요
별로에요
시니어 사용자가 어려워하는 UX 5가지
여러분은 혹시 부모님 또는 주변의 어르신들께서 핸드폰으로 금융 거래를 어떻게 하고 계시는지 보신 적 있나요?토스 유저 리서치팀에서 토스 앱의 사용성 테스트(UT)를 진행하다 보면 다양한 연령대의 사용자들을 관찰하게 되는데요. 그중에서도 50대 이상의 ‘시니어’ 사용자*에게서 특유의 사용성 문제가 발견된다는 점을 알게 되었어요.현재 토스에는 약 730만 명 이상의 시니어 사용자들이 있어요. 이들은 디지털 네이티브, 즉 디지털 환경 속에서 성장한 20~40대 사용자와는 달리, 앱 서비스 화면의 관성적인 디자인 요소와 표현 방식에 익숙하지 않은 경우가 많아요. 따라서 다른 연령대의 사용자들이 보편적으로 쉽게 인지하고 이해하는 요소들도 시니어에게는 서비스 이용 과정에 큰 허들이 되기도 하죠.토스에서는 많은 UT를 거쳐 제품을 만들지만, 빠른 속도로 더 많이 만나볼 수 있는 20~40대의 사용자를 중심으로 사용성을 검증하는 일이 비교적 많았어요. 그러다 보니 이러한 시니어 사용자들의 이해 방식과 행동 패턴을 조금 더 명확하게 이해하기 위해서는 많은 노력이 필요했어요.하지만 토스가 모두에게 평등한 금융 경험을 제공하기 위해서는 시니어 사용자들도 쉽게 사용할 수 있도록 서비스를 만들어야 해요. 이 프로젝트는 이런 배경에서, 시니어 사용자들의 공통된 사용성 패턴을 찾아 UX 설계의 가이드라인을 만들기 위해 시작되었어요.*시니어 사용자: 통상적으로 1980~2000년대생을 태어나면서부터 디지털 환경에 노출된 세대라고 해요. 토스는 1980년대 이전의 세대, 즉 50대 이상을 ‘시니어’라는 사용자 그룹으로 부르고 있어요.시니어 사용자는 송금, 신용, 보험, 마이데이터 등 토스의 주요 금융 서비스를 20~40대 사용자와는 다른 방식으로 이해하고 이용하는 경우가 있을 것이라고 생각했어요. 보통 ‘금융’과 관련된 서비스는 다른 도메인보다 특히 더 복잡한 용어와 세부 정보를 많이 담고 있는데요. 이러한 금융 서비스에 익숙하지 않으면 심리적인 허들로 인해 막연하게 어렵다고 느낄 수 있기 때문에 시니어 사용자의 관점에서 검증이 필요하다고 느꼈어요. 그리고 이렇게 화면에서 비롯된 오해로 인해, 제품 전반을 의도한 것과는 다르게 이해하여 잘못 이용하거나 이탈하는 문제로 이어질 것이라고 예상했죠.이 가설을 검증하기 위해서는 시니어의 행동과 표정을 함께 관찰하면 더 효과적일 것이라는 생각에, 시니어들을 직접 대면하는 방식으로 UT를 진행했어요. UT에서 시니어 사용자들에게 요청한 것은 사실 간단했어요. 각각의 서비스를 평소처럼 자연스럽게 이용하시되, 그때그때 드는 생각이나 궁금증을 소리 내 표현해달라고 부탁드렸죠. 그리고 오인지가 생기는 부분에 대한 맥락과 시니어가 가진 멘탈 모델을 충분히 파악할 수 있도록 꼬리 질문을 이어 나가는 방식으로 UT를 진행했어요.시니어 사용자들을 대상으로 진행된 UT의 결과가 어땠을 것 같나요?사용성에서 정말 많은 어려움이 발견되었어요. 이렇게 다양한 제품의 사용성을 검증하면서 공통적으로 발견된 주요 시니어 사용성 문제와 그 맥락을 분석했는데
12/22/2024
시니어 사용자가 어려워하는 UX 5가지
여러분은 혹시 부모님 또는 주변의 어르신들께서 핸드폰으로 금융 거래를 어떻게 하고 계시는지 보신 적 있나요?토스 유저 리서치팀에서 토스 앱의 사용성 테스트(UT)를 진행하다 보면 다양한 연령대의 사용자들을 관찰하게 되는데요. 그중에서도 50대 이상의 ‘시니어’ 사용자*에게서 특유의 사용성 문제가 발견된다는 점을 알게 되었어요.현재 토스에는 약 730만 명 이상의 시니어 사용자들이 있어요. 이들은 디지털 네이티브, 즉 디지털 환경 속에서 성장한 20~40대 사용자와는 달리, 앱 서비스 화면의 관성적인 디자인 요소와 표현 방식에 익숙하지 않은 경우가 많아요. 따라서 다른 연령대의 사용자들이 보편적으로 쉽게 인지하고 이해하는 요소들도 시니어에게는 서비스 이용 과정에 큰 허들이 되기도 하죠.토스에서는 많은 UT를 거쳐 제품을 만들지만, 빠른 속도로 더 많이 만나볼 수 있는 20~40대의 사용자를 중심으로 사용성을 검증하는 일이 비교적 많았어요. 그러다 보니 이러한 시니어 사용자들의 이해 방식과 행동 패턴을 조금 더 명확하게 이해하기 위해서는 많은 노력이 필요했어요.하지만 토스가 모두에게 평등한 금융 경험을 제공하기 위해서는 시니어 사용자들도 쉽게 사용할 수 있도록 서비스를 만들어야 해요. 이 프로젝트는 이런 배경에서, 시니어 사용자들의 공통된 사용성 패턴을 찾아 UX 설계의 가이드라인을 만들기 위해 시작되었어요.*시니어 사용자: 통상적으로 1980~2000년대생을 태어나면서부터 디지털 환경에 노출된 세대라고 해요. 토스는 1980년대 이전의 세대, 즉 50대 이상을 ‘시니어’라는 사용자 그룹으로 부르고 있어요.시니어 사용자는 송금, 신용, 보험, 마이데이터 등 토스의 주요 금융 서비스를 20~40대 사용자와는 다른 방식으로 이해하고 이용하는 경우가 있을 것이라고 생각했어요. 보통 ‘금융’과 관련된 서비스는 다른 도메인보다 특히 더 복잡한 용어와 세부 정보를 많이 담고 있는데요. 이러한 금융 서비스에 익숙하지 않으면 심리적인 허들로 인해 막연하게 어렵다고 느낄 수 있기 때문에 시니어 사용자의 관점에서 검증이 필요하다고 느꼈어요. 그리고 이렇게 화면에서 비롯된 오해로 인해, 제품 전반을 의도한 것과는 다르게 이해하여 잘못 이용하거나 이탈하는 문제로 이어질 것이라고 예상했죠.이 가설을 검증하기 위해서는 시니어의 행동과 표정을 함께 관찰하면 더 효과적일 것이라는 생각에, 시니어들을 직접 대면하는 방식으로 UT를 진행했어요. UT에서 시니어 사용자들에게 요청한 것은 사실 간단했어요. 각각의 서비스를 평소처럼 자연스럽게 이용하시되, 그때그때 드는 생각이나 궁금증을 소리 내 표현해달라고 부탁드렸죠. 그리고 오인지가 생기는 부분에 대한 맥락과 시니어가 가진 멘탈 모델을 충분히 파악할 수 있도록 꼬리 질문을 이어 나가는 방식으로 UT를 진행했어요.시니어 사용자들을 대상으로 진행된 UT의 결과가 어땠을 것 같나요?사용성에서 정말 많은 어려움이 발견되었어요. 이렇게 다양한 제품의 사용성을 검증하면서 공통적으로 발견된 주요 시니어 사용성 문제와 그 맥락을 분석했는데
2024.12.22
좋아요
별로에요
2024 AWS re:Invent 후기
시작하며안녕하세요! 중고나라 DevOps 엔지니어 김지헌, ML 엔지니어 김준재입니다.AWS re:Invent는 세계 최대의 클라우드 컴퓨팅 컨퍼런스 이 행사는 AWS와 관련된 다양한 최신 기술, 서비스, 업데이트를 소개하고, 클라우드 산업의 트렌드와 혁신 사례를 공유하는 자리로 2024 AWS re:Invent에 참가하게 되는 좋은 기회를 얻어, 이 경험을 공유하고자 합니다.이번 글에서는 re:Invent를 더 알차게 즐기고자 하는 분들, 특히 다음 번에 참가하실 분들께 유용한 팁을 전해드리겠습니다! 세상은 넓고, 라스베가스는 더 넓다! AWS re:Invent는 라스베가스에 위치한 무려 6개 호텔에서 다양한 세션이 진행됩니다.호텔 간 거리가 최대 1시간 정도 걸릴 수 있기 때문에, 하루에 2만 보 이상 걷는 것은 기본입니다.즉, 체력 관리와 동선 계획이 성공적인 re:Invent의 핵심이라 할 수 있습니다!호텔 간 이동: 무료 트램과 셔틀 버스 활용하기!AWS에서는 참가자들의 이동을 돕기 위해 호텔 간 무료 트램과 무료 셔틀 버스를 제공합니다.하지만 여기서 중요한 점!셔틀 버스: 평균 30분 정도 시간이 소요될 수 있습니다. (모든 호텔 이동 가능)무료 트램: 트램간 대기 시간이 4~8분이 필요하며 이동 시간도 있어 계획이 엉킬 수 있습니다.(트램 정보)(특정 호텔만 이동 가능 확인 필수!) TIP: 세션 신청 시 이동 시간을 꼭 고려하세요!세션이 끝난 후 다음 세션 장소까지 이동 시간이 얼마나 걸릴지 사전에 계산하는 것이 중요합니다.시간이 빠듯하다면 같은 호텔 안에서 열리는 세션을 연달아 신청하거나, 일부러 쉬는 시간을 넣는 것도 좋은 전략입니다.세션 예약? Full Book? 용사여, 포기하지 마라! 용기를 내라!AWS re:Invent에 참가하기 전에 가장 먼저 해야 할 일은 어떤 세션이 열리는지 확인하고, 미리 예약하는 것입니다.하지만 매년 수많은 참가자들이 몰리면서, 원하는 세션 예약이 순식간에 마감되곤 합니다. 이미 Full Book인데 어떡하지? 걱정하지 마세요! 여기 몇 가지 꿀팁을 알려드릴게요.Full Book? No Show를 노려보세요!AWS re:Invent는 정말 넓은 지역에 걸쳐 진행됩니다.이동 시간이 길어지거나, 예상치 못한 일정 변경으로 인해 세션에 참석하지 못하는 No Show 참가자가 생각보다 많습니다. TIP: 예약이 다 찬 세션이라도 현장에서 대기하면 들어갈 수 있는 경우가 많습니다.조금 일찍 가서 줄을 서보세요. 대부분 자리가 생겨, 원하는 세션을 들을 수 있는 기회를 얻을 수 있습니다!(인기 있는 AI 세션은 No Show가 거의 없고 줄도 너무 길어 사전 예약하는걸 추천합니다!)Content Hub: 세션을 놓칠거 같아도 걱정하지 마세요!AWS re:Invent에서는 Content Hub라는 특별한 공간을 제공합니다.이곳은 현장에서 세션 간 이동이 어려운 참가자들을 위해 마련된 원격 시청 공간으로,실시간 스트리밍으로 세션을 시청하거나, 다양한 자료를 확인할 수 있는 장소로 다음 동선에서 이동이 어려운 경우 적극 활용하면 좋습니다AWS Events 앱 활용하기!AWS는 참가자들의 편의를 위해 AWS Events라는 전용 앱을 제공합니다.이 앱은 사전등록 페이지보다 훨씬 편리하게 세션 관리를 할 수 있도록 도와줍니다.세션 신청 및 관리: 실시간으로 세션 신청 가능, 겹치는 일정도 쉽게 확인 가능!알림 기능: 예약한 세션 시작 전에 알림을 받아 놓치는 일을 방지할 수 있어요.즐겨찾기 기능: 관심 있는 세션을 미리 저장해두고, 나중에 예약 여부를 확인할 수 있습니다.AWS Events 앱을 미리 설치하고 사용하는 것이 re:Invent를 효과적으로 즐길 수 있는 핵심 중 하나입니다!기념품, 인사이트를 얻을 수 있는 EXPOAWS re:Invent의 하이라이트 중 하나인 Expo는 다양한 AWS 파트너사들과 기술 솔루션을 한자리에서 만날 수 있는 공간입니다.여기서는 새로운 기술을 체험하고, 네트워킹을 하며, 기념품을 얻을 기회도 생깁니다.효율적으로 Expo를 즐기기 위한 몇 가지 팁을 알려드립니다!기념품을 노린다면 월요일과 화요일을 공략하세요!Expo는 주로 월요일과 화요일에 가장 활발합니다.이 기간 동안 많은 부스에서 기념품(티셔츠, 텀블러, 스티커 등)을 배포하는데,수량이 한정되어 있기 때문에 이른 시간에 방문하는 것이 중요합니다.특히, 후반부로 갈수록 인기 있는 아이템들은 빠르게 소진되니 참고하세요.Expo를 효율적으로 즐기는 방법베네시안 호텔 중심으로 세션 예약하기Expo는 베네시안 호텔에서 열리므로, 이 호텔에서 진행되는 세션 위주로 일정을 짜면 비는 시간에 짬짬이 Expo를 둘러볼 수 있습니다.이동 시간을 줄이고, 세션과 Expo 모두를 알차게 즐길 수 있는 전략입니다.관심 있는 부스를 사전에 정리하기AWS Events 앱을 통해 Expo에 참가하는 주요 파트너사와 부스 위치를 확인할 수 있습니다.방문할 부스를 미리 정리해 두면 시간 절약과 함께 더 많은 정보를 얻을 수 있습니다.참가사 부스 이벤트 활용하기많은 부스에서는 자체적으로 경품 이벤트나 데모 세션을 진행합니다.관심 있는 솔루션이 있다면 데모에 참여하거나, 현장에서 제공되는 추가 자료를 활용하세요.네트워킹도 하고 밥도 먹고 완전 럭키비키잖아?AWS re:Invent에는 정말 다양한 파트너사들이 참가합니다.만약 회사에서 여러 SaaS를 사용하고 있다면, 담당자에게 미리 연락해서 re:Invent 참가 여부를 확인해보세요!저는 이번에 모니터링 솔루션과 데이터 분석 솔루션 업체에서 초대를 받아, 네트워킹 기회를 얻고, 맛있는 저녁 식사까지 제공받았습니다.덕분에 점심은 AWS에서 제공하는 식사를, 저녁은 파트너사 덕분에 해결하며여행 비용도 절감하고, 네트워킹도 하고, 정말 일석이조였죠! TIP: 현재 사용하는 솔루션의 파트너사 또는 전혀 사용해 본 적 없지만 관심 있는 파트너사를 찾아보고 컨택하여 네트워킹 기회를 놓치지 마세요!AWS 자격증 라운지: 인증받은 사람만의 혜택!AWS re:Invent에서는 AWS 공인 자격증 소지자를 위한 특별한 공간인 AWS Certific
12/20/2024
2024 AWS re:Invent 후기
시작하며안녕하세요! 중고나라 DevOps 엔지니어 김지헌, ML 엔지니어 김준재입니다.AWS re:Invent는 세계 최대의 클라우드 컴퓨팅 컨퍼런스 이 행사는 AWS와 관련된 다양한 최신 기술, 서비스, 업데이트를 소개하고, 클라우드 산업의 트렌드와 혁신 사례를 공유하는 자리로 2024 AWS re:Invent에 참가하게 되는 좋은 기회를 얻어, 이 경험을 공유하고자 합니다.이번 글에서는 re:Invent를 더 알차게 즐기고자 하는 분들, 특히 다음 번에 참가하실 분들께 유용한 팁을 전해드리겠습니다! 세상은 넓고, 라스베가스는 더 넓다! AWS re:Invent는 라스베가스에 위치한 무려 6개 호텔에서 다양한 세션이 진행됩니다.호텔 간 거리가 최대 1시간 정도 걸릴 수 있기 때문에, 하루에 2만 보 이상 걷는 것은 기본입니다.즉, 체력 관리와 동선 계획이 성공적인 re:Invent의 핵심이라 할 수 있습니다!호텔 간 이동: 무료 트램과 셔틀 버스 활용하기!AWS에서는 참가자들의 이동을 돕기 위해 호텔 간 무료 트램과 무료 셔틀 버스를 제공합니다.하지만 여기서 중요한 점!셔틀 버스: 평균 30분 정도 시간이 소요될 수 있습니다. (모든 호텔 이동 가능)무료 트램: 트램간 대기 시간이 4~8분이 필요하며 이동 시간도 있어 계획이 엉킬 수 있습니다.(트램 정보)(특정 호텔만 이동 가능 확인 필수!) TIP: 세션 신청 시 이동 시간을 꼭 고려하세요!세션이 끝난 후 다음 세션 장소까지 이동 시간이 얼마나 걸릴지 사전에 계산하는 것이 중요합니다.시간이 빠듯하다면 같은 호텔 안에서 열리는 세션을 연달아 신청하거나, 일부러 쉬는 시간을 넣는 것도 좋은 전략입니다.세션 예약? Full Book? 용사여, 포기하지 마라! 용기를 내라!AWS re:Invent에 참가하기 전에 가장 먼저 해야 할 일은 어떤 세션이 열리는지 확인하고, 미리 예약하는 것입니다.하지만 매년 수많은 참가자들이 몰리면서, 원하는 세션 예약이 순식간에 마감되곤 합니다. 이미 Full Book인데 어떡하지? 걱정하지 마세요! 여기 몇 가지 꿀팁을 알려드릴게요.Full Book? No Show를 노려보세요!AWS re:Invent는 정말 넓은 지역에 걸쳐 진행됩니다.이동 시간이 길어지거나, 예상치 못한 일정 변경으로 인해 세션에 참석하지 못하는 No Show 참가자가 생각보다 많습니다. TIP: 예약이 다 찬 세션이라도 현장에서 대기하면 들어갈 수 있는 경우가 많습니다.조금 일찍 가서 줄을 서보세요. 대부분 자리가 생겨, 원하는 세션을 들을 수 있는 기회를 얻을 수 있습니다!(인기 있는 AI 세션은 No Show가 거의 없고 줄도 너무 길어 사전 예약하는걸 추천합니다!)Content Hub: 세션을 놓칠거 같아도 걱정하지 마세요!AWS re:Invent에서는 Content Hub라는 특별한 공간을 제공합니다.이곳은 현장에서 세션 간 이동이 어려운 참가자들을 위해 마련된 원격 시청 공간으로,실시간 스트리밍으로 세션을 시청하거나, 다양한 자료를 확인할 수 있는 장소로 다음 동선에서 이동이 어려운 경우 적극 활용하면 좋습니다AWS Events 앱 활용하기!AWS는 참가자들의 편의를 위해 AWS Events라는 전용 앱을 제공합니다.이 앱은 사전등록 페이지보다 훨씬 편리하게 세션 관리를 할 수 있도록 도와줍니다.세션 신청 및 관리: 실시간으로 세션 신청 가능, 겹치는 일정도 쉽게 확인 가능!알림 기능: 예약한 세션 시작 전에 알림을 받아 놓치는 일을 방지할 수 있어요.즐겨찾기 기능: 관심 있는 세션을 미리 저장해두고, 나중에 예약 여부를 확인할 수 있습니다.AWS Events 앱을 미리 설치하고 사용하는 것이 re:Invent를 효과적으로 즐길 수 있는 핵심 중 하나입니다!기념품, 인사이트를 얻을 수 있는 EXPOAWS re:Invent의 하이라이트 중 하나인 Expo는 다양한 AWS 파트너사들과 기술 솔루션을 한자리에서 만날 수 있는 공간입니다.여기서는 새로운 기술을 체험하고, 네트워킹을 하며, 기념품을 얻을 기회도 생깁니다.효율적으로 Expo를 즐기기 위한 몇 가지 팁을 알려드립니다!기념품을 노린다면 월요일과 화요일을 공략하세요!Expo는 주로 월요일과 화요일에 가장 활발합니다.이 기간 동안 많은 부스에서 기념품(티셔츠, 텀블러, 스티커 등)을 배포하는데,수량이 한정되어 있기 때문에 이른 시간에 방문하는 것이 중요합니다.특히, 후반부로 갈수록 인기 있는 아이템들은 빠르게 소진되니 참고하세요.Expo를 효율적으로 즐기는 방법베네시안 호텔 중심으로 세션 예약하기Expo는 베네시안 호텔에서 열리므로, 이 호텔에서 진행되는 세션 위주로 일정을 짜면 비는 시간에 짬짬이 Expo를 둘러볼 수 있습니다.이동 시간을 줄이고, 세션과 Expo 모두를 알차게 즐길 수 있는 전략입니다.관심 있는 부스를 사전에 정리하기AWS Events 앱을 통해 Expo에 참가하는 주요 파트너사와 부스 위치를 확인할 수 있습니다.방문할 부스를 미리 정리해 두면 시간 절약과 함께 더 많은 정보를 얻을 수 있습니다.참가사 부스 이벤트 활용하기많은 부스에서는 자체적으로 경품 이벤트나 데모 세션을 진행합니다.관심 있는 솔루션이 있다면 데모에 참여하거나, 현장에서 제공되는 추가 자료를 활용하세요.네트워킹도 하고 밥도 먹고 완전 럭키비키잖아?AWS re:Invent에는 정말 다양한 파트너사들이 참가합니다.만약 회사에서 여러 SaaS를 사용하고 있다면, 담당자에게 미리 연락해서 re:Invent 참가 여부를 확인해보세요!저는 이번에 모니터링 솔루션과 데이터 분석 솔루션 업체에서 초대를 받아, 네트워킹 기회를 얻고, 맛있는 저녁 식사까지 제공받았습니다.덕분에 점심은 AWS에서 제공하는 식사를, 저녁은 파트너사 덕분에 해결하며여행 비용도 절감하고, 네트워킹도 하고, 정말 일석이조였죠! TIP: 현재 사용하는 솔루션의 파트너사 또는 전혀 사용해 본 적 없지만 관심 있는 파트너사를 찾아보고 컨택하여 네트워킹 기회를 놓치지 마세요!AWS 자격증 라운지: 인증받은 사람만의 혜택!AWS re:Invent에서는 AWS 공인 자격증 소지자를 위한 특별한 공간인 AWS Certific
2024.12.20
좋아요
별로에요
AI Governance Framework
최근 몇 년간, 인공지능(AI)은 다양한 산업과 분야에서 그 중요성과 활용도가 급격히 증가하고 있습니다. 하지만 AI의 도입에는 다양한 도전과제가 따릅니다.주요 도전 과제 중 하나는 AI 기술의 투명성, 신뢰성 및 윤리적 문제를 해결하기 위한 거버넌스 강화입니다.퍼플리시티의 도움으로 빅테크 기업의 AI 거버넌스를 비교하면 아래와 같습니다.클라우드 시스템을 운영하는 구글, MS, 아마존은 security에 초점을 둔 모습입니다.빅테크 기업의 AI 원칙에서 공통된 항목은 다음과 같습니다.• None 공정성(Fairness): AI 시스템은 편견 없이 공정하게 작동해야 합니다. 공정성과 포용성은 편견을 피하고 공평하고 공정하며 공평한 결정을 내리는 방식으로 AI 시스템을 설계하고 운영하여 포용성과 평등을 증진하는 것을 포함합니다. 이 원칙은 AI 기반 의사 결정에서 차별적인 결과를 방지하여 AI 기술이 사회의 모든 부문에 동등하게 혜택을 줄 수 있도록 하는 것을 목표로 합니다.• None 투명성(Transparency): AI 시스템의 작동 방식과 의사결정 과정이 투명해야 합니다. 투명성이란 AI 시스템의 작동을 공개하고 접근 가능하도록 만드는 것입니다. 이는 AI 모델이 개발, 배포, 사용되는 방식에 대한 인사이트를 명확하고 공개적으로 공유하여 신뢰와 개방의 환경을 조성하는 것을 의미합니다.• None 보안(Security): AI 시스템은 외부 공격으로부터 안전해야 합니다. 보안은 AI 시스템을 침해와 무단 액세스로부터 보호하는 데 매우 중요합니다. 여기에는 다양한 공격으로부터 AI 시스템과 지원 인프라 및 데이터 입력을 강화하고 데이터와 시스템 모두의 기밀성, 무결성 및 가용성을 보호하는 것이 포함됩니다.• None 책임성(Accountability): AI 시스템의 결과에 대한 책임 소재가 명확해야 합니다. 책임성이란 AI 시스템이 취한 행동에 대한 명확한 책임 귀속이 있음을 의미합니다. 문제가 발생하면 문제를 해결하고 편견이나 의도하지 않은 결과를 완화하며 법적 및 윤리적 책임을 명확히 정의하고 준수할 수 있는 프로세스가 마련되어 있어야 합니다.• None 안전성(Safety): AI 시스템은 사용자와 사회에 해를 끼치지 않아야 합니다. AI 시스템은 모든 사용자의 안전과 복지를 보장하는 방식으로 설계 및 배포되어야 합니다. 여기에는 AI가 인권과 안전에 초점을 맞추고 이를 존중하여 설계되었는지 테스트하고 검증하여 AI가 인간에게 유익한 방식으로 작동하도록 보장하는 것이 포함됩니다.• None 설명 가능성(Explainability): AI 시스템의 결정 과정을 이해하고 설명할 수 있어야 합니다. 설명가능성이란 사람들이 특정 결정을 내리는 이유를 이해할 수 있도록 AI 시스템을 설계하는 것을 의미합니다. 여기에는 AI 시스템의 내부 작동 방식과 입력 데이터를 사용하여 결론에 도달하는 방식이 명확하고 따라하기 쉬워야 하며, 이를 통해 AI의 솔루션이 도출된 요인을 이해할 수 있어야 합니다.그 외에도 AI 원칙에는 아래 항목들이 있습니다
12/20/2024
AI Governance Framework
최근 몇 년간, 인공지능(AI)은 다양한 산업과 분야에서 그 중요성과 활용도가 급격히 증가하고 있습니다. 하지만 AI의 도입에는 다양한 도전과제가 따릅니다.주요 도전 과제 중 하나는 AI 기술의 투명성, 신뢰성 및 윤리적 문제를 해결하기 위한 거버넌스 강화입니다.퍼플리시티의 도움으로 빅테크 기업의 AI 거버넌스를 비교하면 아래와 같습니다.클라우드 시스템을 운영하는 구글, MS, 아마존은 security에 초점을 둔 모습입니다.빅테크 기업의 AI 원칙에서 공통된 항목은 다음과 같습니다.• None 공정성(Fairness): AI 시스템은 편견 없이 공정하게 작동해야 합니다. 공정성과 포용성은 편견을 피하고 공평하고 공정하며 공평한 결정을 내리는 방식으로 AI 시스템을 설계하고 운영하여 포용성과 평등을 증진하는 것을 포함합니다. 이 원칙은 AI 기반 의사 결정에서 차별적인 결과를 방지하여 AI 기술이 사회의 모든 부문에 동등하게 혜택을 줄 수 있도록 하는 것을 목표로 합니다.• None 투명성(Transparency): AI 시스템의 작동 방식과 의사결정 과정이 투명해야 합니다. 투명성이란 AI 시스템의 작동을 공개하고 접근 가능하도록 만드는 것입니다. 이는 AI 모델이 개발, 배포, 사용되는 방식에 대한 인사이트를 명확하고 공개적으로 공유하여 신뢰와 개방의 환경을 조성하는 것을 의미합니다.• None 보안(Security): AI 시스템은 외부 공격으로부터 안전해야 합니다. 보안은 AI 시스템을 침해와 무단 액세스로부터 보호하는 데 매우 중요합니다. 여기에는 다양한 공격으로부터 AI 시스템과 지원 인프라 및 데이터 입력을 강화하고 데이터와 시스템 모두의 기밀성, 무결성 및 가용성을 보호하는 것이 포함됩니다.• None 책임성(Accountability): AI 시스템의 결과에 대한 책임 소재가 명확해야 합니다. 책임성이란 AI 시스템이 취한 행동에 대한 명확한 책임 귀속이 있음을 의미합니다. 문제가 발생하면 문제를 해결하고 편견이나 의도하지 않은 결과를 완화하며 법적 및 윤리적 책임을 명확히 정의하고 준수할 수 있는 프로세스가 마련되어 있어야 합니다.• None 안전성(Safety): AI 시스템은 사용자와 사회에 해를 끼치지 않아야 합니다. AI 시스템은 모든 사용자의 안전과 복지를 보장하는 방식으로 설계 및 배포되어야 합니다. 여기에는 AI가 인권과 안전에 초점을 맞추고 이를 존중하여 설계되었는지 테스트하고 검증하여 AI가 인간에게 유익한 방식으로 작동하도록 보장하는 것이 포함됩니다.• None 설명 가능성(Explainability): AI 시스템의 결정 과정을 이해하고 설명할 수 있어야 합니다. 설명가능성이란 사람들이 특정 결정을 내리는 이유를 이해할 수 있도록 AI 시스템을 설계하는 것을 의미합니다. 여기에는 AI 시스템의 내부 작동 방식과 입력 데이터를 사용하여 결론에 도달하는 방식이 명확하고 따라하기 쉬워야 하며, 이를 통해 AI의 솔루션이 도출된 요인을 이해할 수 있어야 합니다.그 외에도 AI 원칙에는 아래 항목들이 있습니다
2024.12.20
좋아요
별로에요
To Mine or Not To Mine: 독일 법원이 AI 시대의 저작권 딜레마에 내린 판결
이 글은 JBB Rechtsanwält:innen의 블로그 포스트 “To Mine or Not To Mine”(https://jbb.de/to-mine-or-not-to-mine/)를 기반으로 작성하였으며,텍스트 및 데이터 마이닝(TDM)에 관한 최근 독일 법원의 판결을 설명하고 관련 지식을 공유하기 위한 목적으로 공개합니다.2021년, 독일의 사진작가 로버트 크네슈케(Robert Kneschke)는 자신의 사진이 LAION(Large-scale Artificial Intelligence Open Network)이라는비영리 단체가 만든 AI 학습용 데이터셋에 무단으로 포함되었다는 사실을 알게 되었습니다.AI 학습용 데이터셋이란 인공지능 모델을 훈련시키기 위해 사용되는 대규모 데이터 모음을 말합니다.‘LAION-5B‘라는 데이터셋은 약 58억 개의 이미지와 그에 해당하는 설명 텍스트로 구성되어 있었습니다.이러한 데이터셋은 AI가 이미지를 인식하고 이해하는 능력을 향상시키는 데 사용됩니다.이 사건의 핵심에는 ‘CommonCrawl‘이라는 비영리 조직이 중요한 역할을 합니다.CommonCrawl은 정기적으로 인터넷의 ‘백업’ 또는 ‘이미지’를 생성합니다. 이들은 링크를 통해 접근 가능한 모든 웹페이지를 텍스트 형태로 복제합니다.• None• None 웹페이지의 텍스트 내용을 복제합니다.• None 이미지, 비디오 등 비텍스트 데이터는 직접 저장하지 않습니다.• None 대신 이러한 콘텐츠에 대한 링크를 포함한 웹페이지의 소스 코드를 저장합니다.CommonCrawl은 이렇게 수집한 데이터셋을 자체 웹사이트에서 제공합니다.이 데이터셋은 웹페이지의 ‘소스 코드’를 포함하고 있어, 연구자들이 인터넷의 구조와 내용을 분석하는 데 사용할 수 있습니다.LAION의 데이터 처리 과정LAION은 CommonCrawl이 제공하는 이 데이터셋을 활용하여 자체적인 이미지 데이터셋을 생성했습니다. 이 과정은 다음과 같습니다:• None CommonCrawl 데이터셋에서 이미지 링크 추출: LAION은 CommonCrawl 데이터에서 이미지 파일에 대한 링크만을 필터링했습니다.• None 추가 정보 수집: LAION은 단순히 이미지 링크만 수집하는 것이 아니라, 각 이미지에 대한 추가 정보도 수집하고자 했습니다. 이 추가 정보에는 다음과 같은 것들이 포함됩니다:• None 이미지 다운로드 및 분석: 이러한 추가 정보를 얻기 위해, LAION은 수집한 링크를 통해 실제 이미지를 다운로드하고, 자체 개발한 AI 모델을 사용하여 이미지를 분석했습니다.• None 데이터셋 구성: 최종적으로 LAION이 만든 데이터셋은 일종의 표 형태로, 각 행에는 이미지 링크와 해당 이미지에 대한 추가 정보가 포함되어 있습니다.이러한 과정을 통해 LAION은 AI 학습에 활용할 수 있는 대규모 이미지 데이터셋을 구축했습니다.그러나 이 과정에서 저작권 문제가 제기되었고, 이는 결국 법적 분쟁으로 이어졌습니다.크네슈케는 자신의 사진이 포함된 웹사이트의 이용약관에 자동화된 콘텐츠 다운로드를 금지
12/19/2024
To Mine or Not To Mine: 독일 법원이 AI 시대의 저작권 딜레마에 내린 판결
이 글은 JBB Rechtsanwält:innen의 블로그 포스트 “To Mine or Not To Mine”(https://jbb.de/to-mine-or-not-to-mine/)를 기반으로 작성하였으며,텍스트 및 데이터 마이닝(TDM)에 관한 최근 독일 법원의 판결을 설명하고 관련 지식을 공유하기 위한 목적으로 공개합니다.2021년, 독일의 사진작가 로버트 크네슈케(Robert Kneschke)는 자신의 사진이 LAION(Large-scale Artificial Intelligence Open Network)이라는비영리 단체가 만든 AI 학습용 데이터셋에 무단으로 포함되었다는 사실을 알게 되었습니다.AI 학습용 데이터셋이란 인공지능 모델을 훈련시키기 위해 사용되는 대규모 데이터 모음을 말합니다.‘LAION-5B‘라는 데이터셋은 약 58억 개의 이미지와 그에 해당하는 설명 텍스트로 구성되어 있었습니다.이러한 데이터셋은 AI가 이미지를 인식하고 이해하는 능력을 향상시키는 데 사용됩니다.이 사건의 핵심에는 ‘CommonCrawl‘이라는 비영리 조직이 중요한 역할을 합니다.CommonCrawl은 정기적으로 인터넷의 ‘백업’ 또는 ‘이미지’를 생성합니다. 이들은 링크를 통해 접근 가능한 모든 웹페이지를 텍스트 형태로 복제합니다.• None• None 웹페이지의 텍스트 내용을 복제합니다.• None 이미지, 비디오 등 비텍스트 데이터는 직접 저장하지 않습니다.• None 대신 이러한 콘텐츠에 대한 링크를 포함한 웹페이지의 소스 코드를 저장합니다.CommonCrawl은 이렇게 수집한 데이터셋을 자체 웹사이트에서 제공합니다.이 데이터셋은 웹페이지의 ‘소스 코드’를 포함하고 있어, 연구자들이 인터넷의 구조와 내용을 분석하는 데 사용할 수 있습니다.LAION의 데이터 처리 과정LAION은 CommonCrawl이 제공하는 이 데이터셋을 활용하여 자체적인 이미지 데이터셋을 생성했습니다. 이 과정은 다음과 같습니다:• None CommonCrawl 데이터셋에서 이미지 링크 추출: LAION은 CommonCrawl 데이터에서 이미지 파일에 대한 링크만을 필터링했습니다.• None 추가 정보 수집: LAION은 단순히 이미지 링크만 수집하는 것이 아니라, 각 이미지에 대한 추가 정보도 수집하고자 했습니다. 이 추가 정보에는 다음과 같은 것들이 포함됩니다:• None 이미지 다운로드 및 분석: 이러한 추가 정보를 얻기 위해, LAION은 수집한 링크를 통해 실제 이미지를 다운로드하고, 자체 개발한 AI 모델을 사용하여 이미지를 분석했습니다.• None 데이터셋 구성: 최종적으로 LAION이 만든 데이터셋은 일종의 표 형태로, 각 행에는 이미지 링크와 해당 이미지에 대한 추가 정보가 포함되어 있습니다.이러한 과정을 통해 LAION은 AI 학습에 활용할 수 있는 대규모 이미지 데이터셋을 구축했습니다.그러나 이 과정에서 저작권 문제가 제기되었고, 이는 결국 법적 분쟁으로 이어졌습니다.크네슈케는 자신의 사진이 포함된 웹사이트의 이용약관에 자동화된 콘텐츠 다운로드를 금지
2024.12.19
좋아요
별로에요
[디지털 트윈 기술 #4] 디지털 트윈 블랙박스(리플레이) 기술
인사말안녕하세요. 현대오토에버에서 디지털트윈 솔루션을 개발하고 있습니다.이번에 소개해드릴 기술은 디지털트윈 기술을 활용한 통합 모니터링 시스템 구축 과정에서 과거 데이터를 3D 형태로 모션부터 상태 데이터까지 직관적으로 볼 수 있도록 하여 관리자가 보다 빠르고 원활하게 공장을 운영하고 이슈의 원인이나 해결 방법을 찾을 수 있게 해주는 리플레이 시스템에 대해 말씀드리겠습니다.3D에서 리플레이 시스템이란?리플레이 시스템 - 제조 공장에서 리플레이 시스템은 생산 과정에서 발생하는 주요 설비의 상태 데이터를 기록하여 사용자가 데이터 기반으로 과거의 생산 과정을 분석하여 공장을 개선하고, 생산 효율성을 극대화하며, 제품을 고품질 화할 수 있도록 해주는 시스템입니다. 또한, 다양한 센서와 IoT 기술을 통해 실시간 데이터를 수집하여 특정 이슈/문제 발생 시 데이터를 기반으로 재현하여 문제의 원인을 빠르고 효율적으로 찾고 원인을 분석하여 해결하는데 유용합니다. 이처럼 이 시스템은 생산 공장의 품질 개선 및 문제 해결에 있어서 중요한 역할을 하며 특히 앞으로 나아가야 할 자동화 공장에 꼭 필요한 시스템 중 하나라고 볼 수 있습니다.3D 리플레이 시스템 이점 - 3D 리플레이 시스템은 기존의 리플레이 시스템에서 더 나아가 설비 데이터를 3차원으로 시각화 하여 설비의 모션까지 완벽하게 재현하는 기술입니다. 이러한 3D 리플레이 시스템은 실시간 데이터를 시각화 하여 사용자가 동적인 상황을 쉽게 이해할 수 있도록 돕고, 특히 생산 과정 중 설비의 움직임에서 발생한 문제를 3D 환경에서 재현함으로써, 문제의 원인을 보다 명확하고 빠르게 파악할 수 있습니다. 또한 공정에 대한 학습이나 교육에 사용할 수 있어 실전에서의 실수를 줄여 안전성을 높이는데 도움을 줍니다. 분석, 통계 또한 자재의 흐름까지 3D 환경을 통해 시각적으로 파악하여 더 빠르게 이해하고 최적화 방안을 도출할 수 있게 합니다. 협업 또한 각기 다른 엔지니어 전문가들이 협력하고 커뮤니케이션하는 데 있어서 3D 모델을 기반으로 소통하여 서로 다른 관점을 통합하고 빠른 의사 결정에 도움을 줍니다.리플레이 시스템 구현 기능구현 기능 설명1. 리플레이 데이터3D Transform Data리플레이에 사용되는 데이터 중 3D Transform Data는 실제로 3D 모션에 해당하는 데이터 입니다. 동적으로 움직이는 오브젝트를 별도로 관리하여 해당 오브젝트만 Transform Data를 저장 하도록 구현 되어있습니다. 해당 데이터는 Location(위치), Rotate(회전 상태), Scale(스케일) 데이터로 이루어져 있습니다.State DataState Data는 설비, 센서, 물류의 흐름 정보 등의 상세 데이터를 말합니다. 해당 데이터를 저장하여 리플레이에서 사용자가 UI를 통해 통계 부터 상태 데이터까지 자세하게 확인 가능하도록 합니다.Event DataEvent Data는 설비의 오류, 알람 등을 별도로 관리/저장하여 리플레이 시 사용자가 해당 시점을 빠르게 파악하고 확인 할 수 있도록 시각화하는 데 용이 합니다.File List리플레이 파일 관리 입니다. 리플레이에서 사용되는 데이터는 서버에서 아카이빙에 맞게 파일을 나누어 저장하게 됩니다. 이렇게 나누어 저장하여 필요한 리플레이 파일만 효율적으로 다운 받아 확인 할 수 있도록 합니다.이때 서버에서 저장한 파일 리스트를 사용자가 확인 할 수 있도록 UI화 해야하고 사용자는 서버로부터 필요한 리플레이 파일만 다운로드 하여 리소스를 효율적으로 관리 가능하도록 합니다.2. 리플레이 플레이 기능Controller플레이/일시 정지 및 앞/뒤 건너 뛰기 기능입니다. 해당 기능은 리플레이 중 정지하여 중요한 순간을 자세히 확인하거나 불필요한 부분을 앞/뒤로 건너뛰는게 가능하여 사용자로 하여금 리플레이를 컨트롤할 수 있도록 합니다.Speed배속 기능 입니다. 해당 기능은 리플레이를 빠르게 배속을 해줄 뿐만 아니라 느리게 슬로우로 플레이 또한 가능 하도록 해줍니다. 이 기능을 활용하여 디테일한 움직임 확인이나 전반 적인 공장 운영 흐름을 빠르게 파악 할 수 있도록 해줍니다.Progress & Event 프로그래스 바 기능 입니다. 해당 기능은 프로그래스바를 이용하여 리플레이되고 있는 시점을 시각적으로 빠르게 확인이 가능하고 중요한 이벤트 시점을 보다 직관적으로 사용자가 확인할 수 있도록 해줍니다. 그리고 원하는 시점으로 프로그래스바를 이용하여 빠르게 변환이 가능 합니다.3. 시스템 아키텍처Architecture이번에 개발된 리플레이 시스템 아키텍처로 백엔드 서버에서 주는 데이터를 GPU서버의 3D통합모니터링 시스템에서 처리하고 해당 시스템은 3D모션 정보, 각 종 상태 상세정보 등을 기록하여 파일화 합니다. 리플레이 파일은 30분 단위로 끊어서 FTP서버에 저장하고 FTP서버는 사용자가 클라이언트로 접근하여 리플레이 파일 정보를 읽고 파일을 다운로드하여 리플레이 할 수 있도록 구성되어 있습니다.리플레이 시스템은 사용자가 보고 있지 않아도 공장이 가동되는 동안 계속 녹화가 되고 있어야 하기 때문에 Server를 통해 중앙관리화 했고 3D Data를 다루다 보니 GPU 리소스가 필요하여 GPU Server를 도입했습니다. 이렇게 구축하여 현재는 운영 중이고 공장이 가동되는 동안 이상 없이 지속적으로 녹화되고 사용자는 녹화된 파일에 접근하여 리플레이 시스템을 이용 중에 있습니다.4. 언리얼 기반 리플레이 시스템 개발 내용언리얼 엔진 기반 리플레이 시스템 주어진 일정에 맞추어 효율적이고 빠르게 안정적인 리플레이 시스템을 개발하기 위하여 언리얼 엔진의 기능을 최대한 활용하였습니다. 언리얼 엔진은 기본적으로 리플레이 시스템 기능을 제공하고 있고 추가로오브젝트 리플리케이트 기능을 제공합니다. 이를 활용하여 안정적이고 효율적인 리플레이 시스템을 빠르게 구축할 수 있습니다.저장할 데이터 선정 리플레이를 하기 위해서는 저장이 우선적으로 되어야 하고 개발자는 어떤 데이터를 어떻게 저장할 지부터 설계하고 구현해야 합니다. 저장 데이터는 세 가지 정도입니다. 동적인 오브젝트의 1.모션 데이터, 상세 상태를 보기위한
12/18/2024
[디지털 트윈 기술 #4] 디지털 트윈 블랙박스(리플레이) 기술
인사말안녕하세요. 현대오토에버에서 디지털트윈 솔루션을 개발하고 있습니다.이번에 소개해드릴 기술은 디지털트윈 기술을 활용한 통합 모니터링 시스템 구축 과정에서 과거 데이터를 3D 형태로 모션부터 상태 데이터까지 직관적으로 볼 수 있도록 하여 관리자가 보다 빠르고 원활하게 공장을 운영하고 이슈의 원인이나 해결 방법을 찾을 수 있게 해주는 리플레이 시스템에 대해 말씀드리겠습니다.3D에서 리플레이 시스템이란?리플레이 시스템 - 제조 공장에서 리플레이 시스템은 생산 과정에서 발생하는 주요 설비의 상태 데이터를 기록하여 사용자가 데이터 기반으로 과거의 생산 과정을 분석하여 공장을 개선하고, 생산 효율성을 극대화하며, 제품을 고품질 화할 수 있도록 해주는 시스템입니다. 또한, 다양한 센서와 IoT 기술을 통해 실시간 데이터를 수집하여 특정 이슈/문제 발생 시 데이터를 기반으로 재현하여 문제의 원인을 빠르고 효율적으로 찾고 원인을 분석하여 해결하는데 유용합니다. 이처럼 이 시스템은 생산 공장의 품질 개선 및 문제 해결에 있어서 중요한 역할을 하며 특히 앞으로 나아가야 할 자동화 공장에 꼭 필요한 시스템 중 하나라고 볼 수 있습니다.3D 리플레이 시스템 이점 - 3D 리플레이 시스템은 기존의 리플레이 시스템에서 더 나아가 설비 데이터를 3차원으로 시각화 하여 설비의 모션까지 완벽하게 재현하는 기술입니다. 이러한 3D 리플레이 시스템은 실시간 데이터를 시각화 하여 사용자가 동적인 상황을 쉽게 이해할 수 있도록 돕고, 특히 생산 과정 중 설비의 움직임에서 발생한 문제를 3D 환경에서 재현함으로써, 문제의 원인을 보다 명확하고 빠르게 파악할 수 있습니다. 또한 공정에 대한 학습이나 교육에 사용할 수 있어 실전에서의 실수를 줄여 안전성을 높이는데 도움을 줍니다. 분석, 통계 또한 자재의 흐름까지 3D 환경을 통해 시각적으로 파악하여 더 빠르게 이해하고 최적화 방안을 도출할 수 있게 합니다. 협업 또한 각기 다른 엔지니어 전문가들이 협력하고 커뮤니케이션하는 데 있어서 3D 모델을 기반으로 소통하여 서로 다른 관점을 통합하고 빠른 의사 결정에 도움을 줍니다.리플레이 시스템 구현 기능구현 기능 설명1. 리플레이 데이터3D Transform Data리플레이에 사용되는 데이터 중 3D Transform Data는 실제로 3D 모션에 해당하는 데이터 입니다. 동적으로 움직이는 오브젝트를 별도로 관리하여 해당 오브젝트만 Transform Data를 저장 하도록 구현 되어있습니다. 해당 데이터는 Location(위치), Rotate(회전 상태), Scale(스케일) 데이터로 이루어져 있습니다.State DataState Data는 설비, 센서, 물류의 흐름 정보 등의 상세 데이터를 말합니다. 해당 데이터를 저장하여 리플레이에서 사용자가 UI를 통해 통계 부터 상태 데이터까지 자세하게 확인 가능하도록 합니다.Event DataEvent Data는 설비의 오류, 알람 등을 별도로 관리/저장하여 리플레이 시 사용자가 해당 시점을 빠르게 파악하고 확인 할 수 있도록 시각화하는 데 용이 합니다.File List리플레이 파일 관리 입니다. 리플레이에서 사용되는 데이터는 서버에서 아카이빙에 맞게 파일을 나누어 저장하게 됩니다. 이렇게 나누어 저장하여 필요한 리플레이 파일만 효율적으로 다운 받아 확인 할 수 있도록 합니다.이때 서버에서 저장한 파일 리스트를 사용자가 확인 할 수 있도록 UI화 해야하고 사용자는 서버로부터 필요한 리플레이 파일만 다운로드 하여 리소스를 효율적으로 관리 가능하도록 합니다.2. 리플레이 플레이 기능Controller플레이/일시 정지 및 앞/뒤 건너 뛰기 기능입니다. 해당 기능은 리플레이 중 정지하여 중요한 순간을 자세히 확인하거나 불필요한 부분을 앞/뒤로 건너뛰는게 가능하여 사용자로 하여금 리플레이를 컨트롤할 수 있도록 합니다.Speed배속 기능 입니다. 해당 기능은 리플레이를 빠르게 배속을 해줄 뿐만 아니라 느리게 슬로우로 플레이 또한 가능 하도록 해줍니다. 이 기능을 활용하여 디테일한 움직임 확인이나 전반 적인 공장 운영 흐름을 빠르게 파악 할 수 있도록 해줍니다.Progress & Event 프로그래스 바 기능 입니다. 해당 기능은 프로그래스바를 이용하여 리플레이되고 있는 시점을 시각적으로 빠르게 확인이 가능하고 중요한 이벤트 시점을 보다 직관적으로 사용자가 확인할 수 있도록 해줍니다. 그리고 원하는 시점으로 프로그래스바를 이용하여 빠르게 변환이 가능 합니다.3. 시스템 아키텍처Architecture이번에 개발된 리플레이 시스템 아키텍처로 백엔드 서버에서 주는 데이터를 GPU서버의 3D통합모니터링 시스템에서 처리하고 해당 시스템은 3D모션 정보, 각 종 상태 상세정보 등을 기록하여 파일화 합니다. 리플레이 파일은 30분 단위로 끊어서 FTP서버에 저장하고 FTP서버는 사용자가 클라이언트로 접근하여 리플레이 파일 정보를 읽고 파일을 다운로드하여 리플레이 할 수 있도록 구성되어 있습니다.리플레이 시스템은 사용자가 보고 있지 않아도 공장이 가동되는 동안 계속 녹화가 되고 있어야 하기 때문에 Server를 통해 중앙관리화 했고 3D Data를 다루다 보니 GPU 리소스가 필요하여 GPU Server를 도입했습니다. 이렇게 구축하여 현재는 운영 중이고 공장이 가동되는 동안 이상 없이 지속적으로 녹화되고 사용자는 녹화된 파일에 접근하여 리플레이 시스템을 이용 중에 있습니다.4. 언리얼 기반 리플레이 시스템 개발 내용언리얼 엔진 기반 리플레이 시스템 주어진 일정에 맞추어 효율적이고 빠르게 안정적인 리플레이 시스템을 개발하기 위하여 언리얼 엔진의 기능을 최대한 활용하였습니다. 언리얼 엔진은 기본적으로 리플레이 시스템 기능을 제공하고 있고 추가로오브젝트 리플리케이트 기능을 제공합니다. 이를 활용하여 안정적이고 효율적인 리플레이 시스템을 빠르게 구축할 수 있습니다.저장할 데이터 선정 리플레이를 하기 위해서는 저장이 우선적으로 되어야 하고 개발자는 어떤 데이터를 어떻게 저장할 지부터 설계하고 구현해야 합니다. 저장 데이터는 세 가지 정도입니다. 동적인 오브젝트의 1.모션 데이터, 상세 상태를 보기위한
2024.12.18
좋아요
별로에요
Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 2편 - 컨텍스트 스위칭
지난 1편에서는 가상 스레드(virtual thread)의 장점을 살펴보고 가상 스레드를 어떻게 생성하고 시작하는지 알아봤습니다. 이어서 이번 글에서는 컨텍스트 스위칭(context switching)의 작동 방식을 살펴보려고 합니다. 1편에서 살펴본 VirtualThread 클래스의 멤버 변수와 가상 스레드 시작 시 수행하는 사전 작업을 어떻게 활용하는지 참고하면서 2편을 읽어보시면 조금 더 쉽게 이해하실 수 있을 것 같습니다.• 고정(pinned) 이슈와 한계2편은 다음과 같은 순서로 진행합니다.가상 스레드가 시작된 후 블로킹 I/O 작업을 만나면 컨텍스트 스위칭이 발생합니다. 이때 해당 가상 스레드는 실행 중이던 캐리어 스레드(carrier thread)와의 매핑이 끊어지며, 이후 블로킹 I/O 작업이 완료됐을 때 다시 캐리어 스레드에서 작업이 재개됩니다. 이 작업은 가상 스레드의 와 메서드가 수행하는데 요. 각 메서드가 어떤 방식으로 작동하는지 소스 코드와 함께 자세히 알아보겠습니다.1편과 마찬가지로 소스 코드는 OpenJDK 21+35가 기준이며, 글 중간에 등장하는 괄호 속 숫자는 함께 첨부한 소스 코드에서 각 설명에 해당하는 위치에 주석으로 남겨 놓은 숫자를 의미합니다. 가상 스레드의 작동을 보다 깊이 이해할 수 있도록 소스 코드와 함께 읽기를 권장합니다.VirtualThread클래스의 메서드는 작업 중 블로킹 I/O 작업을 만나 해당 가상 스레드를 잠시 멈추고 캐리어 스레드에 다른 가상 스레드를 매핑하기 위해서 호출합니다. 메서드에서는 가상 스레드의 상태를 'PARK' 상태로 변환하는 중이라는 의미인 으로 변환(1)한 후 메서드를 호출합니다.메서드는 (3)와 메서드(4)를 차례로 실행해 현재 캐리어 스레드에서 가상 스레드와의 연관 관계를 제거하고 캐리어 스레드를 다른 가상 스레드에게 양보합니다.클래스의 메서드(1)는 현재 실행 중인 작업을 중단하는 역할을 하며, 내부적으로 네이티브 메서드(2)를 호출합니다. 네이티브 메서드는 현재 실행 중인 작업을 중단한 뒤 이후 다시 재개하기 위해 메모리의 스택 영역에 쌓인 프레임을 힙 영역에 객체로 저장한 후 스택에서 해당 프레임을 제거해 실행 중이던 작업을 빠져나오게 합니다.아래 그림은 메서드 실행 시 메모리 변화를 나타낸 그림입니다. 캐리어 스레드에서 메서드를 실행한 후 메서드에서 가상 스레드를 생성합니다. 가상 스레드에 포함된 작업은 클래스의 메소드를 통해 실행됩니다. 이후 가상 스레드 내에서 메서드를 실행한 뒤 메서드 내부의 블로킹 I/O 작업을 만나 클래스의 메서드가 호출됩니다. 이때 메서드 이후에 실행돼 쌓인 스택 프레임은 힙 영역에 저장됩니다.스택에서 힙 영역으로 옮겨지는 메서드 프레임의 범위는 이후에 실행된 작업부터 네이티브 메서드를 호출한 메서드 프레임까지입니다. 아래 OpenJDK C++ 소스 코드(continuationFreezeThaw.cpp)는 네이티브 메서드를 통해 실행되는 코드 중 힙에 저장되는 스택 범위에 대한 내용입니다. 여기서 스택 프레임의 주소는 높은
12/18/2024
Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 2편 - 컨텍스트 스위칭
지난 1편에서는 가상 스레드(virtual thread)의 장점을 살펴보고 가상 스레드를 어떻게 생성하고 시작하는지 알아봤습니다. 이어서 이번 글에서는 컨텍스트 스위칭(context switching)의 작동 방식을 살펴보려고 합니다. 1편에서 살펴본 VirtualThread 클래스의 멤버 변수와 가상 스레드 시작 시 수행하는 사전 작업을 어떻게 활용하는지 참고하면서 2편을 읽어보시면 조금 더 쉽게 이해하실 수 있을 것 같습니다.• 고정(pinned) 이슈와 한계2편은 다음과 같은 순서로 진행합니다.가상 스레드가 시작된 후 블로킹 I/O 작업을 만나면 컨텍스트 스위칭이 발생합니다. 이때 해당 가상 스레드는 실행 중이던 캐리어 스레드(carrier thread)와의 매핑이 끊어지며, 이후 블로킹 I/O 작업이 완료됐을 때 다시 캐리어 스레드에서 작업이 재개됩니다. 이 작업은 가상 스레드의 와 메서드가 수행하는데 요. 각 메서드가 어떤 방식으로 작동하는지 소스 코드와 함께 자세히 알아보겠습니다.1편과 마찬가지로 소스 코드는 OpenJDK 21+35가 기준이며, 글 중간에 등장하는 괄호 속 숫자는 함께 첨부한 소스 코드에서 각 설명에 해당하는 위치에 주석으로 남겨 놓은 숫자를 의미합니다. 가상 스레드의 작동을 보다 깊이 이해할 수 있도록 소스 코드와 함께 읽기를 권장합니다.VirtualThread클래스의 메서드는 작업 중 블로킹 I/O 작업을 만나 해당 가상 스레드를 잠시 멈추고 캐리어 스레드에 다른 가상 스레드를 매핑하기 위해서 호출합니다. 메서드에서는 가상 스레드의 상태를 'PARK' 상태로 변환하는 중이라는 의미인 으로 변환(1)한 후 메서드를 호출합니다.메서드는 (3)와 메서드(4)를 차례로 실행해 현재 캐리어 스레드에서 가상 스레드와의 연관 관계를 제거하고 캐리어 스레드를 다른 가상 스레드에게 양보합니다.클래스의 메서드(1)는 현재 실행 중인 작업을 중단하는 역할을 하며, 내부적으로 네이티브 메서드(2)를 호출합니다. 네이티브 메서드는 현재 실행 중인 작업을 중단한 뒤 이후 다시 재개하기 위해 메모리의 스택 영역에 쌓인 프레임을 힙 영역에 객체로 저장한 후 스택에서 해당 프레임을 제거해 실행 중이던 작업을 빠져나오게 합니다.아래 그림은 메서드 실행 시 메모리 변화를 나타낸 그림입니다. 캐리어 스레드에서 메서드를 실행한 후 메서드에서 가상 스레드를 생성합니다. 가상 스레드에 포함된 작업은 클래스의 메소드를 통해 실행됩니다. 이후 가상 스레드 내에서 메서드를 실행한 뒤 메서드 내부의 블로킹 I/O 작업을 만나 클래스의 메서드가 호출됩니다. 이때 메서드 이후에 실행돼 쌓인 스택 프레임은 힙 영역에 저장됩니다.스택에서 힙 영역으로 옮겨지는 메서드 프레임의 범위는 이후에 실행된 작업부터 네이티브 메서드를 호출한 메서드 프레임까지입니다. 아래 OpenJDK C++ 소스 코드(continuationFreezeThaw.cpp)는 네이티브 메서드를 통해 실행되는 코드 중 힙에 저장되는 스택 범위에 대한 내용입니다. 여기서 스택 프레임의 주소는 높은
2024.12.18
좋아요
별로에요
당근페이 재무 결산 사례로 보는 백엔드와 데이터의 만남
안녕하세요. 저는 당근페이 머니서비스팀 백엔드 엔지니어 클로버(Clover)에요! 당근페이에서는 동네에서 쉽고 편하게 쓸 수 있는 금융 서비스를 만들고 있어요. 당근에서 일어나는 거래에는 당근머니가 사용되는데요. 머니서비스팀에서는 당근머니와 관련된 일들에 더해, 동네에서 쓰면 다양한 혜택이 적립되는 당근카드와 관련된 일들을 하고 있어요. 다시 말해 저희 팀은 지역에서 생기는 다양한 거래를 연결하는 게 목표예요!재무 결산의 중요성당근페이에서는 매월 셀 수 없이 많은 거래가 이루어지는데요. 매월 이 거래들을 바탕으로 당근페이 내에서 돈이 어떤 경우에 어디에서 어디로 흘러갔는지 재무 결산을 진행해요. 예를 들면 당근머니를 충전하면 사용자의 계좌에서 당근페이 모계좌로 돈이 이동하는데, 당근머니 충전액의 총합은 모계좌 입금액의 총합과 같아야 해요. 재무 결산을 했는데 단 1원이라도 맞지 않는다면 그 1원을 찾기 위해 모든 업무를 중단해야 해요. 그만큼 핀테크 회사인 당근페이에서는 재무 결산이 중요해요.당근페이 초기에는 거래량이나 거래 종류가 많지 않았기 때문에 데이터를 직접 SQL 쿼리로 뽑았었어요. 그러다가 당근페이가 커지면서…결산 어드민 도입 전 머니 결산 스레드위와 같이 매월 초에 열리는 머니 결산 스레드에서, 백엔드 엔지니어들이 태그되기 시작했어요. 머니서비스팀에 도메인 담당자가 많아질수록 매월 결산 슬랙 스레드에 태그되는 사람도 점점 많아졌죠. 결국 머니서비스팀 백엔드 개발자들은 매월 첫 주에는 정기적으로 코드가 아닌 SQL 쿼리를 치고 있는 상황이 일어났어요.이런 비효율을 어떻게 개선해 볼 수 있을까요? 모두가 SQL 쿼리를 더 정확하고 빠르게 작성하도록 SQLD 자격증 스터디를 열어볼 수도 있을 듯해요. 하지만 저희 팀에서는 이를 시스템적으로 개선해보고자 했어요.Spring Batch와 MySQL기반 결산가장 쉽게 떠오르는 방법은 스프링 배치를 이용하는 방법이에요. 대용량 데이터를 처리할 때 가장 흔하게 사용하는 기술이죠. 처음에는 저희 팀도 이 방법으로 결산을 진행했어요. 대략적인 구조는 다음과 같았어요.당근페이 머니서비스팀은 마이크로서비스로 컴포넌트들이 구성돼 있어서, 각자 다른 데이터베이스를 가지고 있어요. 여러 데이터들을 종합해서 진행하는 결산의 특성상, 배치는 여러 개의 데이터베이스를 바라보고 진행해요.이러한 결산은 크게 두 단계로 구성돼 있어요.원본 DB에서 성공 거래를 바탕으로 원장(raw data)을 구성해 결산 전용 DB에 밀어 넣기위에서 가져온 원장을 기반으로 집계해 일별 결산 리포트를 만들고 결산 전용 DB에 쌓기이런 단계별로 구성된 배치를 매일 00시에 Cron을 통해 트리거해요. 재무 담당자나 결산 이해관계자들은 이렇게 단계별, 일자별로 잘 집계된 데이터들을 스프링 기반 백엔드 및 결산 프론트 화면을 통해 언제든지 조회할 수 있어요. 여기까지는 괜찮은 것 같아요. 그러던 어느 날 문제를 마주했죠.구조의 한계배치 실패 알림 발생어느 날 갑자기 이런 배치 작업 실패 알림을 받게 됐어요. 보통 이렇게 결산 배치를 실
airflow
awsredshift
hibernate
mysql
spring
12/18/2024
당근페이 재무 결산 사례로 보는 백엔드와 데이터의 만남
안녕하세요. 저는 당근페이 머니서비스팀 백엔드 엔지니어 클로버(Clover)에요! 당근페이에서는 동네에서 쉽고 편하게 쓸 수 있는 금융 서비스를 만들고 있어요. 당근에서 일어나는 거래에는 당근머니가 사용되는데요. 머니서비스팀에서는 당근머니와 관련된 일들에 더해, 동네에서 쓰면 다양한 혜택이 적립되는 당근카드와 관련된 일들을 하고 있어요. 다시 말해 저희 팀은 지역에서 생기는 다양한 거래를 연결하는 게 목표예요!재무 결산의 중요성당근페이에서는 매월 셀 수 없이 많은 거래가 이루어지는데요. 매월 이 거래들을 바탕으로 당근페이 내에서 돈이 어떤 경우에 어디에서 어디로 흘러갔는지 재무 결산을 진행해요. 예를 들면 당근머니를 충전하면 사용자의 계좌에서 당근페이 모계좌로 돈이 이동하는데, 당근머니 충전액의 총합은 모계좌 입금액의 총합과 같아야 해요. 재무 결산을 했는데 단 1원이라도 맞지 않는다면 그 1원을 찾기 위해 모든 업무를 중단해야 해요. 그만큼 핀테크 회사인 당근페이에서는 재무 결산이 중요해요.당근페이 초기에는 거래량이나 거래 종류가 많지 않았기 때문에 데이터를 직접 SQL 쿼리로 뽑았었어요. 그러다가 당근페이가 커지면서…결산 어드민 도입 전 머니 결산 스레드위와 같이 매월 초에 열리는 머니 결산 스레드에서, 백엔드 엔지니어들이 태그되기 시작했어요. 머니서비스팀에 도메인 담당자가 많아질수록 매월 결산 슬랙 스레드에 태그되는 사람도 점점 많아졌죠. 결국 머니서비스팀 백엔드 개발자들은 매월 첫 주에는 정기적으로 코드가 아닌 SQL 쿼리를 치고 있는 상황이 일어났어요.이런 비효율을 어떻게 개선해 볼 수 있을까요? 모두가 SQL 쿼리를 더 정확하고 빠르게 작성하도록 SQLD 자격증 스터디를 열어볼 수도 있을 듯해요. 하지만 저희 팀에서는 이를 시스템적으로 개선해보고자 했어요.Spring Batch와 MySQL기반 결산가장 쉽게 떠오르는 방법은 스프링 배치를 이용하는 방법이에요. 대용량 데이터를 처리할 때 가장 흔하게 사용하는 기술이죠. 처음에는 저희 팀도 이 방법으로 결산을 진행했어요. 대략적인 구조는 다음과 같았어요.당근페이 머니서비스팀은 마이크로서비스로 컴포넌트들이 구성돼 있어서, 각자 다른 데이터베이스를 가지고 있어요. 여러 데이터들을 종합해서 진행하는 결산의 특성상, 배치는 여러 개의 데이터베이스를 바라보고 진행해요.이러한 결산은 크게 두 단계로 구성돼 있어요.원본 DB에서 성공 거래를 바탕으로 원장(raw data)을 구성해 결산 전용 DB에 밀어 넣기위에서 가져온 원장을 기반으로 집계해 일별 결산 리포트를 만들고 결산 전용 DB에 쌓기이런 단계별로 구성된 배치를 매일 00시에 Cron을 통해 트리거해요. 재무 담당자나 결산 이해관계자들은 이렇게 단계별, 일자별로 잘 집계된 데이터들을 스프링 기반 백엔드 및 결산 프론트 화면을 통해 언제든지 조회할 수 있어요. 여기까지는 괜찮은 것 같아요. 그러던 어느 날 문제를 마주했죠.구조의 한계배치 실패 알림 발생어느 날 갑자기 이런 배치 작업 실패 알림을 받게 됐어요. 보통 이렇게 결산 배치를 실
2024.12.18
airflow
awsredshift
hibernate
mysql
spring
좋아요
별로에요
프론트엔드 서비스 최적화? 토스에서는 '이렇게' 합니다! 모닥불 | EP.8
프론트엔드 개발자라면 한 번쯤 고민해봤을 성능 최적화! 토스 개발자들이 전하는 최적화의 본질과 실무 노하우를 공개합니다.초기 로딩부터 런타임 최적화까지, 토스의 박서진, 박건영, 조유성 님이 전하는 최적화 사례와 비법을 만나보세요!
12/18/2024
프론트엔드 서비스 최적화? 토스에서는 '이렇게' 합니다! 모닥불 | EP.8
프론트엔드 개발자라면 한 번쯤 고민해봤을 성능 최적화! 토스 개발자들이 전하는 최적화의 본질과 실무 노하우를 공개합니다.초기 로딩부터 런타임 최적화까지, 토스의 박서진, 박건영, 조유성 님이 전하는 최적화 사례와 비법을 만나보세요!
2024.12.18
좋아요
별로에요
Cloudfront의 숨은 힘: 캐싱 없이도 극대화 되는 성능과 비용 효율성
부제: CloudFront를 동적 콘텐츠에도 사용해보세요~!CloudFront에 대한 고정관념CloudFront에 대해 흔히 가지고 있는 두 가지 오해가 있습니다:정적 콘텐츠만의 영역이라고 생각 하는점.HTML, CSS, JavaScript, 이미지, 미디어 파일과 같은 정적 자원을 빠르게 전송하기 위한 도구로만 인식동적 콘텐츠 처리에는 부적합 하다는 편견2. 캐싱이 CloudFront의 주요 목적?CloudFront 사용의 주된 이유가 캐싱이라고 잘못 인식캐싱을 사용하지 않으면 큰 이점이 없다고 생각원티드 서비스 전반에 Cloudfront 적용하고 있습니다.동적웹페이지, API 같은 동적 콘텐츠에도 사용하고 있습니다.캐싱을 사용하지 않지만, 유의미한 성능/비용 개선을 이루었습니다.원티드 서비스에 CloudFront를 적용한 내용을 시리즈로 글을 작성해 보려고 합니다.이 글에서는 CloudFront를 사용했을때 자동으로 주어지는 장점에 대해서 소개 합니다.1. 접속지점(PoP 또는 Edge)을 활용한 최적화사용자와 서버는 지리적으로 가까울수록 속도는 빨라집니다.❌ Cloudfront 사용하지 않았을때:부산 사용자는 서울 사용자와 비교하여 지리적으로 불리합니다.부산 사용자는 서울 리전까지 요청이 가야 합니다.✅ Cloudfront 사용 했을때:사용자와 가장 가까운 접속지점(PoP / Edge)에 연결이 됩니다.그 다음, Amazon 전용 네트워크를 통해 이동하는데, 이는 일반 인터넷에 비해 속도가 빠르고 성능이 뛰어납니다.또한, Connection 과정이 가까운 접속지점(PoP / Edge)에서 일어나기 때문에, Connection 시간이 크게 단축 됩니다.한국에 접속지점(PoP / Edge)가 몇개가 있을까?AWS의 한국 내 엣지 로케이션(Edge Location)은 꾸준히 확장되어 왔습니다.흥미로운 점은 공식 발표된 것보다 실제 운영되고 있는 엣지 로케이션이 더 많다는 사실입니다.https://aws.amazon.com/ko/about-aws/whats-new/2018/02/amazon-cloudfront-launches-fourth-edge-location-in-seoul-south-korea/2018년: 네 번째 엣지 로케이션 추가 공지이후 추가 확장에 대한 공식 발표는 없었음“AWS Edge 스페셜리스트와의 미팅에서 확인한 결과, 현재 한국에는 총 8개의 접속 지점(PoP/Edge)이 운영되고 있습니다.” (2024년 6월 기준)AWS가 한국 시장에서 콘텐츠 전송 네트워크(CDN) 서비스의 품질 향상을 위해 지속적으로 투자하고 있음을 보여주는 좋은 예시입니다.2. Amazon Global Network사용자와 가장 가까운 접속지점(PoP / Edge)에 연결이 되면, AWS Global Network를 이용하여 빠르게 오리진 원본서버로 요청을 전달합니다.❌ Cloudfront 사용하지 않을때:공용 인터넷 네트워크 사용하여 라우팅이 일어나게 됩니다.경로가 변경될 수 있으며 여기저기서 패킷 손실과 혼잡이 발생할 수 있습니다.✅ Clo
12/18/2024
Cloudfront의 숨은 힘: 캐싱 없이도 극대화 되는 성능과 비용 효율성
부제: CloudFront를 동적 콘텐츠에도 사용해보세요~!CloudFront에 대한 고정관념CloudFront에 대해 흔히 가지고 있는 두 가지 오해가 있습니다:정적 콘텐츠만의 영역이라고 생각 하는점.HTML, CSS, JavaScript, 이미지, 미디어 파일과 같은 정적 자원을 빠르게 전송하기 위한 도구로만 인식동적 콘텐츠 처리에는 부적합 하다는 편견2. 캐싱이 CloudFront의 주요 목적?CloudFront 사용의 주된 이유가 캐싱이라고 잘못 인식캐싱을 사용하지 않으면 큰 이점이 없다고 생각원티드 서비스 전반에 Cloudfront 적용하고 있습니다.동적웹페이지, API 같은 동적 콘텐츠에도 사용하고 있습니다.캐싱을 사용하지 않지만, 유의미한 성능/비용 개선을 이루었습니다.원티드 서비스에 CloudFront를 적용한 내용을 시리즈로 글을 작성해 보려고 합니다.이 글에서는 CloudFront를 사용했을때 자동으로 주어지는 장점에 대해서 소개 합니다.1. 접속지점(PoP 또는 Edge)을 활용한 최적화사용자와 서버는 지리적으로 가까울수록 속도는 빨라집니다.❌ Cloudfront 사용하지 않았을때:부산 사용자는 서울 사용자와 비교하여 지리적으로 불리합니다.부산 사용자는 서울 리전까지 요청이 가야 합니다.✅ Cloudfront 사용 했을때:사용자와 가장 가까운 접속지점(PoP / Edge)에 연결이 됩니다.그 다음, Amazon 전용 네트워크를 통해 이동하는데, 이는 일반 인터넷에 비해 속도가 빠르고 성능이 뛰어납니다.또한, Connection 과정이 가까운 접속지점(PoP / Edge)에서 일어나기 때문에, Connection 시간이 크게 단축 됩니다.한국에 접속지점(PoP / Edge)가 몇개가 있을까?AWS의 한국 내 엣지 로케이션(Edge Location)은 꾸준히 확장되어 왔습니다.흥미로운 점은 공식 발표된 것보다 실제 운영되고 있는 엣지 로케이션이 더 많다는 사실입니다.https://aws.amazon.com/ko/about-aws/whats-new/2018/02/amazon-cloudfront-launches-fourth-edge-location-in-seoul-south-korea/2018년: 네 번째 엣지 로케이션 추가 공지이후 추가 확장에 대한 공식 발표는 없었음“AWS Edge 스페셜리스트와의 미팅에서 확인한 결과, 현재 한국에는 총 8개의 접속 지점(PoP/Edge)이 운영되고 있습니다.” (2024년 6월 기준)AWS가 한국 시장에서 콘텐츠 전송 네트워크(CDN) 서비스의 품질 향상을 위해 지속적으로 투자하고 있음을 보여주는 좋은 예시입니다.2. Amazon Global Network사용자와 가장 가까운 접속지점(PoP / Edge)에 연결이 되면, AWS Global Network를 이용하여 빠르게 오리진 원본서버로 요청을 전달합니다.❌ Cloudfront 사용하지 않을때:공용 인터넷 네트워크 사용하여 라우팅이 일어나게 됩니다.경로가 변경될 수 있으며 여기저기서 패킷 손실과 혼잡이 발생할 수 있습니다.✅ Clo
2024.12.18
좋아요
별로에요