본문 바로가기
PJT

GPT랑 앱 만들기 1 - 설계편

by 정고정 2025. 4. 17.
반응형

 

나는 노래 듣는 걸 정말 좋아한다.

출근할 때도 듣고 퇴근할 때도 듣고 일할 때도 듣는다. 에어팟도 이어폰도 헤드폰도 없는 세상은 너무 가혹할 것 같다. 

원래는 애플 뮤직을 썼는데 유튜브 뮤직이 나오고 나서는 유튜브로 갈아탔다. 별의별 노래가 다 있음. 

 

그리고 핸드폰 만지는 거랑 정리하는 걸 싫어한다. 너무 재미없고 귀찮다. 

그래서 내 플레이리스트는 이 모양이다. 

 


노래 추가할 시점의 년도랑 계절로 막 추가하다가 충분히 찼다 싶으면 다음 시즌 플레이리스트를 판다. 

그 플레이리스트를 들으면 그 시절 추억이 막 떠오르고 좋음

그런데 문제가 있다. 

베이스 부스팅 된 것만 듣고 싶을 때도 있고, 클래식만 따로 듣고 싶을 때도 있고, 나른한 노래나 시끄러운 것만 듣고 싶을 때가 있다. 

동도롱동으로 시작하는 노래만 듣고 싶을 때도 있고 어쨌든 뭐가 많은데 그러면 그거에 대한 플레이리스트를 새로 파거나 해야 함...

그게 귀찮아서 그냥 노래 하나 잡고 자동재생으로 돌리는데, 알고리즘이 내가 원하는 곡들로 플리를 잘 짜 줘도 매번 저장하고 관리하기에는 여전히 귀찮다. 그래서 안 한다. 

 

퇴근에는 한 시간이 걸리는데, 그 동안 챗지피티한테 물어봤다. 

핸드폰으로 타자 치는 거 진짜 싫어하는데 정성들여 써 봄.

 

 

 

앗 나야 나 개발자 

회사라는 건 항상 사람한테 직업에 대한 현타를 주지만 어쨌든 나는 소프트웨어 개발자다. 

뭐 지피티가 개발자라면 해 볼만 하댔으니까 내가 못 해도 얘가 책임져 줄 것 같다. 

 

 

 

뭔가 내 말투도 이상해지고 있다. 어쨌든 나는 정말 아는 게 없다. 

대학 때 안드로이드 앱 좀 만져 본 게 전부임. 교수님이 날 좋아해 주셨고 학점도 실기 위주라 잘 받을 자신도 있었는데 문제는 내가 자다가 기말 시험을 안 쳤다.

인생은 원래 그런 거다. 내 방도 학교 수면실만큼 잠이 잘 왔으면 좋겠다. 

좀 죄송해서 재수강은 안 했다.

 

 

개발로드맵도 짜 줬다. 
근데ㅐ 얘가 Swift랑 Flutter 중에 뭘 쓸 거냐는 거임. 

 

 

 

슬쩍 떠봤는데 받아먹음 

뭐 내가 못 해도 니가 해 주겠지 지피티야 친하게 지내자

 

 

좀 편하게 갈 수 있는지 물어봤는데 

 

 

 

아무리 지피티가 도와 준다고 해도 뮤직 플레이어 기능까지 앱으로 구현하는 건 빡셀 것 같았다. 

그리고 나는 이미 비대면 노래방 프로젝트에서 배웠다. 

유튜브 API를 이용하는 프로젝트는 항상 계획 단계에서만 완벽하다. 

영상에 다른 플랫폼에서 재생 안 된다거나 하는 제약이 걸려 있으면 내가 유튜브 뮤직 앱을 통으로 클론코딩한대도 재생 못 시키는 거다. 

 

그리고 뭐... OAuth 2.0 많이 까먹긴 했는데 보통 사이드 프로젝트 하면 무조건 걸어놓는 거니까 괜찮아 보인다.

2찍이 되

 

 

고백한다. 

나는 회사를 헛다녔다. 

취준생인 나랑 4년차 백엔드 개발자인 나의 차이는 수입이랑 스트레스 밖에 없다. 

가끔은 과거의 내가 개발 더 잘 하는 것 같음. 

내 아키텍팅이나 개발 능력은 취준 당시에 멈춰 있는 것 같고 탕비실에서 빵 구워 먹는 스킬만 늘어난 것 같다. 

