뒤로가기뒤로가기

데일리 랩스

인턴, 서울국제금융포럼에 다녀오다

관리자 페이지 리뉴얼의 시작

데일리펀딩

2023년 5월 24일

 

[데일리언이라서 뜻 깊은 4월]

나는 평소에도 세계 정세와 경제 그리고 금융에 대해 많은 관심을 가지고 있는 편이다. 그래서 처음 데일리펀딩에 지원했을 때 인턴생활을 열심히 해 개발 실력을 늘려야겠다는 생각도 가지고 있었지만 핀테크 기업에서 일하면 경제 관련 지식도 얻을 수 있지 않을까 생각했다. 그런데 인턴을 시작하고 한 달이 막 지났을 즘 마침 좋은 기회가 생겨서 서울국제금융포럼에 다녀오게 되었다.

 

코로나 이후 2022년부터 지금까지 돌이켜보면 정말 많은 일들이 일어났다. 미중 분쟁, 인플레이션, 고유가, 고금리, 경기 침체 등 겪어보거나 내가 생각지 못했던 사건들이 일어났다. 특히 식량 및 에너지 위기와 같은 지정학적 이슈를 흔들어 깨운 것이 바로 러시아-우크라이나 전쟁이었다. 이런 사회 상을 반영하는지 국제 금융 포럼의 주제는 ‘냉전 종식 후 세계 패권의 재구축(지정학의 귀환-금융지정학)’이었다. 미 * 중 패권 전쟁과 러-우 전쟁으로 새로운 질서를 목도하는 현 상황에서 한국 경제와 금융이 나가야 할 방향을 모색하는 소통의 장이었다.

 

이날 포럼은 크게 세션1과 세션2로 나누어 진행이 되었는데 세션1의 내용이 정말 재미있었다. 나는 사실 미중 분쟁의 절대적 승자는 미국이라고 생각했다. 그러나 강의의 내용은 그렇지 않았다. 물론 미국을 군사적, 경제적으로 따라가기엔 아직 부족하지만 투키티데스 함정, 킨들버거의 함정, 중간 타협으로 경우를 나누어 패권 경쟁의 결과를 설명해 주었다. 세션2는 미국 혹은 중국,소련을 선택하는 간단한 메커니즘에서 벗어나 어떻게 자국의 이익을 챙겨야 할지 그리고 어떠한 산업들이 주목을 받고 있는지에 대한 정보도 얻을 수 있었다. 하지만 아쉽게도 세션2와 같은 경우에는 국가적 관점에서 내용을 다루어서 개인이 어떻게 대처해야 할지에 대한 많은 인사이트를 얻지는 못했다. 평소 궁금했던 지정학 이슈에 대한 전문가들의 소견을 들을 수 있을 뿐만 아니라, 세계정세를 이해하면서 어떠한 기술들이 주목받고 있는지도 알 수 있는 시간이었다.

 

 

[요구사항에 맞는 적절한 기술 사용하기]

클론 코딩 과제 기간이 끝나고 난 뒤 Summer님과 나는 같이 관리자 페이지 리뉴얼 프로젝트를 진행하고 있다. 프로젝트 간 로그인 기능을 구현해야 했는데 기존의 경우 JWT를 이용하여 이를 구현하려고 했다. 사실 JWT를 사용하려 했던 이유는 그냥 최신 기술이고 사람들이 많이 사용하니까라는 이유에서 였다. 그런데 인턴십 리뷰 도중 JWT로 이를 구현하는 것에 어려움이 있음을 알게 되었다.

간단한 로그인 구현이라면 JWT를 사용해도 괜찮지만 현재 관리자 페이지에서는 토큰에 만료 시간을 주어 관리자가 활동 시에는 시간을 연장해 주고 별다른 동작을 하지 않으면 자동으로 로그아웃하게 되는 기능도 구현해야 했다. 그러나 만료 시간을 연장하는 부분에서 어려움을 겪었다.

출처 : https://hackernoon.com/using-session-cookies-vs-jwt-for-authentication-sd2v3vci

 

JWT와 같은 토큰 인증은 stateless하기 때문에 서버에서 토큰에 대한 통제가 어렵다. 때문에 토큰은 발행과 함께 만료 기간이 정해지는데 이때 토큰의 만료 기간은 변경할 수 없고 새로운 토큰을 계속 발급해 줘야 한다. 그러나 문제는 새로운 토큰을 발급받아도 기존 토큰의 기간이 아직 남아 있다면 기존 토큰 또한 유효하게 된다. 즉, 같은 시간대에 유효한 토큰이 2개 이상이 될 수 있다. 이러한 문제 때문에 Kero님께서는 JWT보다는 Session을 활용하는 것을 권장하셨다.

 

세션은 JWT와 달리 서버 측에서 클라이언트 상태를 저장하는 방식으로 클라이언트가 로그인을 시도할 때 서버는 새로운 세션 ID를 생성하고 해당 세션 ID를 클라이언트에게 전달한다. 클라이언트는 이 세션 ID를 쿠키나 헤더에 담아서 서버에 보내며 서버는 해당 세션 ID가 유효한지 확인한 후 세션에 저장된 정보를 활용하여 로그인 여부 등을 판단한다.

세션을 사용하면, 서버 측에서 세션의 만료 시간 등을 쉽게 조작할 수 있어서 토큰의 만료 시간 연장 등의 문제를 해결할 수 있다. 또한 토큰과는 달리 클라이언트에서 세션 정보를 조작할 수 없으므로 보안에도 좋다는 장점이 있다. 단점으로는 세션 ID를 저장할 곳이 필요하다는 점과 서버 측에서 세션을 관리하므로 서버 자원이 많이 소모될 수 있다는 점이 있다. 하지만 관리자 사이트의 경우 많은 세션 ID를 저장할 일이 없기 때문에 해당 부분은 크게 문제 되지 않았다.

(사용 기술이 정해지고 난 뒤 혼자서 실습을 해보았는데 간단하게 로그인, 로그아웃을 구현할 수 있었다)

 

따라서 세션과 JWT는 각각의 장단점이 있으며, 상황에 맞게 적절한 기술을 선택하여 사용해야 한다는 것을 알게 되었다. 요구사항을 제대로 분석하고 기술을 적재적소에 사용하는 것이 중요하다는 것을 새삼 느꼈다.

 

 

[마무리]

인턴 생활이 이미 절반가량 지나갔다. 사실 처음 출근했을 때는 아침에 일어나는 것이 너무 힘들었고 출근길의 지옥철로 인해 약간은 막막했다. 그러나 회사에 적응하니 시간이 순식간에 지나가는 것 같다. 바쁘고 알차게 보내는 하루하루가 시간을 더욱 빠르게 지나가게 만드는 것 같다. 물론 개발 실력이 빠르게 향상되거나 뛰어나게 변화하지는 않았지만 짧은 기간 동안 다양한 기술을 경험하는 것 같다. 혼자 웹을 공부한다고 했을 때 이렇게 다양한 기술에 대해 접하고 공부할 기회가 있었을지는 의문이다. 인턴 시작 전에는 어떤 것을 공부해야 할지 막막했었다면 이제는 어떤 방향으로 나아가야 할지 가늠이 되는 것 같다.

 

 

 

우리는 매일 금융의 각을 넓혀가는
데일리언입니다.

데일리언과 함께하기 >