NHN BaseCamp Sprint 7 회고

최대 1 분 소요

서버를 늘리면?

이번 7주차에서는 웹 서버를 늘리는 것에 대한 교육과 과제를 했다.

기존에 1대로 운영하던 서버의 부하분산과 고가용성(HA)을 위해 2대로 늘리게 된다면 어떤 장/단점이 있을지, 또 어떤 점들이 고려되어야 하는지를 생각해보고 적용하는 시간을 가졌다.

세션 공유?

1대였던 서버를 2대로 늘리면서 가장 먼저 부각된 문제는 세션 관리였다.

서버가 1대가 아니라 여러인 경우, 각각의 세션이 아닌 하나의 공유 세션을 가져야 한다. 이를 위해 기존 방법을 벗어나 Redis와 DB를 이용한 두 가지 방법으로 세션을 관리하게 구현했다.

Redis는 key-value로 이루어진 비관계형 데이터베이스이다. 메모리 기반으로 상당히 속도가 빨라 캐싱하는 용도로도 많이 사용한다는데, 우리는 세션을 관리하는 공유 저장소 개념으로 사용했다.

다른 방법으로는 기존에 우리가 사용하던 DB에 세션을 위한 table을 추가하여 구현했다. 이후 프로필 분리를 통해 Redis를 이용할 것인지, Session Table을 이용할 것인지를 선택해서 구동할 수 있도록 하였다.

늘어난 리팩토링의 늪

위의 서로 다른 방법을 하나씩 맡아 개발하고, 이를 합치려다 보니 코드가 매우 더러워졌다… 또 자잘한 버그들도 생겨서, 대대적인 리팩토링을 해야하지 않을까하는 생각이 든다.

댓글남기기