Apple Developer Academy @ POSTECH

[제.앱.소] '들랑날랑' - 16살 차이나는 형제의 대화법

Xerath(제라스) 2024. 6. 1. 21:25
728x90
반응형

서론

안녕하세요~! 개발자 제라스입니다! 👋🏻🤖👋🏻

 

최근 회고에서 여러번 언급했듯이 앱을 만들고 있었는데요...!

3주라는 기간동안 Apple Developer Academy@POSTECH에서 진행한 MC2 프로젝트로 '들랑날랑'이란 앱을 출시하게 되었습니다.

들랑날랑

 

과거에도 정말 여러 앱들을 만들어보고 출시하면서, 심지어 판매까지 해보는 경험들을 해보았지만 아쉬운 건 그것의 결과물에 몰두하다가 결국 과정에서 얻은 성장과 밟아온 과정들을 남기지 못했던 점인 것 같아요...!😭😭

 

똑같은 결과물은 누구나 나중에도 만들 수 있지만(like 클론코딩)

이전부터 생각했던

 

'이런 기획 or 개발에 있어서 여러 방식이 있었을 텐데 우리 팀은 왜 이런 선택을 했을까?'

'우리는 이것을 통해 어떤 것을 배웠고 이번을 통해 얻은 키워드들로 무엇을 학습해나가야 할까?'

 

에 초점을 맞추고 정리를 하는 것이 팀 프로젝트에서 너무나도 중요한 것이기에 이번을 계기로 제대로 기록을 남겨두고자 합니다!😄😄

 

제가 골든타임무새긴 하지만...🥲🥲

회고와 같이 이런 과정들의 기억도 골든 타임이 있기에,,,

나중엔 머리 속에서 지워져나가기에 머릿 속에 생생할 때 남겨놔야하잖아요 ㅎㅎㅎ

 

그.래.서! 이번 프로젝트를 마무리 짓는 이 시점에 우리 JWC팀의 '들랑날랑' 앱 회고를 남겨보고자 합니다.

프로젝트란 경험의 가치는 결과물이 아닌 '과정'에서 나온다고 생각하기에 이것에 초점을 맞춰서 정리해보겠습니다!

 

그럼 한번 시작해보겠습니다!

'들랑날랑'의 시작은...?

 

저희 팀 JWC가 만들어진 시작점의 사진입니다 ㅎㅎㅎ

러너들끼리 본인이 생각하는 주제들을 적고 여러 사람들에게 소개를 하다가 공감대가 형성된 주제를 중심으로 모여서 팀을 결성했습니다.

이때, 저희 팀은 아이를 좋아하거나 아이 맞춤형 앱을 만들어보고 싶은 팀원들이 많이 모였어요 ㅎㅎㅎ

 

저도 워낙 아이들을 좋아하기도 하고 과외를 통해 코딩교육을 하고있는 러너로서 추후 교육쪽에서도 기획쪽 방면에서 성장할 수 있을 것 같아서 참여를 하게 되었습니다.

사실 더 중요했던건 이미 모여있던 팀원들이 너무도 좋은 사람들인 걸 알고 있었고 제가 안정감을 갖고서 프로젝트를 진행하게 되면서 팀 소통과 관련해서 많은 것들을 팀원들로부터 배울 수 있을 것 같아서 참여했습니다.

 

유저를 위한 앱, 정말 유저를 위한 거 맞아?(feat.  앱 기획과정)

먼저 위처럼 우리가 해결하고자 한 챌린지는 '15년생 동생과 99년생 형이 소통을 증진하도록 하자'였습니다.

그래서 일단 저희는 유저가 될 '들이'(이하 유저)를 인터뷰해보기로 했습니다.

이렇게 잡혀진 1차 인터뷰를 통해 처음으로 유저의 얘기들을 많이 들을 수 있었습니다.

1차 인터뷰 주제

유저의 관심사, 좋아하는 것들, 핸드폰 사용과 관련한 것들, 형에 대한 관심사 등 여러가지 질문들을 통해 유저를 알아갈 수 있었습니다.

그렇게 저희는 회의를 거쳐보았습니다.

 

위처럼 들이와 소통을 위해 어떤 요소들을 이용하는 것이 좋을지 인터뷰를 통해 찾아보고자 했습니다.

