양식으로 자유롭게 작성하는 방침을 가져가되,
최소한 면담 주제와 주고받은 내용을 파악할 수 있도록 작성해주세요! ☺️
7주차
면담 주제
5/3 13시 00분 ~ 15시 30분 진행
- 코드 리뷰하면서 느낀 내용 정리
- @Controller vs @RestController?
- REST API? https://meetup.toast.com/posts/92 vs SOAP?
- Redirect vs Forward
- DTO 왜 쓸까?
- DTO 어디까지 쓸까?
- <head> 태그에는 무엇이 들어가야할까?
- JS, CSS 파일 위치?
- thymeleaf 같은 뷰 템플릿 엔진을 사용해도 되나?
- Voucher 애플리케이션을 실제로 서비스 한다면 인프라는 어떻게 구성할까?
- 검색 조건별 null 처리? 링크
- index.html?
- form은 링크가 아니다 링크
- 응답 바디에 status code, 성공 여부를 넣는게 좋을까? https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
- K-Digital 해커톤
활동 내용
.
8주차
면담 주제
5/11 13시 ~ 14시 진행
- 코드 리뷰하면서 느낀 내용 질의응답
- Optional 안티패턴 ->
if(customer.isPresent())
- 창조 getter (쓰레드내 코드 참고)
- 코드
- 링크는 <a>
- RestAPI에 대한 설명
@Override public List<Voucher> findByDateAndType(LocalDate start, LocalDate end, String type) { List<Voucher> vouchers = new ArrayList<>(); storage.forEach((id, voucher) -> { LocalDate createdAt = (LocalDate) voucher.toMap().get("createdAt"); if(voucher.validateType(type)) { if(createdAt.compareTo(start) > 0 && createdAt.compareTo(end) < 0 ) {
활동 내용
.
9주차
면담 주제
5/18 13시 ~ 14시 진행
1. 자식에서 부모로 Cascade
요구사항에 맞게 사용하는게 좋음
단지 일반적이진않음
2. soft delete
3. 하나의 서비스 메서드를 나눠야할지 아님 하나로 둘지(질문을 제대로 못들었ㅇ..)
일단 하나로 만든다음에 나누는게 필요하다면 나누기
유의미한 액션일 때 나누기
4. PUT과 PATCH
PUT 엔티티 전체 수정, 엔티티생성의 의미도 가짐 (멱등성 O)
PATCH 실제론 잘안쓰임
요청과 응답의 dto가 일반적으로 같아야함
5. Timestamp 사용해도 되겠죠?
필요하면 조심해서 써라
6. BaseEntity 패키지의 위치
같이라인에 있거나 위 패키지로 존재하면 됨
7. JPA의 영속성 컨텍스트가 무엇인가?
8. JPA n+1 문제가 발생할때 왜 발생하는지 어떻게 해결할지
9. 왜 QueryDsl을 사용하는가?
- - 조회할때 동적으로 쿼리를 생성하기 위해서
- - JPA 벌크연산이 약하다 따라서 queryDsl을 사용해 효율적
10. mybatis를 보면 JPA가 느린데 왜 사용하는가?
JPA는 안느린데요?(혼내주기) -> 님이 잘못한거임
패러다임을 일치시킬 수 있음
11. 더티체킹이 뭐냐
캐시와 엔티티의 상태가 달라짐을 감지하여 플러쉬를 하지않아도 자동으로 플러쉬해줌
=> 서비스단에서 벗어나면 준영속상태가 되면 그 때 문제점
더티체킹이 안됨, 지연로딩이 안됨
AOP -> 프록시사용예 --> spring AOP
12. OSIV가 뭘까요?
알아보세요
13. @Repository 의 효과
- - Bean으로 만들어주기
- - DB를 사용하고 있기에 JPA에서 발생하는 예외가 서비스에게 알려진다.
따라서 예외를 추상화시켜서 Spring repository에서 발생할 예외로 바뀌어짐
에프멘토의 한마디(?)
- 예술이 아니다 상품을 만들어라
- 추상화의 가치를 생각해보자
- 의기소침좀 해라 (?)
- 서류를 떨어지면 문제가 있음
활동 내용
?