일단 간단히 회고 해보자면 필수로 구현해야 하는 기능들은 다 하고 API key도 잘 숨겨서 제출했음
자세한 사항은 하기 참조 바람
1. 오늘의 문제
뭐 하나 매끄럽게 바로 된 것은 없었지만 그중에서도 단연 손에 꼽자면
(1) 하나의 image URL을 만들기 위해 두(2) 개의 API로부터 데이터를 호출하는데 잘 합쳐지지 않았음
(2) alert로 각 카드 정보에 맞는 id를 호출하는데 이벤트리스너가 모든 카드에 대해 동일한 alertId를 사용했어서 값이 모두 같은 id를 출력함 (걍 다 같은 id가 뜸)
(3) github repository에 업로드 전 민감정보인 API key를 dotenv를 활용하여 숨기고자 시도했으나 실패함
2. 해본 시도
(1) async/await 및 promise를 활용하여 비동기으로 호출되는 데이터 정보들을 동기적으로 만들어 조합함. 컨셉은 괜찮았으나 함수 적용이 잘 안되어 GPT의 도움을 좀 받음
(2) 생각보다 좀 더 고차원적인 이슈였음. 처음엔 함수가 정확한 태그를 레퍼런스하고 있는지 확인하였으나 근본적인 문제는 다른데 있었음. 여러 하찮은 시도가 있었으나 문제 해결이 안되어 얘도 GPT한테 문의를 좀 했음
(3) dotenv를 install하고 apikey 변수를 authorization에 할당했으나 때려죽여도 작동이 안됐음. 나중에 알고보니 이것도 더욱 근본적인 문제가 있었음(후술)
3. 해결 방법
어떻게 해결했는지는 아래 캡처에 자세하게 주석으로 달아둠. 웬만한 이슈는 GPT가 최후의 보루로 해결해주었고, (3)번 문제는 매니저님/튜터님이 도와주심. 좀 더 자세하게 풀어쓰자면, (2)번의 경우 클로저를 통해 각 이벤트리스너가 해당 카드의 정보를 정확히 기억하도록 수정하여야 했음. 이로써 클로저가 외부 함수의 환경을 기억하여 해당 환경에 속한 변수에 접근할 수 있게 해줌
(3)번은 dotenv가 노드 기반의 문법이라 말을 안들었던 것으로 판별됨. 이후 config file을 따로 만들어 API key를 파일내 변수로 할당 후 export하고 아래의 app파일에 import/require하려 했으나 이것 또한 노드 기반의 문법이라 안되었음. 튜터님이 같이 봐주시면서 var로 변수 할당을 다시하고 export/import가 아닌 html에 script를 따로 써서 해당 변수를 전역 변수로 만들어 app파일에서도 적용되도록 하였음 --- 대략 이해한거라 설명이 빈약할 수 있음 주의
4. 새롭게 알게 된 것들
GPT는 만능이 아님. 하지만 내 인생을 상당 수준 윤택하게 해줌. 이에 심히 걱정되는 부분이, 행여나 자꾸 어려운 문제에 직면할 때 계속 의존하고 스스로 문제해결 하고자 하는 의지가 퇴보될까 무서움
물론 처음엔 혼자 힘으로 최대한 코드를 써봄, 하지만 대게 잘 안되는 경우가 많음. 튜터님이나 매니저님께 물어볼 수 있지만 그들의 시간도 한정적이고 인간적으로 귀찮게 하고싶지 않아 GPT를 그들보다 우선순위로 두고 있음
여기서 학습철학의 재조정 과정에 있음: '혼자 힘으로 최대한'의 정의가 아직 명확하지 않다는 점 (시간 및 노력의 밸런스 최적화 지점), 구글링 및 서칭을 통해 관련 기술 및 사용법을 읽으며 적용해보는데 투입되는 시간량, GPT를 통해 얻고자 하는 답변의 수준 정의, 마지막으로 튜터/매니저님들에게 SOS를 치는 시점 등의 정립이 필요한 상황임
아직 위의 개념들이 혼재되어 있고, 현명한 시간/노력 관리가 무엇인지 모르는 상황에 두서 없이 조금 더 끄적여 보자면,
구글링/서칭의 경우 가성비가 대단히 많이 떨어짐. 내가 아주 어렸을 땐 사전 큰 걸 들고 영어/국어 단어를 찾았음. 그러다 전자사전이 나오고 내가 맨날 아이리버였나 그걸로 쉽게 쉽게 휙휙 찾으니 아부지가 책 사전으로 찾아야 그 과정에서 다른 단어들과 노력에 따른 보상이 큰 법이다~~~ 라는 취지의 말씀을 하신 적이 있음. 하지만 그때도 느끼건데 인간의 한정적인 시간이란 리소스를 최적화 하여 사용하고자 한다면 책 사전으로 단어를 찾는 방식은 시간 대비 깨달음(?이랄까)의 효용이 매우 저질이라 생각됨. 오늘날 돌이켜보면 전자사전이 아닌 책으로 단어를 열심히 찾았다 하더라도 내 인생이 크게 달라졌을까 의문임
사실 나는 각종 서치엔진과 챗GPT의 관계와 역사도 앞서 언급한 책사전과 전자사전의 경험과 비슷하다는 생각을 기본 축으로 하고 있음. 다만 너무 당연한 말이지만 위의 두 예시는 완전히 같을 순 없음. 그래서 새로 나온 챗GPT라는 아이를 현재 개발이라는 대모험 속 정보의 홍수를 어떻게 하면 가장 효율적이고 빠르게 체득할 수 있을지가 고민인 것임
쓰다보니 내 집중력이 요즘 shorts에 절여진 탓에 금방 한계에 봉착하여 쓰면서 흥미로운 글이었지만 이만 줄여야겠음. 내일 뭐 생각에 업데이트가 있으면 이어가든지 하겠음;;;