본문 바로가기

자바의 봄(Spring)/자바와 스프링 공부하기23

자바 - Shallow Copy , Deep Copy 오늘은 자바의 Shallow Copy , Deep Copy에 대해서 알아봤다 . 얕은 복사는 주소만 참조하는 것이고 , 깊은 복사는 실제 값을 참조하는 것이다. 다시 말해서 얕은 복사를 한 경우 복사된 값의 주소를 참조하고 있어 , 복사된 객체의 값을 바꾸면 오리지날도 같이 변경된다. 반면에 깊은 복사( Deep Copy ) 한 경우 복사된 객체의 값을 바꿔도 , 오리지날 객체의 값이 변경되지 않는다. 2023. 11. 19.
@JsonProperty @JsonProperty는 엔티티의 이름을 Json에서 정할 수 있도록 해준다. 본래 명명 규칙상 카멜 케이스로 작성하게 되면 대문자 앞에는 UnderScore로 작성해야 되는데 그냥 엔티티 이름을 작성하게 되면 RestController에서 주고 받을때 데이터를 날릴때 UnderScore가 들어가지가 않으므로 @JsonProperty로 이름을 수정해준다. 2023. 11. 11.
JPA @MapsId와 @Embeddedid에 대하여 1. @MapsId는 다른 곳에 있는 PK를 현재 엔티티에서 PK로 같이 사용하겠다는 뜻이다. => 확실하게 찾아봐야됨 2. @Embeddedid 는 복합키 설정을 위한 어노테이션이다. - 복합키를 설정해주면 본래 존재하는 PK 외에도 복합키로 해당 엔티티를 조회할 수 있다. (주어진 PK 말고도 다른걸로 조회할 수 있다는 뜻 ) 2023. 11. 9.
DI(Dependency Injection)란 무엇인가 스프링 핵심 원리 DI(Dependency Injection)란 무엇인가 외부에서 어떤 객체가 선택될지 정해서 주입해주는 것을 DI(Dependency Injection)이라고 한다. 객체를 생성하면서 동시에 어떤 객체가 생성될지 정해버리게 되면 향후에 설계 변경 시 OCP를 위반하게 된다.(Open Closed Principal) public class MemberServiceImpl implements MemberService{ private MemberRepository memberRepository = new MemoryMemberRepository(); @Override public void join(Member member) { memberRepository.save(member); } @Ov.. 2023. 9. 9.