도저히 내 판단을 못 믿겠어서 챗지피티한테 교차 검증하라고 사고를 위탁해 줬다.

잘 부탁해

 

 

패키지 구조도 뜯어 냈다.

변형 레이어드 아키텍처 같은데 요즘은 Presentation Layer보다 api layer라는 네이밍이 유행인가 보다. 

 

 

물어보니까 더블 체크해 주는 지피티 친구.

뭐 사실 내 입장에서는 헥사고날 변형해서 쓰는 거 아니면 다 좋다. 

사실 기본 MVC 불렀어도 진절머리 내면서 챗지피티 버렸을 거다. 그건 진짜 구식이라는 편견에 십 년째 젖어 있다.

근데 편견을 버릴 생각은 없다.

지피티는 눈치 빠르고 사회생활을 잘 하는 똑똑한 친구다.

 

 

 

뭔 소리야 api 명세나 짜 줘 

그러니까 잘 짜주길래 노션에 복붙해 뒀다.

다른 소리지만 원래는 회사에서도 노션을 잘 썼는데, 사내망 쓰는 곳으로 근무지를 이전하면서 노션 접속을 못 하게 됐다. 

되게 간만에 켜 봤더니 반갑다.

 

 

개소리를 해 줘도 잘 알아듣는다.

알아서 잘 했을 거라고 믿고 자세히 읽어보지는 않았다.

 

 

 

 요구 조건도 대강 추가해 봤다. 

많이 안 늘리려고 했는데 그래도 저건 있어야 할 것 같았다

그리고 실무에 FK 제약 조건 거는 거 별로 안 좋아함. JPA 쓸 때 관리하기도 짜치고 감안할 게 많아진다. 

베이직한 기능만 짜고 친구들한테 외주를 줄 생각도 하고 있기 때문에 관리 포인트는 최대한 줄여 두는 게 좋다.

쉬워야 일을 떠넘길 수 있다.

 

 

 

모호한 부분 있으면 알려 달라고 하니까 생각도 대신 해 준다.

모든 사업팀 기획팀 상품팀 사람들은 챗지피티로 기획을 짜시면 좋을 것 같다.

엣지케이스도 미리 생각해 달라고 하고 구현할 때 모호할 수 있는 부분도 알려달라고 해서 기획서에 적어 주시면 내가 참 편할 텐데. 

그러면 직장이 사라질까? 

하지만 사람이 쓰는 기능에 대한 아이디어는 사람이 내는 거니까 괜찮을 것 같다.

그분들이 잘리는 것보다 나 같은 개발자가 잘리는 게 빠를 거다. 

 

 

지피티 친구의 단점을 찾았다. 자꾸만 코드부터 짜려고 한다. 

웃기지 마. 살면서 프로젝트 셋업만 백 번은 했다. 회사 들어와서는 안 했는데 어쨌든 나도 취향이란 게 있으니까 조용히 했으면 좋겠다. 

 

데이터는 나 혼자 한 달에 백 곡 정도 넣는다고 했던 것 같은데 마음대로 연 400곡으로 따져버렸다.

아까 신나서 런칭도 하고 싶다고 했는데.

근데 생각해보니까 메인 디비 RDS 말고 뭘 쓰겠냐 싶어서 그냥 그래그래 해 줬다.

하긴 내 UI 구성 실력 보면 앱스토어 런칭해도 우리 어머니밖에 안 써 주실 거다.

 

 

나중에 레디스 단다고 깔짝대면 더 귀찮아질까봐 미리 물어봤는데 물어보길 잘했다. 

플레이리스트 하나 export하고 다시 앱으로 돌아올 때마다 메인페이지 리프레시 되면 나중에 좀 빡칠 것 같다. 

물론 호출은 앱에서 제어할 수 있을 거고 앱 캐시도 있겠지만 

아 앱 캐시... 그렇네... 플러터도 처음이고 앱 캐시 어떻게 다루는지 모르는데 

 

서버랑 클라이언트 캐싱의 상황 차이랑 이 상황에서 둘 다 필요한지, 하나만 쓴다면 뭐가 좋을지 궁금했는데 그냥.......

태그 전체 리스트 정도는 레디스에 캐싱해야 할 것 같다. 어 잠시만

 

거의 답정너

 

 

실패 

같긴 한데 그냥 안 하고 싶다. 일단 빼고 가자. 

 

반응형

댓글