TIL(Today I Learned)
1월 11일(목)
공부한 내용을 제 언어로 빠르게 정리한 내용이라서 잘못된 내용이 있을 수 있습니다.
서버 스터디
- Database Lock
- 여러 트랜잭션이 동시에 데이터에 접근하지 못하도록 하는 매커니즘.
- 즉 Race condition을 방지하고, 데이터 일관성을 유지하기 위함.
- 락이 있어야만 데이터에 접근해서 연산이 가능함.
- 열이나 행에 락을 걸며, 보통 행에 락을 거는게 일반적.
- Database Deadlock
- 여러 트랜잭션이 서로가 갖고 있는 락을 기다리느라 계속 대기만 하고 있는 상태.
- 락을 획득하는 순서와 해제하는 순서를 잘 조절함으로써 데드락을 방지할 수 있음.
- @Autowired
- 의존성 주입을 위해 사용하며, 스프링이 해당하는 빈을 찾아서 자동을 주입해줌.
public class MyService { private MyRepository myRepository; // 생성자 주입 @Autowired public MyService(MyRepository myRepository) { this.myRepository = myRepository; } }
- 의존성 주입을 위해 사용하며, 스프링이 해당하는 빈을 찾아서 자동을 주입해줌.
- Bean
- 스프링 컨테이너에 의해 관리되는 객체.
::
란?::
는 메서드 레퍼런스를 나타내는 연산자이며, 람다 표현실을 간결하게 표현해주는데 사용. ``` // 람다 표현식 ListuserDtos1 = userList.stream() .map(user -> UserDto.of(user)) .collect(Collectors.toList());
// 메서드 레퍼런스 List
userDtos2 = userList.stream() .map(UserDto::of) .collect(Collectors.toList()); ```
출처 및 참고
- 예시 코드는 ChatGPT가 알려줌