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
    • 스프링 컨테이너에 의해 관리되는 객체.
  • ::란?
    • ::는 메서드 레퍼런스를 나타내는 연산자이며, 람다 표현실을 간결하게 표현해주는데 사용. ``` // 람다 표현식 List userDtos1 = userList.stream() .map(user -> UserDto.of(user)) .collect(Collectors.toList());

    // 메서드 레퍼런스 List userDtos2 = userList.stream() .map(UserDto::of) .collect(Collectors.toList()); ```

출처 및 참고

  • 예시 코드는 ChatGPT가 알려줌