지금 안드로이드 - 서블릿 기반으로 클라이언트-서버 프로젝트를 하고 있습니다..
학부생에다 프로젝트 경험도 거의 없어서 지금 영 진도가 안나가는데요 ㅜㅜ.. 나름 설계했다고 끄적거려둔 코드도 역시 실력이 없으니 갈아엎기 직전이네요..
현재 채팅프로그램 비스무리한 프로그램을 개발하고 있는데, 회원정보나 단체톡방 정보를 관리하고, 클라이언트가 주기적으로 특정 데이터를 요청하는 시스템입니다..
그래서 제가 데이터를 관리하는 방법을 두가지 생각해 보았습니다.
첫번째는 클라이언트의 요청이 올 때마다 jdbc를 이용해서 일일이 dbms에 접근하기.
근데 막상 이렇게 하려고보니까 dbms는 내부적으로 동기화작업도 있고, 일단 잦은 디비 접근 자체가 성능을 갉아먹는 요인이라고 생각해서 일단 이건 제꼈습니다.
그래서 두번쨰로 생각한게 그냥 자료구조를 설계해서 메모리에 상주시키는 방법입니다.
아무래도 디비에 최소한으로 접근하다보니 퍼포먼스가 향상될거라고 생각했는데, 이게 서블릿 자체가 멀티스레드 기반이다보니 동기화 작업에서 지금 막막한 상태입니다..ㅜㅜ
지금이야 뭐 딱히 복잡한 기능도 없고 기능 자체가 적은편이라 여기저기 뮤텍스 걸면 어느정도 해결될 것 같지만, 나중을 생각해보면 이것도 좋은방법이 아닌거 같아서요 ....
그렇다고 doPost에다가 싱크로나이즈를 걸어서 싱글스레드처럼 운영하자니 이건 또 병신짓인거 같아서 그냥 관뒀는데
보통 이런 상황에선 어떤 방식으로 데이터에 접근을 하나요??
asp나 php는 싱글스레드 기반이라던데 일단 학습기간이 길어질것 같아 jsp로 개발하는 중입니다..
실제로 어느부분이 더 퍼포먼스가 좋은건지 감이 안잡혀서 질문드립니다..
커넥션풀써
음.. 가능하다면 2번 방법으로 하고는 싶은데 이건 확실히 힘들겠죠? 멀티스레드다 보니.. 답변 감사합니다
미안 2번째 질문이 이해가 잘 가지않는다
보통 회원 정보나 단체톡방 정보는 동적으로 변하잖아요? 그걸 그냥 스태틱으로 선언해놓고 쓴다는 말이었어요. 서블릿 자체는 딱 한번 초기화되고 나머지 작업들은 별도로 스레드가 생성되어서 클라이언트의 요청을 처리하니까 스태틱으로 선언해두고 빠르게 데이터에 접근하려는 취지였죠. 뮤텍스 걸기가 난감해서 반 포기상태지만 ㅠㅠ
그렇구나 그냥 DB에 넣는게 어떻겟니.
역시 그러는게 편할거같네요.... 감사합니다 이제 코드 갈아엎으러..ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