본문 바로가기

분류 전체보기60

[DBMS] 트랜잭션 격리 레벨(isolation level) 트랜잭션 격리 레벨이란?트랜잭션 격리 레벨(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것입니다.즉 다르게 말하면 ⭐️여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것입니다.트랜잭션의 격리 수준에는 아래 4가지가 있습니다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE아래로 갈수록 트랜잭션 간의 고립 정도가 높아지고 성능이 떨어집니다.일반적으로 READ COMMITED나 REPEATABLE READ 중 하나를 사용한다고 합니다.(대표적으로 mysql, mariadb는 REPEATABLE.. 2024. 5. 18.
[Spring / Redis] @RedisHash 어노테이션을 붙인 객체를 레디스에 저장했을때, 그 값을 확인하는 방법 redis-cli에서 내가 넣은 값을 확인하는 방법key는 @RedisHash 에 설정해놓은 value와 그 어노테이션이 붙은 클래스 중 @Id 어노테이션이 붙은 필드를 조합하여 value:Id로 설정됩니다.즉, 아래와 같은 클래스가 있고, 객체를 만들때 Id인 accessToken 필드 값을 "hello"로 설정해놨다면package com.mewsinsa.auth.jwt.redis.dto;import com.mewsinsa.member.domain.Member;import org.springframework.data.annotation.Id;import org.springframework.data.redis.core.RedisHash;@RedisHash(value = "accessToken", time.. 2024. 5. 18.
[Spring MVC] Spring MVC 구조와 DispatcherServlet Spring MVC의 구조와 그 핵심인 DispatcherServlet에 대해 알아봅시다.MVC란MVC란 Model, View, Controller의 약자로, 애플리케이션 개발 영역을 각각 Model, View, Controller로 나누어 개발하는 디자인 패턴입니다.MVC 패턴 도입 전에는 비즈니스 로직과 뷰를 렌더링 하는 부분 등의 코드가 모두 한 jsp 파일에 있었는데, MVC 패턴을 도입한 이후에는 UI 영역과 도메인(비즈니스 로직) 영역이 분리 되어 서로에게 영향을 쥐 않으면서 개발과 유지 보수가 가능하게 되었다.Model(모델)Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 합니다.처리한 작업의 결과 데이터를 클라이언트에게 응답으로.. 2024. 5. 18.
[Java / Web] 서블릿과 서블릿 컨테이너, 톰캣의 동작 서블릿서블릿이란 클라이언트의 요청을 처리하고 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다.즉 서블릿은 클라이언트가 어떠한 요청을 하면 그 요청을 받고 그에 대한 응답을 전송해주는 역할을 하는 자바 프로그램입니다.서블릿의 특징클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트입니다.html을 사용하여 요청에 응답합니다.MVC 패턴에서 Controller로 이용됩니다.Servlet은 javax.servlet.Servlet을 최상위 인터페이스로 가집니다.HTTP 프로토콜 서비스를 지원하는 java.servlet.http.HttpServlet 클래스를 상속받습니다.html을 변경하면 Servlet을 재컴파일해야하는 단점이 있습니다.서블릿의 동작 방식.. 2024. 5. 16.
[Beyond SW / 1, 2일차 내용 복습] Linux의 권한 관리와 기본 명령어 정리 사용자와 그룹, 권한 관리리눅스에서는 사용자를 여러 그룹으로 나누어 관리합니다.권한 관리를 통해서 특정 사용자나 그룹이 파일이나 디렉토리에 접근할 수 있는 권한을 지정합니다.root 사용자와 sudo 명령어여러 사용자 중, 모든 권한이 있는 최상단에 있는 사용자를 root라고 합니다.root 사용자로 변경하는 명령어. (su는 switch user라는 의미입니다.)root 계정의 비밀번호를 모르면 사용할 수 없음su -시스템 전체 보안에 영향을 미칠 수 있는 명령어는 root가 아닌 일반 사용자는 사용할 수 없습니다.ex) root가 아닌 일반 사용자는 다른 user를 추가할 수가 없습니다.하지만 root 계정의 비밀번호를 모르면 root 계정으로 전환할 수도 없습니다. :(따라서 일반 사용자는 sudo.. 2024. 5. 14.
[Spring / Project] 응답 객체에서 상속 구조를 사용해보자 이번 글은 어떤 지식을 전하는 글이라기 보단, 프로젝트를 하면서 제가 놓치고 있었던 부분에 대한 회고록에 가깝습니다,,ㅎㅎ멘토님의 피드백을 받고 느끼게 된 것은 '내가 정말 자바의 상속을 이용하지 못하고 있구나'입니다.제가 자바를 좋아하는 이유는 객체지향을 잘 지원해주는 언어이기 때문이라고 생각했는데, 정작 프로젝트를 하면서 상속을 거의 이용하지 않고 있었다는 것이 부끄러워졌습니다.멘토님께서 피드백 주신 것이, 일단 응답 객체인 FailureResult, SuccessResult가 상속 구조로 변경할 수 있을 것 같으니 이 둘을 상속 구조로 바꿔보라는 것이었습니다.오늘 포스트는 이 두 객체를 상속 구조로 바꾸는 일종의 리팩토링(?) 과정에 대해 기록해보려고 합니다.원래는 어떻게 되어 있었는데?원래 코드는.. 2024. 5. 13.