멋진 개발자/Java & Spring

더티체킹이란 "상태변경검사"라고 생각을 하면 쉽다 public void update(Long id, String status) { User user = userRepository.findById(id).orElse....; user.setStatus(status); userRepository.save(user); } User의 아이디로 데이터를 불러온 뒤 수정한다음, 수정한 User객체를 save메서드로 저장하였다. save()메서드는 새로운 데이터를 만들어서 저장할 때 쓰이기도 하지만, 위와 같은 상황에서 쓴다면 update쿼리가 수행된다. JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영해준다. 변화의 기준은 최초 조회 상태 이다. JPA에서 엔티티를 ..
JPA란 JPA(Java Persistence API)는 Java 객체와 관계형 데이터베이스 간의 매핑을 위한 API이다. ORM(Object-Relational Mapping)을 구현하는 자바 표준 스펙으로, 개발자가 객체지향 프로그래밍 언어에서 사용하는 개체 모델과 관계형 데이터베이스의 테이블 간의 매핑을 자동으로 처리해 준다. 구현체로는 Hibernate, EclipseLink, Data Nucleus가 있으며 Hibernate가 가장 대중적이다. JPA의 사용 이유 1. 생산성이 증가한다. DDL문 자동 생성 간단한 메서드로 CRUD가 가능해진다. SQL을 작성하고 JDBC API를 사용하는 반복적인 일을 대신 처리한다. 2. 유지보수가 쉽다. 기존 : 필드 변경시 모든 SQL 수정 JPA : 필..
오버로딩(Overloading) 두 메서드가 같은 이름을 가지나 인자의 수나 자료형이 다른 경우를 말한다. public int plus(MyNumber a) { ... } public int plus(MyNumber a, MyNumber b) { ... } public int plus(YourNumber a) { ... } 대표적인 오버로딩 메서드 장점 1. 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다. "System.out.println()" 인자값으로 int, double, boolean, String 등 다양한 타입의 매개변수를 넣어도 콘솔창에 문제없이 출력해준다. 2. 메소드의 이름을 절약할 수 있다. println()을 각 타입별로 이름을 다르게 정해주지 않고 하나의 이름으로 한번..
Call by Reference (CBR) 함수가 인수를 전달할 때 사용되는 방식에는 Call By Value(CBV), Call By Reference(CBR)가 있다. CBV는 함수가 인수로 전달받은 값을 복사하여 처리 하기 때문에 원본 값은 변경되지 않는 특징이 있다. CBR는 인수로 전달되는 변수의 참조 값을 함수 내부로 전달하는 방식이기 때문에 전달된 변수의 값을 변경하면 호출한 쪽의 변수의 값도 변경되는 특징이 있다. CBR의 장점으로는 : 복사하지 않고 직접 참조를 하기 때문에 상당히 빠르다. 반대로 단점은 : 직접 참조를 하기에 원래의 값이 영향을 받는다.(리스크가 존재) 하지만 Java는 객체지향 프로그래밍이기 때문에 Call By Value를 지향하고 있으며 그러한 방식으로 동작한다. ..
개발의 WinG
'멋진 개발자/Java & Spring' 카테고리의 글 목록 (3 Page)