⭐️ 2023.10.11 (수)

이준영·2023년 10월 11일

⭕️ TIL (Today I Learned)

목록 보기
60/100
post-thumbnail

⭕️ Today I Learned


매일 할 일 ✅ ❌

✅ 1일 1커밋
❌ 1일 1알고리즘 문제 풀이
✅ 1일 2기술면접 개념 정리

✏️ 오늘 한 공부

알고리즘 문제풀이

백준


기술 면접 대비 개념 공부

[ 기술 면접 대비 개념 통합본 ]

  1. Call by reference란 무엇이고 보통 어떻게 쓰이나요?
Java에서는 primitive type(int, long, ...)이 아니라면 call-by-reference로 동작합니다.
Call by reference - 참조에 의한 호출로써, 함수가 호출될 때 메모리 공간 안에는 함수를 위한 별도의 임시 공간이 생성된다. 함수 호출 시 인자로 전달되는 변수의 레퍼런스를 전달하여 해당 변수를 가르킨다. 함수 안에서 인자의 값이 변경되면, 함수 호출 시에 있던 변수들도 값이 바뀐다.
Call by Value - 값에 의한 호출로써, 함수가 호출될 때 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 실행이 종료될 때 같이 소멸하며, 외부의 값을 복사해서 사용하기 때문에 내부에서 인자의 값이 변경되더라도 외부의 값에는 영향을 미치지 않는다(Swap 구현할때 경험)

2.Override 와 Overload 를 설명해주실 수 있을까요?

Override는 상속받은 클래스나 구현할 인터페이스의 메소드를 재정의하는 것을 의미합니다. Override는 재정의 하는 것이기 때문에 메소드의 이름과, 매개변수, 리턴형이 같아야 합니다.
Overload는 같은 이름의 메소드라도 매개변수를 다르게 지정하여 메소드를 정의하는것을 의미합니다. Overload는 메소드의 이름이 같아야하고, 매개변수는 달라야합니다. 리턴타입은 같거나 달라도 상관 없지만, 리턴타입만 다르다면 컴파일러 입장에서 메소드를 구분할 수 없기에 Overload가 불가능 합니다.
  1. JPA는 언제 필요하고 언제 필요하지 않은지 설명해주실 수 있을까요?
JPA는 객체지향과 RDB의 완전히 다른 두 패러다임 사이의 불일치에 의해 탄생한 ORM 입니다. ORM은 객체와 RDB 사이에서 sql을 직접 작성하는 번거로움을 덜어줍니다. 그러나 모든 쿼리를 JPA로 해결하지 못하는 순간이 발생하기도 하기 때문에 직접 쿼리문을 작성해야하는 경우도 있습니다. 개발자는 JPA를 사용하기 이전에 sql을 먼저 이해하고 있어야 하고 객체, RDB 양쪽의 특징과 동작하는 법을 잘 이해해야 합니다.
  1. JPA의 더티 체킹이란 무엇인가요?
간단하게 말하면 JPA의 영속성 컨텍스트 내부에서 발생한 변경사항을 체크하고 트랜잭션이 끝나 flush가 될 때 변경사항을 적용시키는 쿼리문이 날아가는 것입니다.
영속성 컨텍스트는 더티체킹, 쓰기지연 저장소, 1차캐시 등의 기능들을 제공하는데, 그중 더티체킹이란 처음 데이터를 조회할 때 1차캐시에 저장해놓은 스냅샷과 이후 데이터 사이에 변경사항이 있을경우 이를 체크하고 업데이트 쿼리문을 db에 날려주는 것 입니다.

실전 프로젝트 공부해야 할 것들


실전 프로젝트

  • 테스트코드 작성 위해 테스트 코드 공부하기

⭐️ 하루 생각 정리 ⭐️

정신없는 하루..

profile
작은 걸음이라도 꾸준히

0개의 댓글