어떤 방식(형태) + 콘텐츠(그 안에 들어갈 내용)를 합쳐서 하나의 소통 수단을 만들어내고자 했습니다.

그렇게 고민을 하다보니 '과연 무엇이 우리의 유저에게 좋을까?'라는 고민이 들었죠.

그러다 멘토인 '도라'와 얘기를 하던 중 '우리는 생각보다 들이가 형과 소통하는 목적을 잘 모른다.'는 생각이 들었습니다.

 

그래서! 이번에는 '유저가 형과 소통을 하려는 목적'에 더 초점을 맞춰서 다음과 같은 질문들을 가지고 2차 인터뷰를 준비했습니다.

유저의 형에 대한 생각, 형과의 소통수단, 목적 등을 질문함으로써 유저가 생각하는 형과의 소통 목적을 찾고자 했습니다.

그렇게 알게된 형과의 소통 목적은 '평소 형 목소리가 듣고 싶을때, 부모님과 TV를 보다가 비슷하게 생긴 사람이 나올 때 생각나고 보고싶어서' 였습니다.

하지만... 이걸 가지고 과연 우리의 팬이 될 유저를 충족시킬 수 있을지,

그리고 단순히 전화를 하거나, 카톡을 하면 되는데 이런 앱들이 못하는 본질적인 문제 해결을 할 방법들이 고민이었습니다.

 

그러다가 마주한 Apple Team Review...!

Apple의 인도네시아 PM인 Lily Manoharan과의 리뷰시간을 가지면서 큰 전환점을 갖게 되었습니다.

 

현재 우리가 생각해오던 문제들을 듣고서 릴리가 짚어준 것은

'과연 너네는 들이라는 유저가 형과의 소통에서 갖고있는 감정에 집중해보았는가?' 였습니다.

이를 통해 우리는 유저의 '감정'에 집중해서 1, 2차 인터뷰, 심지어 실제 형이 집에 갔을 때 나눈 대화들을 분석해보며 해결할 부분을 찾아내고자 했습니다.

 

그 결과, 발견한 부분은 '유저는 형과 대화 시 자랑하는 것을 좋아하는데, 스스로가 너무 말이 많아서 형을 방해한다고 생각한다'는 점이었습니다.

이것을 통해 팀원인 자운드(형)를 통해 알아보니 그렇게 생각하지 않지만 말이 너무 빠르고 대화 주제가 확확 바뀌기 때문에 소화를 못해내어 답변을 어려워하고 있었습니다.

 

그렇게 우리는 위처럼 발견한 것들 중 형의 입장이 아닌 유저의 입장, 더 나아가서는 유저의 감정에 맞춰서 Refine했고 챌린지를

'들이(유저)가 형에게 하는 대화가 방해라고 느끼지 않도록 하자'로 Refine하게 되었습니다.

사실 이렇게 챌린지가 바뀔 수 밖에 없는 건 너무나도 당연한 것이었습니다...😢😢

유저의 입장을 듣고 주제를 적어서 모인 것이 아니라 형의 니즈를 적은 앱이었을 뿐이니까요..!!ㅎㅎㅎ

 

그리고 이를 바탕으로 '형이 들이와의 대화에서 무엇이 좋았는지 들이가 알 수 있도록 하자'라는 Solution Concept을 정했습니다.

이렇게 챌린지와 이에 대한 Solustion Concept을 정하고나니 이에 대한 App Statement를 뽑아내는 것은 더욱 수월해졌습니다.

들이가 소통 시 가장 좋아하는 자랑을 녹여낼 수 있으면서도 방해가 되지 않는다는 것을 앱을 통해 완충하기 위해서 저희 팀은

<들이가 형에게 마음껏 자랑할 수 있고, 상장 수여를 통해 공감할 수 있도록 도와주는 앱>을 팀의 App Statement로 정하게 되었습니다.

 

앱 주제를 정한다고 앱이 뚝딱 만들어지는 것은 아니다

사실 너무나도 당연한 말이지만 이번 앱 기획과정에서 개발보다 더 생각을 쏟아야하는 부분이라고 느꼈습니다.

 

앱 주제를 뽑아내기까지의 기획과정 중 사실 앱의 기능들이 생각나는 것은 어쩔 수 없는 것 같아요...!!

