끊임없이 생기는 에러들과 함께
이번 일지는 지난 일지에 이어 이슈 트레킹 프로젝트가 어떻게 진행 중인지 작성해보았다. Visual studio를 켜고 코드를 치기 시작한 처음 몇 일은 이전에 두 과제를 하면서 생긴 자신감으로 순조로웠지만 그것도 잠시 뿐 다른 기술 블로그의 표현을 빌리자면 환멸의 계곡에 빠져들었다. 코드가 조금 길어지자마자 입력하면 할수록 예상하지 못한 부분에서 끊임없이 생기는 에러들 때문에 자신감이 곤두박질 치기 시작했다.
기대감의 산에서 환멸의 계곡으로 이끈 원인 중 사소한 문제들을 제외하고 영향이 큰 두 부분을 소개하자면 저번 일지에서도 소개한 칸반 보드가 가장 큰 원인이었다. 일지에 드래그, 드랍 기능설명을 쓸 정도로 만족스러웠지만 당시 상태는 백엔드 서버와 연동 없이 ER다이어그램을 참고하여 내가 임의로 만들어 둔 JSON형식의 데이터 값으로 구현한 상태였다. 기대와 달리 막상 서버와 연동을 해서 실행해보니 데이터 값이 기대했던 모양과 달라 작동이 되지 않았다. 마치 여우(내)가 두루미(프로그램)를 초대해 놓고 납작한 접시에 음식(데이터)을 담아주는 꼴이 된 것이었다.
내가 선택한 해결책은 당연하지만 접시의 모양을 바꿔주는 방법을 선택했다. 안타깝게도 구글링을 해보면 칸반보드 예시는 대부분 첫번째 사진과 같은 형태의 데이터 구조를 이용하기에 남이 잘 만들어 둔 코드를 그대로 복사해와서 붙여 넣는 요행을 바라기는 어렵게 되었다. 다행인 점은 접시의 모양만 바꿔주면 되기 때문에 우선 드래그, 드랍을 할 때 같은 칼럼에서 하는 상황인지 다른 컬럼으로 이동하는 상황인지 두 경우로 상황을 나누어서 판단하고 해당 칼럼의 요소들의 순서만 업데이트 해주면 되는 것은 변하지 않는 부분이었다. 그럼에도 시간이 오래 걸렸던 이유는 라이브러리에서 사용되는 draggableId, droppableId, source, index에 대한 이해가 완벽하지 않아서 였던 것 같다. 지금은 서버에서 받아온 데이터 값을 이용해서 잘 구현되고 있기에 획일화 된 예시만 보고 이해가 힘들었던 분들을 위해 다른 형태의 예시 코드도 첨부해 둔다.
기대감의 산에서 환멸의 계곡으로 이끈 또 다른 요인은 (소셜)로그인이다. 여태까지 컴퓨터나 핸드폰에서 로그인을 할 때 아무런 생각도 없었던 것 같다. 굳이 기억해보자면 카카오 계정으로 로그인과 같은 소셜 로그인 버튼을 눌렀을 때, 카카오 아이디와 비밀번호를 한 번 더 물어보면 귀찮게 군다고 짜증을 냈던 것 같다. 만들고 있는 이슈 트래킹 툴에서도 로그인 기능이 필요하기에 개발 중인데 위에 설명한 칸반 보드와 달리 로그인 관련 부분은 만성질환과 같이 아직까지도 꾸준히 괴롭힘을 받고 있다. 뭐 하나 쉬운 게 없다는 말을 로그인 버튼 하나를 만들면서도 느끼는 중이다.
큰 틀에서 과정을 설명하자면 사용자가 메신저로 사용하고 있는 Slack에 로그인이 되어 있으면 Slack의 사용자 본인 정보를 이용해서 트래킹 툴에 로그인이 되면 성공이다. 여기에 자체적으로 발행하는 jwt 기반 Access Token과 Refresh Token을 적용해서 개발 중이다. 아래 그림을 레고 설명서처럼 참고하면서 개발 중이다.
처음 위의 자료를 찾았을 당시에는 1단계부터 13단계까지 순서대로 개발하면 쉽게 완성될 것이라고 생각했는데 1단계 사용자 로그인 단계부터 벽에 부딪혔다. 로그인에 사용하는 Slack이 카카오나 네이버와 달리 실제 적용 예시가 부족하다는 점이다. 생각해보면 소셜 로그인 방법으로 카카오, 네이버, 페이스북, 구글 정도만 사용해봤지 Slack을 사용해 본 적은 없는 것 같다. 그래도 다행히 Slack 자체에서 다양한 기능에 대한 설명서를 만들어 둬서 참고할 수는 있었다. 오히려 기능과 버전이 지나치게 많아 어려웠었다. 지금 상황은 서버로부터 받은 토큰들을 쿠기와 로컬 스토리지 중 구현하기 조금 더 간단한 로컬 스토리지에 모두 저장해두고 사용하는데 아직도 100% 확정하지 못했다. 추가적으로 토큰 만료 시간 정보도 프론트에서 사용할지 정해지지 않아 매끄럽게 완성된다면 똑같은 검색결과에 지친 다른 인턴 개발자들을 위해 코드와 함께 설명할 예정이다.
[그 외 일상]
입사 초기부터 따릉이를 타고 출퇴근을 해왔다. 괜히 앞질러가는 자전거에 약이 올라 따라 가려고 무리하면 조금 피곤하기도 하지만, 차도 안 막히고 사람도 많지 않고 올해는 미세먼지도 괜찮아 더할 나위 없이 좋았다. 아쉽게도 벌써 날이 많이 더워져 출근 시간에는 지하철을 이용하고 있다. 간혹 운이 없는 날에는 지나치는 모든 역마다 내렸다 다시 타기를 반복하면서 짜증이 쌓이지만 그 덕분에 한참 뒤에도 같은 지하철을 타면 이번 인턴 기간이 생각날 것 같다.
지하철 이외에 이번 달에 기억에 남는 것으로는 강남구청역 뒤에 파는 어복쟁반이라고 할 수 있다. 어복쟁반을 먹어 보기 전에는 이북음식이라 하면 전부 간도 못 맞추면서 가격은 비싸고 자기들끼리만 맛있다고 하는 부정적 이미지만 가득했지만 이번에 먹고 난 후에 ‘슴슴하다’라는 단어의 뜻을 깨닫고 내가 욕했던 자기들끼리에 나도 포함 된 것 같다.
마지막으로 남은 기간 동안의 목표를 말하자면.. 인턴십 멘토링 마지막 회식 때 이슈 트레킹 툴을 잘 완성시켜 편안한 마음으로 참석하는 것을 목표로 삼고 열심히 개발할 예정이다.
하루하루 성장해나가는 데일리펀딩 개발자들의 일상이 궁금하다면?
지금 <데일리인사이트> 에서 만나보세요!