전체 글 106

Eclipse Tomcat Project 작동 순서

Eclipse Tomcat Project 작동 순서 Eclipse Tomcat Server 작동 순서 1. Servers Tomcat에 가동할 Project Add 2. tomcat server.xml 3. web.xml 해당 파일 Client Request -> DispatcherServlet -> HandlerMapping -> (Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller) -> DispatcherServlet -> ViewResolver -> View -> DispatcherServlet -> Response (참조) https://velog.io/@tjylo3437/Spring-MVC%EC%9D%98-%EA%B8%B0%E..

Programing/Spring 2022.03.04

DBMS Transaction ( Log )

DBMS Transaction ( Log ) LOG 자체적으로 로그를 사용(Undo, Redo 등)하고, 로그를 기록하기 위해서 로그 버퍼를 사용 로그를 작성하기 위해서는 write와 fsync 함수를 호출 fsync 함수 : 호출시 매우 느린 연산이고 커밋을 위해서는 트랜잭션의 로그가 로그 파일에 써져야 하기 때문에 fsync 함수가 종료 할때 까지 대기 Commit 연산 : 연산이 사용하는 대부분의 시간은 로그 파일에 로그 레코드를 쓰고 fsync 함수를 호출하는 시간 Group Commit : 커밋 요청들을 한번에 하나씩 처리하게 되면 fsync 함수를 여러번 호출하고 로그 레코드를 로그 파일에 쓰는 시간이 길어지므로 커밋 요청을 처리하는 시간이 증가 및 성능 저하. → 랜잭션이 커밋 요청을 하면 ..

Server/DB 2022.03.04

JDBC / JNDI / DBCP

JDBC / JNDI / DBCP JDBC : 데이터베이스 커넥션 인터페이스 DBCP : DB커넥션을 어플리케이션 소스 내에서 제어하면서 DB Pool 가짐 JNDI : DB커넥션을 WAS단에서 제어하면서 서버에서 하나의 Connection Pool 가짐 DBCP - Database Connection Pool 의 약자이다. 요청이 올때마다 Connection 객체를 얻는 것이 아닌, 미리 일정 갯수 찍어내서 Connection Pool 로 관리 WAS가 실행되면서 미리 일정량의 DB Connection 객체를 생성하고 Pool 이라는 공간에 저장해 둠 HTTP 요청에 따라 필요할 때 Pool에서 Connection 객체를 가져다 쓰고 반환 JDBC 로딩 순서 드라이버 객체화 : Class.forName..

Programing/Spring 2022.03.03

Spring Basic

Spring Basic 구성요소 DispatcherServlet : 클라이언트 요청을 받아서, 컨트롤러에 요청을 전달하고 컨트롤러가 리턴한 결과 값을 View 에 전달하여 응답을 생성한다. (Struts 의 ActionServlet) HandlerMapping : 클라이언트 요청 URL 을 어떤 컨트롤러가 처리할지를 결정한다. (struts-config.xml 의 역할) Controller : 요청을 처리하고 결과를 리턴한다 (Struts 의 Action) ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰에 관련한 정보를 담는 객체 (struts의 forward 기능 포함) ViewResolver : 컨트롤러 처리 결과를 생성할 뷰를 결정View : 컨트롤러 처리 결과 화면을 생성하는 객체 ..

Programing/Spring 2022.03.03

JAVA Memory leak check / fix

JAVA Memory leak check / fix Stack : 스택, 지역 변수들 (메소드나 생성자들에서 선언되는) 것들이 할당된다. 지역 변수들은 메소드가 시작될 때 할당되고, 메소드가 끝날 때 할당해제된다. Heap : 힙, new 키워드를 통해서 만들어지는 모든 객체들이 할당된다. 지역변수는 primitive 자료형과 참조형 뿐 거의 없기 때문에, 어쩌다가 깊은 케이스나, 무한 재귀의 경우를 제외하면 스택은 잘 오버플로가 나지 않는다. JVM 은 힙에 살아있는 객체들이 가득 차고, 더 확장할 수 없다면 더 많은 객체를 할당 할 수 있다 자바 프로그램 메모리 누수의 전형적인 4가지 원인들은: Unknown or unwanted object references: 잘 모르고 있거나 원치않는 객체참조 ..

Programing/Java 2022.03.03

(Eclipse) Deployment Assembly

(Eclipse) Deployment Assembly Eclipse로 Tomcat를 구동하기 전 Tomcat에서 서버를 구동 할 때 필요한 바이트 파일들이 필요한데 이때 임시로 Tomcat에서 사용하기 위해 배포되는 임시 폴더가 존재합니다. 보통 class 파일들이나 resource 파일들이 업로드되는데 추가로 필요한 자원들을 서버에서 사용하게끔 할 수 있는 방법이 Deployment Assembly에 설정하는 것입니다. ※ 글쓴이가 보기에 임시 영역에 업로드 되는 공간은 build 후에 생성되는 target 폴더의 파일들이 업로드되는것으로 생각됩니다. 그러나 정확하지 않은 내용이므로 참고만 하시길 바랍니다 Deployment Assembly 설정 Project 우클릭 → Properties → Depl..

Programing/IDE 2022.03.02