('와...이런 주제? 그럼 이런 모습의 앱은 어떨까?', '이런 기능이 들어가지 않을까?'... 닥터 스트레인지 마냥 팀 회의 중에 다들 미래에 잠시 휑휑 다녀오곤 했습니다 ㅋㅋㅋㅋㅋㅋㅋ)

 

근데 막상 앱을 디자인하다보니 여러가지 기획 부분에서 더 정할 요소들을 발견했습니다.

1. 탭의 구성은 어떻게 하는 것이 좋을까?

먼저, '탭이 없으면 안될까?'란 고민을 했습니다.

고민 1. 탭은 어떤 기준으로 분리할까?

탭을 나누는 것에 있어서 기준은 기능, 개념, 사용 순서, 유저의 진입 순서 등을 고려해서 정할 수 있는데,

저희는 <들이가 형에게 마음껏 자랑할 수 있고, 상장 수여를 통해 공감할 수 있도록 도와주는 앱>라는 App Statement를 참고해서 자랑/상장을 기준으로 나누었습니다.

즉, 앱의 사용에 있어서 자랑을 하는 공간 / 상장을 수여하는 공간처럼 유저가 앱을 사용하는 행위의 종류를 기준으로 나누게 되었습니다.

 

고민 2. Home 탭을 굳이 만들 필요가 있을까?

사실 정말 많은 앱들이 Home 탭을 가지고 있잖아요?

근데 이 Home 탭이 과연 우리의 앱 유저, 아이가 사용하는 데에 있어서 오히려 이것이 단조롭게 파악하기에는 도움이 되지 않을 것 같았습니다.

그래서 과감히 Home 탭을 탭의 구성에서 아예 버려두고 시작했습니다.

 

고민 3. 탭을 만들기 위해서 기능을 분리하진 말자.

우선 탭을 최대한 줄이되 유저가 생각하는 탭에 대한 기대를 명확하게 알 수 있도록 구성하기로 했습니다.

탭이 많을수록 유저의 앱 사용에 있어서 탭 카운팅을 최소화하기 어려워지기 때문에 탭은 줄이는 대신 그 탭 버튼 내에 의미를 더 자연스럽게 부여할 수 있도록 했습니다.

 

이때 단순히 자랑 / 상장 이라고 하면 이해가 어렵기에...

자랑을 받고 보낼 수 있는 것을 간접적으로 알려주는 '자랑 우체국'.

상장들을 둘러볼 수 있고 좋아하는 자랑들만을 전시(분류)해둘 수 있는 '상장 박물관'.

이런 워딩으로 두 탭명을 정하게 되었습니다.

2. 유저가 앱을 자주 사용하게 하려면 어떻게 해야할까?

들이가 과연 '들랑날랑'을 어떻게 해야 자주 들어가고 싶어할까?란 고민을 해보았습니다.

이때 제일 중요한 것은 들이가 좋아하는 것을 쉽게 볼 수 있게 하는 것이었습니다.

시도 1. 상장을 좋아하는 유저

일단 앱 자체를 크게 '자랑과 상장'을 기준으로 나눠보았습니다.

먼저, 자운드(형)의 말에 의하면 들이는 '자랑'을 하는 것도 좋아하지만 그 자랑을 하는 근본적인 이유는 '칭찬(상장)'을 받을 수 있기 때문이었습니다.

 

그래서 우리의 앱은 처음 접근 시 가장 먼저 '상장 박물관' 탭을 띄우기로 했습니다.

그리고 굳이 '자랑 우체국' 탭에서 상장을 볼 수 있는 것을 차단하는 기획을 함으로써 확실하게 '상장 박물관' 탭에 힘을 실어주었습니다.

(자랑 우체국에서는 단순히 '자랑을 작성하거나 상대방의 자랑을 확인하여 상장을 수여하는 것만 가능'하도록...!!)

 

결국 유저는 처음 진입할 때 마주하게 되기에 상장 탭이 앱 사용에 있어서 가장 인상깊을 것이고, 이를 확인할 수 있는 유일한 탭으로써 가장 접근을 많이 하게 되어 앱의 정체성으로 '상장을 받을 수 있는 앱'으로 자리를 잡을 수 있을 것이라고 봤습니다.

'들랑날랑' 앱이 이렇게 인지된다면 유저는 앱의 사용 목적, 즉, 형에게 (자랑하여) 칭찬을 받을 수 있다는 것을 달성할 수 있기에 이 앱을 자주 사용할 것으로 예상했습니다 ㅎㅎ

