{"id":20975047,"url":"https://github.com/boostcampwm2023/ios10-openlist","last_synced_at":"2025-10-04T04:57:37.408Z","repository":{"id":205755463,"uuid":"714856814","full_name":"boostcampwm2023/iOS10-OpenList","owner":"boostcampwm2023","description":"친구와 함께, AI와 함께 체크리스트 작성을! 오리","archived":false,"fork":false,"pushed_at":"2024-03-11T01:53:01.000Z","size":84609,"stargazers_count":16,"open_issues_count":16,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-12T20:04:35.680Z","etag":null,"topics":["clova-studio-api","crdt-algorithm","gpt-4-api","ios-swift","server-nestjs"],"latest_commit_sha":null,"homepage":"https://openlist.kro.kr","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boostcampwm2023.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-06T01:33:23.000Z","updated_at":"2025-02-23T08:22:44.000Z","dependencies_parsed_at":"2023-12-10T06:19:00.018Z","dependency_job_id":"594dd251-8745-4cea-9c47-850b94618a24","html_url":"https://github.com/boostcampwm2023/iOS10-OpenList","commit_stats":null,"previous_names":["boostcampwm2023/ios10-openlist"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/boostcampwm2023/iOS10-OpenList","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2FiOS10-OpenList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2FiOS10-OpenList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2FiOS10-OpenList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2FiOS10-OpenList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boostcampwm2023","download_url":"https://codeload.github.com/boostcampwm2023/iOS10-OpenList/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2FiOS10-OpenList/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278266895,"owners_count":25958733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clova-studio-api","crdt-algorithm","gpt-4-api","ios-swift","server-nestjs"],"created_at":"2024-11-19T04:37:31.740Z","updated_at":"2025-10-04T04:57:37.391Z","avatar_url":"https://github.com/boostcampwm2023.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://github.com/boostcampwm2023/iOS10-OpenList/assets/53855302/314335b7-9f27-42ff-8eda-2078135970ff)\n\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fboostcampwm2023/iOS10-OpenList\u0026count_bg=%237B68DC\u0026title_bg=%23464775\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=hits\u0026edge_flat=false\"/\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/boostcampwm2023/iOS10-OpenList.svg?style=flat\u0026label=star\"\u003e\n\u003cimg src=\"https://github.com/boostcampwm2023/iOS10-OpenList/actions/workflows/main.yml/badge.svg\"\u003e\u003c/div\u003e\n\u003cp align=\"center\"\u003e\n    \u003ccode\u003e2023.10.17 ~ \u003c/code\u003e\n\u003c/p\u003e\n\n\n# Content\n- [소개영상](#소개영상)\n- [주요기능](#주요기능)\n- [기술적 도전](#기술적-도전)\n- [기술 스택](#기술-스택)\n- [아키텍처](#아키텍처)\n- [문서](#프로젝트-문서)\n- [팀 소개](#TEAM)\n- [위키](https://github.com/boostcampwm2023/iOS10-OpenList/wiki)\n\n\u003cbr\u003e\n\n# 소개영상\n\nhttps://github.com/boostcampwm2023/iOS10-OpenList/assets/51476641/29ab52ca-06a4-4a99-a6af-4290936f8823\n\n\n# 주요기능\n![image](https://hackmd.io/_uploads/HJu_NVS8p.png)\n\n\n\n## AI\n\u003e 체크리스트 작성이 어려운 사람들을 위해 AI 추천기능을 구현하였습니다.\n\u003e\n\u003e GPT-4를 이용한 체크리스트 캐싱 시스템, CLOVA Studio를 이용한 평가 시스템을 도입하여 빠르고 정확한 정보를 제공합니다.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth style=\"width: 33%;\"\u003e체크리스트 작성을 위해 카테고리를 선택해주세요\u003c/th\u003e\n    \u003cth style=\"width: 33%;\"\u003e선택된 카테고리로 AI가 체크리스트를 추천해줘요\u003c/th\u003e\n    \u003cth style=\"width: 33%;\"\u003eAI가 추천한 목록들로 개인 체크리스트를 만들어요\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://hackmd.io/_uploads/Sk9dT6SLp.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/boostcampwm2023/iOS10-OpenList/assets/51476641/0580a8c1-164e-4567-b78e-b0bdd745e428.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://hackmd.io/_uploads/B1QxCaHIp.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n\n\n\n## 동시편집!\n\u003e 여러명과 동시에 체크리스트를 작성하기 위해 동시편집 기능을 구현하였습니다.\n\u003e \n\u003e 동시편집은 CRDT 알고리즘 중에 RGATreeSplit 방식을 채택하였습니다.\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth style=\"width: 33%;\"\u003e개인 체크리스트를 함께 작성하도록 변경할 수 있어요\u003c/th\u003e\n    \u003cth style=\"width: 33%;\"\u003e친구를 초대하여 체크리스트를 같이 작성할 수 있어요\u003c/th\u003e\n    \u003cth style=\"width: 33%;\"\u003e동시편집시 현재 편집중인 친구의 위치를 알 수 있어요\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://hackmd.io/_uploads/B1UOiaH8T.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://hackmd.io/_uploads/B1MZ3pBU6.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://hackmd.io/_uploads/SkYjqTrI6.gif\" style=\"width: 100%;\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n- [[동시편집] CRDT vs OT](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-CRDT-vs-OT)\n- [[동시편집] 왜 RGATreeSplit 방식을 채택하였나?](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-%EC%99%9C-RGASplitTree-%EB%B0%A9%EC%8B%9D%EC%9D%84-%EC%B1%84%ED%83%9D%ED%95%98%EC%98%80%EC%9D%84%EA%B9%8C%3F)\n- [[동시편집] ID 부여 방식](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-CRDT-ID-%EB%B6%80%EC%97%AC%EB%B0%A9%EC%8B%9D)\n- [[동시편집] Tree 방식에서 밸런싱](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-Tree-%EB%B0%A9%EC%8B%9D%EC%97%90%EC%84%9C-%EB%B0%B8%EB%9F%B0%EC%8B%B1)\n- [[동시편집] 자소분리 문제 해결과정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-%EC%9E%90%EC%86%8C%EB%B6%84%EB%A6%AC-%ED%95%B4%EA%B2%B0%EA%B3%BC%EC%A0%95)\n\n# [기술적 도전](https://msmspark.notion.site/OPENLIST-a14eede6efb643698f166a0512f4206d?pvs=4)\n## 📡 [Redis Pub/Sub과 서버 다중화]()\n- 🔗 **서버 다중화**: Redis의 Pub/Sub 모델을 활용하여 서버 다중화를 구현하고, 효율적인 트래픽 분산 및 높은 확장성을 실현했습니다.\n\n- 🔄 **실시간 데이터 스트리밍**: 앱에서는 CRDT를 활용하여 실시간으로 체크리스트를 업데이트하고, 서버는 Redis의 list 자료구조를 이용해 데이터 어레이를 모두 유지하여 사용자의 연결의 끊어져도, 문서에 대한 실시간 최신 상태를 유지합니다.\n\n\n## 🌐 [Pipe \u0026 Filter 아키텍처와 인공지능 데이터 캐싱](https://msmspark.notion.site/Pipe-Filter-fd5f1bbd49934b978f820e9b4ff8d450)\n- ⚡ **응답 시간 최적화**: DB에서 카테고리별로 캐싱된 데이터를 활용하여 Clova Studio API 응답 시간을 단축했습니다.\n\n- 🛠 **캐싱 파이프라인**: Pipe \u0026 Filter 아키텍처를 적용하여 순차적 데이터 처리와 Redis Pub/Sub을 통한 효율적인 데이터 관리를 구현했습니다.\n\n![이미지](https://github.com/boostcampwm2023/iOS10-OpenList/assets/42074365/ee8fb324-c826-47de-b0cc-e0f712cb4380)\n\n\n## 💻 [관리자 웹 페이지를 통한 시스템 모니터링]()\n- 📊 **실시간 모니터링**: 프로덕션 환경에서 서버 상태를 모니터링하고 장애를 신속하게 관리할 수 있는 관리자 페이지를 구축했습니다.\n\n- 📈 **데이터 관리 및 로깅**: Redis를 통해 시스템 로그를 관리하고, 캐싱 데이터 생성 및 평가 파이프라인을 트리거할 수 있는 기능을 통합했습니다.\n\n\u003cimg width=\"2560\" alt=\"스크린샷 2023-12-15 오전 2 13 03\" src=\"https://github.com/boostcampwm2023/iOS10-OpenList/assets/51476641/f70c0b2a-fabf-46ae-9f92-921214ae93d3\"\u003e\n\nhttps://github.com/boostcampwm2023/iOS10-OpenList/assets/51476641/e1e9a40e-8562-4dd9-b6f3-8c79abe34c4f\n\n\n\n# 기술 스택\n\u003cdetails open\u003e\n\n\n\n\u003csummary\u003e\u003ch3\u003eiOS\u003c/h3\u003e\u003c/summary\u003e\n\u003cdiv markdown=\"3\"\u003e\n\n![Xcode](https://img.shields.io/badge/Xcode-15.0.1-blue?style=flat-square\u0026logo=xcode) ![macOS](https://img.shields.io/badge/macOS-Sonoma(14.0)-lightgrey?style=flat-square\u0026logo=apple)\n\n![Minimum Target](https://img.shields.io/badge/Minimum%20Target-16.0-blue?style=flat-square\u0026logo=apple)\n![UI Framework](https://img.shields.io/badge/UI%20Framework-UIKit-lightblue?style=flat-square\u0026logo=apple)\n![Async Framework](https://img.shields.io/badge/Async%20Framework-Combine-yellow?style=flat-square\u0026logo=apple)\n![Architecture](https://img.shields.io/badge/Architecture-Butterfly%20Architecture-orange?style=flat-square)\n\n![Others](https://img.shields.io/badge/Others-Core%20Data-green?style=flat-square\u0026logo=apple)\n![Open Source](https://img.shields.io/badge/Open%20Source-SwiftLint-red?style=flat-square\u0026logo=swift)\n\n\n\u003c/div\u003e\n\u003c/details\u003e\n\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003ch3\u003e💻 서버\u003c/h3\u003e\u003c/summary\u003e\n\u003cdiv markdown=\"1\"\u003e\n\n![NestJS](https://img.shields.io/badge/NestJS-v.10.2.0-brightgreen?style=flat-square\u0026logo=nestjs)\n![TypeScript](https://img.shields.io/badge/TypeScript-v.5.1.3-blue?style=flat-square\u0026logo=typescript)\n\n![PostgreSQL](https://img.shields.io/badge/Postgresql-v.15-blue?style=flat-square\u0026logo=postgresql)\n![TypeORM](https://img.shields.io/badge/TypeORM-v.10-orange?style=flat-square\u0026logo=typeorm)\n![Redis](https://img.shields.io/badge/Redis-v.7.2-red?style=flat-square\u0026logo=redis)\n\n![CLOVA Studio](https://img.shields.io/badge/CLOVA%20Studio-API-yellow?style=flat-square\u0026logo=naver) ![GPT-4](https://img.shields.io/badge/GPT--4-API-purple?style=flat-square\u0026logo=openai)\n\n![Docker](https://img.shields.io/badge/Docker-Tool-blue?style=flat-square\u0026logo=docker) ![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI/CD-blueviolet?style=flat-square\u0026logo=github-actions) ![Nginx](https://img.shields.io/badge/Nginx-Server-lightgrey?style=flat-square\u0026logo=nginx) \n![Ncloud](https://img.shields.io/badge/Ncloud-Service-yellow?style=flat-square\u0026logo=naver)\n\n\n\u003c/div\u003e\n\u003c/details\u003e\n\n\u003c/br\u003e\n\u003c/br\u003e\n\n# 아키텍처\n\n### iOS 아키텍처\n\u003cimg width=\"1000\" alt=\"IOS 아키텍처-버터플라이아키텍처\" src=\"https://hackmd.io/_uploads/Bkp5HTr8a.png\"/\u003e\n\n### 서버 아키텍처\n\u003cimg width=\"1000\" alt=\"서버 아키텍쳐\" src=\"https://github.com/boostcampwm2023/iOS10-OpenList/assets/51476641/3fb4dc55-104e-4866-9963-574dc1758d9b\"\u003e\n\n\n# 프로젝트 문서\n\n## iOS\n### 기술 문서\n|번호|제목|키워드|\n|:---|:---|:---|\n|1|[CRDT vs OT](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-CRDT-vs-OT)|**`CRDT`**|\n|2|[왜 RGATreeSplit 방식을 채택하였나?](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-%EC%99%9C-RGASplitTree-%EB%B0%A9%EC%8B%9D%EC%9D%84-%EC%B1%84%ED%83%9D%ED%95%98%EC%98%80%EC%9D%84%EA%B9%8C%3F)|**`CRDT`**|\n|3|[ID 부여 방식](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-CRDT-ID-%EB%B6%80%EC%97%AC%EB%B0%A9%EC%8B%9D)|**`CRDT`**|\n|4|[Tree 방식에서 밸런싱](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-Tree-%EB%B0%A9%EC%8B%9D%EC%97%90%EC%84%9C-%EB%B0%B8%EB%9F%B0%EC%8B%B1)|**`CRDT`**|\n|5|[자소분리 문제 해결과정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EB%8F%99%EC%8B%9C%ED%8E%B8%EC%A7%91%5D-%EC%9E%90%EC%86%8C%EB%B6%84%EB%A6%AC-%ED%95%B4%EA%B2%B0%EA%B3%BC%EC%A0%95)|**`CRDT`**|\n|6|[딥링크로 체크리스트 초대하기](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/딥링크로-체크리스트-초대하기)|**`딥링크`**|\n|7|[프레임워크 vs 라이브러리](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BFramework-\u0026-Library%5D-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%A7%9E%EC%9D%84%EA%B9%8C)|**`모듈`**|\n|8|[소켓통신: Any와의 싸움](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5B%EC%86%8C%EC%BC%93%ED%86%B5%EC%8B%A0%5D-Any-Type%EA%B3%BC%EC%9D%98-%EC%8B%B8%EC%9B%80)|**`소켓`**|\n\n### 의사결정 기록\n|제목|키워드|\n|:---|:---|\n[[ADR] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-iOS-애플리케이션-아키텍처-채택하기)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: SwiftLint 채택](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:--SwiftLint-채택)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: UI 영역에서 Combine 사용 결정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-UI-영역에서-Combine-사용-결정)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: Presentation영역의 ViewModel에서 Input Output 패턴 도입 결정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-Presentation영역의-ViewModel에서-Input-Output-패턴-도입-결정)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: 코디네이터 패턴 도입 결정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-코디네이터-패턴-도입-결정)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: 로컬 스토리지로 코어 데이터 사용 결정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-로컬-스토리지로-코어-데이터-사용-결정)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: Custom Network Foundation 라이브러리 구현 및 모듈화 결정](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-Custom-Network-Foundation-라이브러리-구현-및-모듈화-결정)|**`ADR`**|\n|[[ADR] 아키텍처 의사 결정 기록: 웹 소켓을 뷰 컨트롤러에서 연결하도록 변경](https://github.com/boostcampwm2023/iOS10-OpenList/wiki/%5BADR%5D-아키텍처-의사-결정-기록:-웹-소켓을-뷰-컨트롤러에서-연결하도록-변경)|**`ADR`**|\n\n## BE\n### 기술 문서\n|번호|제목|키워드|\n|:---|:---|:---|\n|1|[vpc 설정 feat. 서브넷 마스킹](https://www.notion.so/msmspark/vpc-feat-0a443c45a9ab4ea2abbab93ca5c9975d?pvs=4)|**`vpc`**|\n|2|[public, private 서버 인스턴스 생성](https://www.notion.so/public-private-e34aadf4fcd94b09846ef796573dae55?pvs=21)|**`서브넷`**|\n|3|[private 서버 인스턴스 NAT 게이트웨이 생성](https://www.notion.so/private-NAT-4986dbea4fa54f67bfd8e7b7edf85fd8?pvs=21)|**`NAT`**|\n|4|[로컬에서 ssh tunneling을 통한 private 인스턴스 속 postgresql 서버 접속](https://www.notion.so/ssh-tunneling-private-postgresql-6479857528d54b0e9919368209c7c465?pvs=21)|**`ssh tunneling` `postgresql`**|\n|5|[github actions와 docker를 통한 nest 서버 배포](https://www.notion.so/github-actions-docker-nest-dd8139f6d14348ec888d2029a6ff56c2?pvs=21)|**`github actions` `docker` `CI/CD`**|\n|6|[Logger 설정 - winston middleware to interceptor](https://www.notion.so/Logger-winston-middleware-to-interceptor-24540c46ce5b4d1894ef77618f233565?pvs=21)|**`Logging` `Winston`**|\n|7|[apple login](https://www.notion.so/apple-login-88997ef1090f49daabdc4cde407aa625?pvs=21)|**`OAuth` `Apple Login`**|\n|8|[NestJS 서비스에서 CLOVA Studio API 연동](https://www.notion.so/NestJS-CLOVA-Studio-API-86cfae6c9ca34baab47950ef00787b50?pvs=21)|**`CLOVA Studio API`**|\n|9|[Pipe \u0026 Filter 아키텍처와 인공지능 데이터 캐싱](https://msmspark.notion.site/Pipe-Filter-fd5f1bbd49934b978f820e9b4ff8d450)|**`Redis Pub/Sub`** |\n\u003c/div\u003e\n\u003c/details\u003e\n\n# TEAM\n|S006|S008|S021|J050|J080|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003cimg src=\"https://github.com/SeongHunTed.png\" width=\"120\"\u003e|\u003cimg src=\"https://github.com/klmyoungyun.png\" width=\"120\"/\u003e|\u003cimg src=\"https://github.com/wi-seong-cheol.png\" width=\"120\"/\u003e|\u003cimg src=\"https://github.com/pminsung12.png\" width=\"120\"/\u003e|\u003cimg src=\"https://github.com/YangDongsuk.png\" width=\"120\"/\u003e|\n|[김성훈](https://github.com/SeongHunTed)|[김영균](https://github.com/klmyoungyun)|[위성철](https://github.com/wi-seong-cheol)|[박민성](https://github.com/pminsung12)|[양동석](https://github.com/YangDongsuk)|\n|iOS|iOS|iOS|Backend|Backend|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostcampwm2023%2Fios10-openlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostcampwm2023%2Fios10-openlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostcampwm2023%2Fios10-openlist/lists"}