Spring

·Spring
DB Lock 이란?DB 락(Database Lock)은 데이터베이스에서 여러 트랜잭션이 동시에 같은 데이터에 접근할 때, 데이터의 무결성(일관성)을 보장하기 위해 사용되는 메커니즘이다. 쉽게 말해, 한 트랜잭션이 특정 데이터에 대해 작업을 하고 있을 때 다른 트랜잭션이 그 데이터에 접근하지 못하도록 잠그는 것이다. DB 동시성 문제, 어떻게 발생할까요?크게 3가지가 있다.Dirty Read (더티 리드)한 트랜잭션이 데이터를 수정 중일 때 다른 트랜잭션이 그 데이터를 읽는 상황이다. 만약 첫 번째 트랜잭션이 롤백된다면, 두 번째 트랜잭션은 잘못된 데이터를 읽은 것이 된다.예시 :트랜잭션 A가 고객의 은행 계좌 잔액을 수정하고 1000원을 더합니다. 잔액이 5000원에서 6000원으로 변경됩니다. 하지만..
·Spring
자주 사용하는 어노테이션@NoArgsConstructor@AllArgsConstructor@RequiredArgsConstructor에 대해 정리했습니다.3개 모두 Lombok에서 제공하는 어노테이션이다.Lombok 생성자 관련 어노테이션의 주요 특징코드 간결성 + 가독성유지보수 용이성새 필드를 추가했을 때, 생성자 코드를 일일이 수정할 필요 없이 자동으로 반영된다.Lombok이 컴파일 시점에 자동으로 생성자 코드를 생성해주기 때문에 실수 가능성을 줄여준다.3. 불변 객체 설계에 용이@RequiredArgsConstructor는 final 필드 기반으로 생성자를 만들어주기 때문에, 불변 객체 설계에 적합하다.불변성을 유지하면서도 의존성 주입(DI) 시 깔끔하게 사용 가능하다. 1️⃣ @NoArgsCons..
·Spring
장바구니 Service를 개발하다가 @Transactional의 readOnly 속성에 대해 궁금해졌다.현재 코드에서는 readOnly 속성을 사용하고 있다@Transactional(readOnly=true) 하는 이유는? 장점?@Override@Transactional(readOnly = true)public CartResponseDto getCart(UserAuth userAuth) { User user = userService.findByUser(userAuth); Cart cart = cartRepository.findByUserId(user.getId()) .orElseThrow(CartNotFoundException::new); return CartResponseD..
·Spring
1주차 프로젝트를 하면서 현재, 주문 api 개발을 하고 있는데요!DTO를 설계하면서 @Builder에 대해 궁금해졌어요.DTO와 @Builder에 관해서 궁금했던 점과 그에 관련해서 정리해봅니다.들어가기에 앞서 DTO가 무엇일까 ? DTO란?Data Transfer Obejct의 줄임말. 즉, 데이터를 전달하기 위한 객체이다.계층 간 데이터 전달용 (Controller ↔ Service ↔ View)왜 사용할까?Entity 그대로 노출하면 위험하거나 불필요한 정보까지 외부로 나갈 수 있기 때문에요청이나 응답시 필요한 데이터만 따로 담아서 주고 받기 위해 사용된다.DTO을 RequestDto 와 ResponseDto로 구분짓기도 하는데API가 어떤 입력을 받을지 어떤 출력을 줄지 정의하면서 DTO 구조가..
·Spring
@ModelAttribute는 언제 사용할까 ? 게시판 항목에 체크박스 기능을 추가한다고 생각해보자.crud 컨트롤러마다 체크박스의 데이터를 생성하고, model에 넣어야한다. 항목을 추가할 때마다, 데이터를 만들고 model에 넣는 코드를 작성하는 번거러움이 있다. ex) 상세보기에서 regions 데이터를 model.addAttribute() 하는 코드@GetMapping("/{itemId}")public String item(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); // 추가 Map regions = new Linke..
·Spring
이 글은 김영한님 ‘모든 개발자를 위한 HTTP 웹 기본 지식’ 강의를 듣고 작성합니다.[7. HTTP 상태코드] 강의에 해당된 내용을 정리하며 회고록을 작성합니다."HTTP 403 상태코드에 대해 설명해주세요""400번대는.. 클라이언트의 오류로..."당황하지말고 HTTP 상태코드에 대해 알아보자. 상태코드란 무엇인가?클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능상태코드를 통해서 어떻게 작동을 했는지 파악할 수 있고, 오류가 났으면 어떤 오류인지도 파악할 수 있다.아래와 같이, 몇번대 상태코드가 대략 무슨 의미를 말하는지 감잡을 수 있다.1xx (Informational): 요청이 수신되어 처리중 → 거의 사용 x2xx (Successful): 요청 정상 처리3xx (Redirection..
galong
'Spring' 카테고리의 글 목록