시도 2. 아이인 유저가 좋아하는 소재

우리는 사실 1, 2차 인터뷰를 통해 유저가 좋아하는 물건을 알고 있었습니다.

인터뷰 과정에서 들이가 좋아하는 것으로 선인장, BMX 자전거를, 형인 자운드와의 대화를 통해 보석, 문어 등을 상장의 소재로 사용해보았습니다.

우리가 생각해야 하는 것은 유저의 범용성이 높을 필요가 없고 오직 한 유저, 들이만을 위한 앱이기에 그 유저가 좋아하는 것을 가지고 상장프레임을 만들었습니다.

그 결과 상장을 가장 좋아하는 유저 입장에서 맞춤 제작된 프레임을 통해 더욱 호감도를 가질 것으로 예상했습니다.

 

그렇게 만들어진 '들랑날랑'은?

 

유저 선택

먼저 '들랑날랑'은 첫 페이지에서 사용자가 산이(형)인지 들이(동생)인지 정하고 들어갑니다.

이번 MC2 기간에 네트워킹을 구현하는 것보단 사용자 분석에 집중을 더하는 것이 더 중요한 성장의 목표였기에 이렇게 remote하지 못한 구현을 하게 되었습니다.

이를 개선하기 위해 다음주를 기점으로 Firbase 혹은 서버를 구현해서 데이터 연동을 추가할 예정입니다.

 

상장 박물관 탭

상장 박물관 탭에서는 이번주 작성된 상장들을 Carousel로 만들어 상단에 둠으로써 최근의 상장들만 모아보도록 했습니다.

하단에서는 지금까지 작성된 상장들을 모두 모아볼 수도 있고, 즐겨찾기에 추가한 상장들만 확인할 수도 있습니다.

 

 

위 영상은 따로 카드 flip 뷰로 카드를 뒤집는 기능 뷰를 구현해서 해당 상장의 내용을 자랑과 함께 볼 수 있도록 했습니다.

 

 

자랑 우체국 탭

자랑 우체국 탭은 산이와 들이의 자랑을 색깔로 구분지어서 표시되는 공간이에요!

이때 자랑은 상장이 부여되지 않은 것들만 모아둠으로써 자랑에서 굳이 상장을 찾지 않도록 했습니다!!

또한, 자랑의 색상도 '들이가 좋아하는 색상-초록색, 산이가 좋아하는 색상-파란색'을 기준으로 정해두었어요ㅎㅎㅎ

 

'들랑날랑'이 가져다준 성장

이렇게 '들랑날랑' 앱을 구현하면서 사실 성장한 부분들이 정말 많았습니다.

저는 어떤 프로젝트를 할 때 회사에서의 프로젝트나 결과물이 목적인 프로젝트가 아닌 이상 결과물에 크게 신경을 쓰진 않는 편입니다.

이 프로젝트를 하는 이유가 결과물이 아니라 그 과정에서 성장한 부분들을 제대로 가져가는 것이라고 생각하기 때문에요 ㅎㅎㅎ

 

그래서 프로젝트 쇼케이스가 끝나고 스스로 성장한 부분들을 정리해봤습니다.

 

git 협업 with git project

가장 큰 것 중 하나가 git 협업이었습니다...!!

지금까지 git 협업을 많이 해보았지만 직접 project 페이지를 파고 issue를 등록하거나 템플릿들을 생성해보는 경험을 해보지 못해서 아쉬움이 많았거든요??

근데 팀원들 중 git을 그나마 써볼 줄 아는 사람이 저이다보니 제가 책임을 지고 이것들을 해내야 했습니다.

이때 든 생각은...

 

이런 경험이 필요한 시점이었는데, 실패해도 부담되는 상황도 아니고 오히려 이것저것 만져보면서 팀 협업을 할 수 있었기에 정말 재밌게 살펴봤던 거 같아요 ㅋㅋㅋㅋㅋㅋㅋ

또한 git을 잘 모르는 팀원들에게 사용방법을 알려주고 PR을 쓰고 merge하는 과정들을 설명해주면서 팀이 함께 성장한다는 기분이 들어 좋았습니다.

이러한 과정들 덕분에 다음에 프로젝트를 진행할 땐 조금 더 자신있게 git 협업을 할 수 있지 않을까 싶네요 ㅎㅎ

 

