분류 전체보기(89)
-
디스퓨처 서블릿
mvc패턴의 한계 테스트 코드 작성도 어렵고 , 공통처리가 어렵다 컨트롤러에서 공통처리햐야 하는 요소들이 많아진다. view를 띄우는 로직 같은 경우도 매번 forward 중복이 된다. 그래서 서블릿이 호출되기 전에 공통된 기능을 처리해야 한다. 문을 지키는 객체가 있어서 이 객체를 통해서 컨트롤러에 요청이 가도록 설계를 한다. 이것이 프론트 컨트롤러 패턴이라고 한다. 이전에는 고객 요청이 오면 서블릿 마다 매핑 된 값으로 찾아서 처리를 했는데 프론트 컨트롤러가 고객의 요청을 다받고 , 해당 컨트롤러에게 요청만 보낸다, http서블릿을 상속받고 하는 것은 안해도된다. 클라이언트의 요청을 디스패처 서블릿이 받음 요청 정보를 통해 요청을 위임할 컨트롤러를 찾음 요청을 컨트롤러로 위임할 핸들러 어댑터를 찾아서..
2023.01.22 -
prepared statement vs statement
1.Prepared Statement란 무엇인가? pre 준비된 문장 , 쿼리가 미리 준비 되어있다는 의미이다. 이미 쿼리 실행계획 분석과 컴파일이 완료되어서 DBMS의 캐시에 준비되어있는 쿼리를 사용한다는 의미이다. 미리 SQL 쿼리문을 캐시해놓고 사용하기에 처리 속도가 빠르다. 먼저, sql문을 작성시에는 1. 구문 분석 2. 컴파일 3. 실행 과정을 거친다. sql문을 db에 전달을 하면 SQL 서버 엔진이 그것을 구문 분석하고 컴파일을 하고 실행을 하게 되는데 preparedStatement와 Statement와의 차이는 컴파일( 파싱)이 미리 되어 있는지 아닌지 이다. pre는 처음 실행시면 1-3과정을 거친다면 이후 실행할때에는 3번 과정만 실행이 된다. 파싱 되어있는 것을 저장을 한다 그것을..
2023.01.22 -
쓰레드 풀 VS 커넥션 풀 차이?
WAS의 Thread의 개수가 db의 Connection Pool의 갯수보다 많아야 하는 이유는 애플리케이션에 대한 모든 요청이 db에 접근하는 것은 아니기 때문이다 was의 thread는 connection Pool의 갯수보다 여유있게 설정하는것이 좋다. 추가로 공부한 것 ! db서버와 was서버들이 연결을 한다는 것은 데이터 베이스 서버 입장에서는 세션을 만들어서 사용한다는 의미이다. 데이터 베이스(mysql)에 세션은 커넥션을 관리하는 forground쓰레드이다. 예를 들어 was하나당 쓰레드 풀에 쓰레드가 200개인 것을 데이터 베이스 서버로 연결을 하게 된다면 클라이언트와 세션을 유지하는데 되게 크게 부담이 된다 . 커넥션을 맺는 행위 자체가 db서버에서는 세션을 만들고 인덱스 스캔등 빨리 할수..
2023.01.22 -
무중단 배포
무중단 배포는 우리가 서버의 버전을 업데이트 할때 당연히 같은 포트에 있는 구버전을 신버전으로 올릴려면 다운 타임이라는 것이 존재 할수 밖에 없다, 그렇다 보니 이러한 다운타임이 없이 최대한 서버가 서비스를 원할이 제공하기 위해서 생긴 것이 무중단 배포이다. 환경 -다중서버 -로드 밸런서 ( 트래픽 경로 제어) 무중단 배포에는 세가지가 있다. 1.롤랑 배포 :롤링배포는 하나씩 점진적으로 버전을 업데이트 해 나가는 것이다. 리버스 프록시를 통해 한 서버를 신버전으로 업데이트를 진행시에는 다른 서버로 트레픽이 갈수 있게 하는 것이다. 이렇게 되면 다운 타임없이 서버는 사용자에게 서비스를 제공할수 있다. 또한 롤백이 가능하다. 그리고 기존에 인스턴스 수를 늘려야 할 피룡가 없다. 단점:호환성 문제가 발생할수 ..
2023.01.22 -
리버스 프록시 실습
창을 두개 띄워놓기 그게 가능했던 이유는 nginx에다가 해당 포트 두개를 넣고,localhost로 접속시에 두개 서버중에 아무거나 요청이 가도록 설정을 해놓았기 떄문이다.
2023.01.20 -
세션이 유저를 구분하는 방법
쿠키의 목적 1.세션 관리 :로그인 , 사용자 , 닉네임, 접속시간, 장바구니 등의 서버가 알아야 할 정보를 저장한다. 2.개인화:사용자 마다 다르게 그 사람에 적절한 페이지를 보여준다 3.트래킹: 사용자의 행동과 패턴을 분석하고 기록한다. 서버가 세션 아이디를 바탕으로 사용자를 식별하고 사용자의 데이터를 서버에 저장 관리 한다. 여러 페이지로 이동할때 마나 사용자 정보를 유지할수 있는 것은 쿠키로 가능하지만. 쿠키는 보안부분이 떨어진다 예를들어 아이디나 비번을 쿠키에 저장한다고 가정하면 다른 사용자가 그 컴퓨터를 사용시에 쿠키에 웹브라우저에 저장된 (하드디스크)에 저장된 쿠키값을 볼수있으므로 유츌에 위험이 있다. 그래서 session을 사용하는데 이것은 서버에 정보가 저장되기에 보안 부분이 더 뛰어나다..
2023.01.15