목록[대외활동] (58)
개발자로 후회없는 삶 살기
서론 로깅을 사용하는 목적은 다양하며, 로컬, 개발, 운영 레벨에서 로깅 전략에 차이점을 주어 목적에 맞는 데이터를 수집합니다. 저희 서비스에서 로깅을 사용한 목적을 말씀드리고, 사용한 로깅 전략을 기록합니다. 본론 - 로깅 도입 목적 로깅을 사용하는 목적은 다양하지만, 운영 레벨에서는 사용자의 서비스 활용도를 파악하기 위해 사용한다고 합니다. 저희 서비스 또한, 상품 구매 목적으로 활용하는 사용자가 대부분일 것이기에 사용자가 저희 서비스를 통해 원하는 목적을 달성할 수 있도록 유저 데이터를 수집하기로 했습니다. -> 로깅 체크 리스트 유저 로그인 시간 + 로그아웃 시간 세션 timeout 여부 유저 트랜잭션 로깅 가구 및 공간 데이터 접근 시간 및 횟수 카운팅 업로드한 데이터의 추론 결과가 좋았는지 큐..
서론 학과 홈페이지의 서버 다운의 80%는 다소 복잡한 DB 연관관계 설계로 인해 조회 시 DB부하가 발생하기 때문입니다. 이를 JPA 쿼리 튜닝으로 해결하기 위한 고민을 공유합니다. 본론 - 졸업 프로세스 저희 학교는 졸업 프로세스에 따라 졸업 신청을 4번 하게 되며 따라서 졸업자 목록 테이블과 4개의 졸업 신청 테이블의 연관 관계로 설계되어 있었습니다. 신청 접수, 제안서, 중간, 최종 보고서에 따른 신청서를 제출해야 하며 해당 신청 데이터는 관리되어야 하기에 테이블로 유지보수 되어야 합니다. 따라서 졸업자 전체 조회 시 졸업자 수 * 4만큼의 DB select를 하게 되어 DB 부하와 웹의 로딩 지연이 발생했습니다. 이제부터 이것을 JPA로 해결한 방법을 알아보겠습니다. - JPA 쿼리 튜닝 결과 ..
서론 11, 12 주차에는 UXR에 구축한 웹 서버와 앞으로 정식 서비스까지 사용할 추론 서버 간의 통신 규격을 정하고 여러 통신 이슈들을 대비하는 시간을 가졌습니다. 본론 - 추론 서버 배포 방식 현재 추론 서버는 GPU POOL을 사용하여 GPU Utilization을 높이는 방식으로 배포되어 있습니다. https://hsb422.tistory.com/entry/ML-PARTGPU-%ED%92%80-%EA%B5%AC%ED%98%84%EA%B8%B0-2 최적화 PART.GPU 풀 구현기 2 서론 사설망에서 서버 간 통신으로 GPU 풀을 이용하는 과정을 기록합니다. 본론 -> 깃허브 https://github.com/boostcampaitech6/level2-objectdetection-cv-05/pul..
서론 저희 서비스에서 파일 업로드가 레이턴시의 큰 비중을 차지하고 사용자 요청이 전부 파일 업로드로 시작하기 때문에 반드시 해결해야 하는 문제입니다. 이를 해결한 방법을 작성합니다. 본론 - 기본 업로드 방식 private String sendFileToStorage(final RawFileData fileData) { try (final InputStream inputStream = fileData.getContent()) { String fileName = fileData.getStoreFileName(); BlobInfo blobInfo = BlobInfo.newBuilder(bucket, fileName) .setContentType(fileData.getContentType()) .build()..
서론 9, 10주차에는 UXR에 사용할 모델 리서치를 마무리하고 적용하는 시간을 가지기로 하였습니다. 본론 - 가구 모델 리서치 1. openLRM 배경이 없는 이미지만 가능하여, 입력 데이터 전처리를 해주어야 하며 그러기에 인퍼런스 과정에서 Segmentation 과정이 필요합니다. 단일 이미지 1장으로 결과를 내며 CPU 사용 시 10초 내로 가능합니다. 하지만 출력 결과가 다소 거친 경향이 있습니다. 2. One-2-3-45 / One-2-3-45++ Segmentation 과정을 포함하고 있기에 배경을 지워줄 필요가 없으며, 발전 가능성을 보입니다. 하지만 대부분 약간 뭉뚱그리한 결과가 나옵니다. => 결론 가구 이미지 입력 데이터 전처리를 위해 화질 개선이 필요할 수 있습니다. 사용자들이 대부분..
서론 8주 차 지속적인 모델 세미나를 하고 평가 지표를 설계합니다. 본론 - 모델 리서치 이제 도면 모델과 실사화 모델 관련하여 도면, 실사화, 가구 팀을 나누고 모델 리서치를 진행합니다. 1. 도면 모델링 plan2scene 저희가 원하는 도면 모델링은 도면을 입력으로 넣으면 3D reconstruction과 텍스쳐 입히기를 모두 해주는 모델입니다. 3D로 재구성 이후 텍스쳐 입히기라면 이 모델은 2번째 단계인 텍스쳐 입히기 모델이었습니다. 3D 재구성은 임의로 해주어야 하며, 3D 메시가 주어질 때 자연스러운 텍스쳐를 보장한다고 합니다. 물론 3D 재구성이 선행되어야 하지만, 자연스러운 텍스쳐 단계에서 사용할 수도 있겠다고 생각하였습니다. 2. 공간 모델링 MVSFormer MVS 기반 모델은 속도는..
서론 RDB에 저장하던 RefreshToken의 Network I/O를 개선하기 위해 In-Memory Redis를 도입합니다. 또한, RefreshToken을 도입하여 AccessToken이 탈취 되더라도 인증하는 기능을 추가합니다. 아래 글에서 이어지는 내용입니다. -> 깃허브 https://github.com/SangBeom-Hahn/Capstone_Develop/commit/670912b9588debce0f81d223f0a6bf85e5955928 feat: 2단계 인증 구현 · SangBeom-Hahn/Capstone_Develop@670912b *feat: AuthService 기능 구현 *feat: LoginInterceptor 기능 구현 *feat: RefreshTokenSaveRespons..
서론 레벨 2 프로젝트가 마무리되고 있는 가운데, 본격적인 레벨 3 프로젝트 도입을 위해 프로젝트 진행 방식을 정립하고, 주제를 구체화합니다. 본론 - 기획 이슈(실제 vs 퀄리티) nerf 모델 결과를 보면 본인의 공간을 모델링할 수 있는 장점이 있지만, 퀄리티를 높이기 어렵다는 기술적 한계가 존재합니다. 반면, 도면을 제공하고 3D화 하거나, 미리 준비된 공간을 제공하는 버전은 퀄리티는 좋으나 실제 본인의 방이 아니라는 트레이드오프가 있습니다. 기술적 한계 시간 타당성 분석 처음 기획했을 때는 실제를 고수하기로 했지만, 위 같은 이유로 보다 구체적인 주제를 잡기로 했습니다. -> 주제 구체화의 포인트 서비스 핵심 가치 서비스 타겟층 기술적 한계 기존에 있는 서비스를 구현할 경우 구현에 의미가 있지만,..