SwiftData 드디어 써보다..!

 

제가 이전부터 회고 글에 SwiftData를 써보고 싶다고 했었는데 하... 드디어 써봤습니다.

이틀 안에 SwiftData를 반영해야 했는데 생각보다 구현이 잘 안되더라구요.

이 부분은 바로 'enum 타입을 SwiftData 내부에서 사용하려고 하다보니 Predicate 부분에서 발생하는 문제'였어요!

 

이 외않되의 협곡에서 폭풍 구글링을 거쳤는데...

일단 결론 내린 것은 아직 Apple에서 만든 SwiftData가 완전치 않기에 발생하는 잔오류라는 것이었습니다.

 

그래서 결국은 이것을 기본 타입들로 변경해서 구현했습니다.

물론 enum타입으로 property를 가진 채 predicate가 아닌 View 내부에서 혹은 computed property로 필터링을 거쳐도 되었지만,

사실 굳이 이걸 enum타입으로 지금 구현할 필요를 못 느꼈기에 가볍게 기본타입인 String으로 적용했습니다.

 

이 부분은 추후 조금 더 정리해보는대로 포스팅을 올려볼게요~!!

 

행동들이 팀에 미치는 시너지를 믿다

제가 앞서 저희 팀원들이 정말 좋은 사람들이 많다고 했었는데~~~

팀원 개개인의 능력들이 좋은 것들도 있지만 저는 팀원들의 마인드나 대화 방식에서 좋은 것들을 두고 한 얘기였습니다.

 

1. 상대방의 말을 끊지 않는 배려

제아무리 노력하더라도 상대방의 말을 끊는 경우가 발생하는데 저희 팀은 모두가 절대 상대방의 말을 끊지 않았어요!

혹여나 말을 끊는 것 같다 싶으면 혹시 말을 끊은 것 같다며 더 듣고 말하겠다고 하고 기다리는 습관을 모두가 갖고 있더라구요 ㅎㅎ

그 덕에 서로가 '팀원들을 배려한다', '상대방의 말을 더 듣고 자신 생각을 고집하지 않는다'란 생각을 은연 중에 가지면서 배려가 중심인 회의가 기본으로 깔리게 되었습니다.

 

2. 나의 주장 고집 대신 상대방의 주장을 빌드업하는 것의 중요성

이건 MC1 때 느끼고서 이번 MC2 프로젝트에서 확인해본 것입니다.

 

사실 회의를 하다보면 어느 시점엔 의견 충돌이 발생하곤 하는데 이것을 대할 때 어느정도 깊이가 있어지고 상대방의 강한 주장이 부담되는 순간 고집으로 느껴지곤 합니다.

이것을 어느 집단에선 치열한 토론을 통해 좋은 방안을 내곤 하는데, 저는 오히려 어느정도의 강한 주장 이후엔 상대방의 것을 더 빌드업 시켜보려는 노력이 오히려 좋을 때가 많다는 것을 느꼈습니다.

 

내 주장이 맞을 수도 있지만 사실 상대방의 주장도 나름 상대방에겐 최선의 생각이고, 그만큼 고심한 주장이거든요...!

오히려 상대방의 주장을 더 빌드업시킨다면 갈등이 발생할 상황을 방지할 수도 있고, 나의 생각이 묻혀진 상대방의 의견을 만들 수도 있고, 팀원의 의견을 더 반영하려는 모습에서 또 배려심이 깔림으로써 팀워크가 높아지는 것을 이번에 확인할 수 있었습니다.

 

또 이런 상황이 한번 발생하고 나면 그 팀원도 이기적인 팀원이 아니라면 나중에는 나의 의견을 빌드업 시켜줌으로써 훨씬 좋은 의견을 만들 수 있거든요??

미래의 좋은 의견들을 만들어내는 데에도 가치있는 씨를 뿌리는 행동이라 볼 수도 있을 것 같습니다ㅎㅎㅎ

 

그래서 이런 행동이 단순히 내 의견을 접고 들어가는 것이 아니라 어느정도 괜찮은 대화가 오갔다면 한번 쯤은 이런 모먼트로 대하는 것이 팀 전체에 시너지를 줄 수 있다는 것을 느꼈습니다.

유저는 우리의 팬이다

