본문 바로가기
반응형

전체 글160

mysql 아키텍쳐[1] - 아키텍쳐, 언두로그, 리두로그 * 이글은 RealMysql 책을 참고하여 작성한 내용입니다.db 성능은 디스크 접근횟수에 달려있다. 일반적으로 메모리는 디스크보다 1000~1만 배 빠르다.최대한 메모리에서 많은 작업을 하고 디스크 접근을 최소화해야한다. mysql db를 공부하며 위의 전제조건이 중요하다.mysql 아키텍쳐 설계는 쓰기 작업의 안정성도 보장하지만 무엇보다 읽기 성능 향상을 위해 설계되어있다.위 내용을 중점에 두고 글을 이해해보자. mysql 아키텍쳐 [mysql 엔진]커넥션 핸들러 - 클라이언트 접속 허용- 쿼리 실행 요청sql 파서- 쿼리를 토큰(mysql이 인식할 수 있는 최소 단위의 어휘나 기호)으로 분리해 트리 형태의 구조를 만들어 내는 작업- 기본 sql 문법 오류 검사sql 전처리기- 쿼리 파서에 의해 만.. 2025. 2. 6.
spring 트랜잭션 전파 속성 - 중첩 트랜잭션 구조의 동작 방식 트랜잭션 전파 속성트랜잭션의 전파속성이란 중첩된 트랜잭션 구조가 나왔을 때, 어떻게 동작 시킬지를 결정하는 속성이다.DB수준에서 중첩 트랜잭션이라는 것은 존재하지 않는다. 부분적으로 sql구문을 롤백시킬수는 있으나 중첩 트랜잭션은 존재하지 않는다.프로그래밍단에서 @Transactional 어노테이션이 부착된 메서드의 중첩 구조가 나타날 수 있고,  스프링에서는 중첩된 구조에서 다양한 옵션으로 트랜잭션을 사용할 수 있게 하며,  완전히 독립적으로 동작할 수 있는 옵션 또한 제공하고 있다. * 앞으로 설명한 용어에서 부모-자식 트랜잭션이라는 표현은 프로그래밍 서버 기준이며 실제 DB에서 부모-자식 트랜잭션이라는 것은 존재하지 않는것에 주의하자. DB 트랜잭션[중첩 트랜잭션 미지원]start transacti.. 2025. 2. 1.
[서블릿과 스프링 디스패처 서블릿] 역할과 동작 과정 스프링의 디스패처 서블릿은 http 요청을 적절할 컨트롤러에 위임하는 역할을 한다. 디스패처 서블릿을 제대로 이해하기 위해서는 자바 서블릿, 서블릿 컨테이너, MVC에 대한 사전 지식을 필요로 한다.이에 대한 설명을 먼저 진행하고 디스패처 서블릿에 대해 알아보도록 하겠다.(이왕 하는거 REST 설명까지 넣었다. 물론 서블릿과 연관이 있는것은 아니다.) 자바 서블릿 (java docs)자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그래밍 기술을 서블릿이라고 한다.서블릿은 초기화 init 메서드, 종료 시 destroy 메서드, 클라이언트 요청 request를 처리하고 응답 response를 반환하는 service메서드로 이루어져있다. 서블릿의 주 역할이 클리이언트 요청에 대한 응답을 반환하는 것이.. 2025. 1. 27.
[I/O 이해하기-3] 톰캣의 요청 수신 방식 [I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking[I/O 이해하기-2] Stream vs Channel[I/O 이해하기-3] 톰캣의 요청 수신 방식이전의 [I/O 이해하기 1,2]를 통해 I/O 작업에 사용되는 개념에 대해 학습을 하였다.개념에 대한 내용은 1,2편에서 설명하였으므로 이 글에서는 개념과 용어에 대해 세세한 설명은 하지 않을 것이다. 나는 개인적으로 톰캣이 어떻게 요청을 처리하는지 알고 싶어 동기와 비동기, Blocking과 Non Blocking, Stream과 Channel을 학습하였다. 톰캣 9 이후 비동기-NonBlocking으로 동작한다고 하여 클라이언트 요청에 대한 모든 I/O 작업을 비동기-NonBlocking으로 동작할것이라 예상했지만 결과는.. 2025. 1. 27.
반응형