session의 활용. 어떻게 활용하시나요~? 공유해보아요.

2014-02-06 12:17

근래 코딩하면서 session 에 객체를 담고 꺼내는 경우가 잦아지면서 다른 분들은 어떻게 쓰실지 궁금즘이 좀 생겼습니다.

예전 jsp를 할 때 session 을 사용하는 경우는 보통 사용자정보를 담아두고 비즈니스 로직을 안에 담는 경우는 거의 없었습니다. //jsp안에 갖가지 코드가 다 들어간 스파게티코드는 작성않고 최소 mvc를 나누어 코드를 작성하다보니 //하나의 request에서 처리해야할 일이 명확했고 //parameter에 많은 데이터를 담을 생각 자체를 안하며, //또한 ajax를 이용과 함께 사용자 화면의 데이터 변화가 일어날 적 마다 DB access를 했습니다. //view-model 이 DB의 Consistency 기능을 유지할 수 있었다고 해야할까요?(이건 무리수 드립인가?ㅋ)

제목에 맞는 질문을 이끌어내기 위해 제 경험을 소개해드리자면... //근래 asp.net을 하고 모든 input이 submit을 가진 webform을 기반으로 프로그래밍을 하다보니 //잘 적응이 안되었습니다. 제가 하는 업무중 하나는 전 시스템 영역에 영향을 줄 수 있는 프로시저 호출이 있습니다. 관리자는 화면에서 여러 옵션을 선택하고, 마지막으로 저장버튼을 누르게 되는데 요구사항은 관리자 화면에서 지금까지 작업한 내역을 그대로 사용자 화면에서 미리보기가 되었으면 좋겠다는 이야기도 나왔었는데 제가 해결한 방법은 관리자 화면의 모든 옵션 input에 맵핑되는 클래스를 만들고 관리자 화면에서 submit이 발생할때마다 화면의 모든 input의 data들을 담은 객체를 생성하고 vaild check를 그 때에 진행하여 문제가 없다면 객체를 session에 저장하여 사용자 화면으로 미리보기를 해주는 것이었습니다. 그리고 미리보기 화면이 클로즈되면 세션을 삭제합니다. (asp.net 에서는 remove라는 메소드가 있어서 무척 편하네요 ㅎㅎ)

비지니스 특성상 이러한 세션활용을 하는 것이겠지만 가만히 생각해보니 세션 타입이 object 인 만큼 그 활용은 서버가 버텨주는만큼은 다양하지 않을까 싶네요.

일반적인 활용으론 사용자 정보가 있겠고.. 혹시 저 처럼 일반적이지 않은 다른 용도로 세션을 활용해주시는 분이 계시다면 어떻게 세션을 사용하시나요? 경험적인 부분이라 공유되었음 좋겠어요.

2개의 의견 from SLiPP

2014-02-06 16:53

글만으로는 정확한 흐름을 이해하기 힘든다. 미리보기를 하는데 굳이 session을 활용해야 되는지도 의문이기는 하다. 내가 요구사항을 잘 모르니 네가 잘 했다고 생각한다.

나는 session은 가능하면 사용하지 않는 것을 원칙으로 하고 있다. 가장 많이 활용되는 부분이 네가 말한 로그인한 사용자 정보이다. 단, 사용자가 많아질 경우 서버 메모리에 부담이 갈 수 있기 때문에 가능하면 크기를 최소화하기 위해 노력한다.

그 외에는 이력서 등록과 같이 여러 단계를 거쳐 정보를 입력해야 하는 경우 필요할테고.. 최근에 session을 다양한 곳에 활용한 경우가 많지 않아 더 많은 사례를 공유하지는 못하겠다.

어제 술을 너무 먹었더니 멘붕 상태에서 댓글 남긴다. 추후 생각하는 내용 있으면 추가해 볼께.

2014-02-07 11:55

@자바지기 본문을 살짝 수정했어요 ㅋㅋ 저도 서버메모리 걱정으로 session은 잘 손대지 않는데, 한 화면에서 여러 데이터들을 잠시동안 저장하고 관리해야 하는데 이것만을 위한 DB 테이블을 만들기도 뭐하고 해서 생각한게 session이었어요 ㅋ 이력서 등록할 때도 많이 유용하겠네요! 여러 단계를 거쳐 정보를 입력하고 관리해야하는 예네요. 다만 염려하시는 것 처럼 서버 메모리를 염두에 두어야겠어요.

저도 며칠 술먹었더니 메롱메롱한 상태네요 ㅋㅋ 조만간 벙개할까요?ㅋㅋ

의견 추가하기

연관태그

← 목록으로