젠킨스를 학습을 하고 있는데 어떤식으로 학습을 해야 할지 막막했다.그래서 튜터님께 어떤것을 학습을 하면 좋을지 여쭤보았다. 그리고 나온 결과가 다음과 같다.- Jenkins 가 CI/CD에서 어떤 역할을 하는지? - 아키텍처 master-worker (agent) - 주요 구성요소(job, build, executor, node, label, workspace)- 각 배포환경에 따라 달라지는 Jenkins의 구성 (예정)- pipeline 공부 (Jenkinsfile) (예정)- 대표적으로 사용하는 플러그인 적용해보기 (git, git webhook, credentials, secret text등..) (예정)그리고 추가적으로 ec2와 통신을 step by step으로 알려주셨다.1. 젠킨스에서 ec2에..
오늘 JPA에 대한 면접 질문을 받았다.대부분 원리에 대한 질문들이었다. 하지만 나는 재대로 답변하지 못했다.ㅜㅜ질문은 총 6문제로 다음과 같은 질문이 있었다.JPA 엔티티 라이프 사이클 상태 설명N+1 문제와 FetchType(EAGER/LAZY)의 연관JPQL과 네이티브 쿼리 사용 시 영속성 컨텍스트 주의점@Transactional의 동작 원리낙관적 락 / 비관적 락의 차이 및 적용 방식QueryDSL 사용 시 영속성 컨텍스트를 타지 않는 경우첫 번째 질문같은 경우 엔티티가 어떻게 동작하는지 설명하는거였다. 제대로 설명하지 못했다.ㅜㅜ이건 내가 노션으로 정리할때 빼먹고 안적어 둔거 같다.암튼 요거는 엔티티가 어떻게 관리가 되어지는지 말해보라는건데... 쉽지 않았다.JPA 엔티티는 총 네 가지 라이프사..
클래스 멤버 변수 초기화 순서에 대해 설명해주세요.의존성 주입(DI, Dependency Injection)에 대해 설명해주세요. Spring Filter와 Interceptor에 대해 설명하고, 사용 예시를 설명해주세요.@Transactional에 readOnly 속성을 사용하는 이유에 대해서 설명해주세요.JPA와 같은 ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요?이렇게 총 5가지로 질문을 주셨다.뭔가 java와 스프링을 섞어서 질문을 주셨다.대부분 아는거이긴 한데 이번에도 정리가 좀 부족하다는 생각이 들었다.그리고 5월초아니면 국비종료한후에 지금까지 질문받았던 내용들을 한번더 정리하는 시간을 갖는것이 좋을거 같다.1번 질문 같은 경우는 클래스 맴버 변수에 대해 알아야 할거..
프로젝트에 디자인패턴을 적용을 해야 했다.이거 아니면 리펙토링을 하던가 해야 하는데 나는 프록시 패턴을 선택했다.선택한 이유는 그리 대단한 이유는 아니구 확장 가능성 때문에 이 패턴을 선택을 하였다.또 내가 누누이 얘기하는데 디자인패턴은 코드와 1:1 대응이 아니라 어떻게 표현하에 따라 달라진다고 생각한다.프록시 패턴은 프록시 객체를 사용하는 패턴이다.사실 프록시를 사용하는 패턴은 프록시만 있는게 아니다 프록시 말고 디코레이터 패턴도 있긴한데암튼 프록시 같은 경우 기존 코드에 부가 정보를 넣어주는 패턴이다.변경전 클래스 다이어그램변경된 코드 or 클래스 다이어그램적용 이유 및 단점:왜 해당 디자인 패턴 또는 리팩토링 기법이 적합했는가?공통된 부분만 구현체로 만들고 부가적인 정보를 ProxyService를..
오랜만에 플젝으로 돌아왔다. 이번에는 레디스 스트림을 넣어서 동작을 시킬예정이다.아마 내일부터는 면접준비랑 스터디를 병행하면서 할거 같다.쉴만큼 쉬었으니 괜찮겠지..아무튼 오늘 튜터님의 도움으로 레디스 스트림을 이용할 수 있게 되었다.내가 관가했던 부분은 config쪽을 완료하지 못했었다.오늘 같은 경우는 스트림만 만들예정이다.근데 생각해보면 레디스 스트림은 뭘까?? 대기열이라고 생각하면 된다. 대규모 트래픽에서 대기열이라고 할 수 있는건 카프카가 있다.그러면 왜 카프카가 아니라 레디스 스트림을 선택을 했나?일단 내 도메인의 특성을 이해를 해야하는데 내 도메인은 외부로 메시지를 보내는 시스템이 아니다. 동일한 도메인에서 대기열 큐를 만드는 시스템이다. 그렇다는건 외부에 메시지를 보내는 카프카는 다소 무거..