이번 MC2 프로젝트를 시작하기 전 우리의 미션은 '어떤 고유한 유저 1명을 위한 앱을 제작하는 것'이었습니다.

즉, 범용성을 고려하지 말고 오직 특정한 사람을 위해 앱을 만들어내야 했죠.

 

'이 앱의 유저는 우리의 팬이다. 그 사람의 니즈에 맞게 결정하자.'

 

제가 2년 전 회사에서 앱을 개발할 때 대표 분이 늘 저에게 강조하던 부분이었는데 지금은 제가 가장 좋아하는 신념이 되었는데,

저는 이번 프로젝트의 미션에 딱 들어맞고 더 가까이 우리의 팬에게 다가갈 수 있는 특별한 기회라고 생각했어요!

 

생각해보면 보통 앱 개발을 하면 우리의 유저가 어떤 사람들일지는 알지만...

100% 이 사람을 이해하고 만들 수 있는 경험은 흔치는 않잖아요?

누구인지 완전 알고, 그 사람과의 대화를 통해 분석해서 맞춤 앱을 만드는 경험을 한 덕분에 유저를 고려하는 방법들을 많이 생각해볼 수 있어서 좋았습니다.

이 경험이 언젠가 앱의 특성을 분석해야 하는 상황이 오면 도움이 될 것 같단 생각이 드네요~!!

 

앞으로의 팀 JWC의 끝맺음은...

이번 프로젝트는 앱 개발 과정보단 기획적인 부분에서 많은 성장을 가져갈 수 있었습니다.

적은 수의 테크가 있는 팀에서 굳이 어려운 개발적 성장을 가져가기보단 의미있는 기획 부분에서의 성장이 더 좋은 성장이었지 않나 싶습니다.

 

이렇게 마무리 된 시점에서 앞으로 1-2주동안 기능을 추가하고 더 리팩토링을 거쳐볼 예정입니다.

팀의 쇼케이스가 끝나자마자 다같이 모여서 앞으로의 우리 팀의 가까운 미래를 얘기해본 결과...

조금 더 개선을 해보는 작업을 하는 것에 모두가 마음을 가지고 있었거든요..!!

 

그래서 다음과 같은 얘기들을 나누었습니다.

 

특히, 직접 유저를 만나서 User Test를 거치면서 개선을 할 부분들을 많이 찾았기에 이때 발견한 요소들이 많이 들어간 계획이라 더 유저를 고려한 개선점이라 기대가 되는 것 같아요 ㅎㅎㅎ

차차 개선해보면서 App Store에 올려볼 예정인데 혹시나 올라오게 된다면 or 지금 올라와있다면 다운로드&피드백 부탁드립니다~!!😙😙

 

마무리

이렇게 4주동안 하나의 프로젝트를 기획하고 이를 디자인&개발하는 과정을 거치면서 많은 것을 배운 것 같네요 ㅠㅠ

좋은 팀원들을 만난 것도, 또 이 러너들과 함께 가치있는 것들을 배울 수 있어서 행복한 기간이었습니다.

 

이 프로젝트 경험을 통해 얻은 성장점들을 잘 기억해두고서 앞으로 조금 더 팀에 긍정적인 분위기를 만들고 팀에 어떤 형태로든 기여를 더 많이 하는 개발자가 되어야겠습니다.

 

마지막으로 함께 해준 가장 아끼는 팀원들인 레모니, 자운드, 젠, 해나, 헤디 모두 감사합니다!👍🏻🥹👍🏻

 

긴 글 읽어주셔서 감사합니다!

 

관련

https://github.com/DeveloperAcademy-POSTECH/2024-MC2-M16-DeulLangNalLang

 

GitHub - DeveloperAcademy-POSTECH/2024-MC2-M16-DeulLangNalLang: 들랑날랑 - 들이랑 나랑 만드는 소통공간

들랑날랑 - 들이랑 나랑 만드는 소통공간. Contribute to DeveloperAcademy-POSTECH/2024-MC2-M16-DeulLangNalLang development by creating an account on GitHub.

github.com

 

 


아직 꼬꼬마 개발자입니다.

더 나은 설명이나 코드가 있다면 언제든 환영입니다.

적극적인 조언과 피드백 부탁드립니다!

 

그럼 오늘도 개발 가득한 하루되세요!

- Xerath -

🤖🤖🤖🤖🤖🤖🤖

 

728x90
반응형