소개
게시글
질문&답변
2022.09.13
네임드락을 활용할 때 데이터소스를 분리해야하는 이유가 궁금해요!
안녕하세요, 혹시 데이터 소스를 분리한다는 의미에 대해 조금 더 상세하게 설명해주실 수 있을까요?커넥션 풀이 부족해지는 현상의 경우는 특정 커넥션이 락을 쥐고 놓지 않는다면, 이후 요청하는 커넥션들은 지속적으로 대기하게 되어 부족해진다고 생각이 되는데 제가 이해한게 맞을까요? 😂(맞다면, Named Lock을 비롯한 모든 락이 해당 이슈가 있을 것이라 생각됩니다. 왜 Named Lock에서 특히 데이터 소스 분리가 필요하고, 아니면 커넥션 풀이 부족해지는 현상이 발생할 수 있다는 것을 강조해주셨는지 궁금합니다!) 동일한 데이터에 대해서 정합성을 보장하기 위해 락을 사용하는 것인데, 데이터 소스를 분리한다는 의미가 데이터를 샤딩과 같이 나눈다는 의미인지, replication의 의미인지, 최소한의 락을 사용하는 용도의 DB와 일반 DB를 분리한다는 의미인지 궁금합니다 :) 양질의 강의 감사합니다 :)
- 1
- 4
- 708
질문&답변
2022.03.09
TestBean 클래스의 자동 빈등록 이유
감사합니다
- 8
- 11
- 458
질문&답변
2022.03.08
AppConfig, ApplicationContext 에 대한 질문
감사합니다
- 6
- 6
- 782
질문&답변
2022.02.12
세션 쿠키 질문 있습니다^^
안녕하세요, 지나가다가 발견해서 다시 공부할 겸 댓글을 달았습니다. 혹시라도 잘못된 부분이 있다면, 다른 분들이 보완해주실 거라 믿습니다! :) 쿠키의 생명 주기 설명에서 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시까지만 유지된다는 이야기에 대해서, 제가 이해한 바로는 쿠키는 브라우저(클라이언트)측에서 관리하는 정보이기 때문에, 쿠키의 만료 날짜를 설정하지 않을 시 브라우저를 닫으면 브라우저(클라이언트)에 저장한 해당 쿠키(만료 날짜를 설정하지 않은)를 날려버린다는 이야기입니다. 쿠키 - 세션은 별도의 것이라고 이해하시는게 좋을 것 같습니다. 위에 말씀드린 것처럼 쿠키는 브라우저(클라이언트), 세션은 서버에서 관리하는 정보입니다. 다만 서버가 특정 클라이언트에 대한 정보를 기억하기 위해 쿠키 값을 매번 받아서 내부에 있는 세션 값과 비교하는 방식으로 사용하는 것입니다. 웹서버를 사용하는 프레임워크에 따라, 또 개발자에 따라 세션은 다르게 설정될 것입니다. 영한님께서 가르치시는 Spring boot의 경우는 기본적으로 1800s(초)로 세션이 지속됩니다. 따로 특성을 관리하는 파일에서 다르게 설정해주면, 해당 시간을 늘리는 것도 줄이는 것도 가능합니다. 보통 세션의 지속시간은 그 시간이 지나면 바로 삭제되는 것이 아니라, maxIntervalTimout 이라고 해서 세션을 사용하지 않은 시간, 즉 특정 세션값을 마지막으로 사용한 시점으로 부터 어느정도 지나면 지운다는 의미입니다. 저는 이렇게 이해하고 있습니다. 잘못된 내용이 있을 수도 있으니, 개인적으로도 많이 찾아보시면 좋을 것 같아요 ㅎㅎ 답변 끝! ------------------------------------------------------------------------ + 이 글을 보실 지 모르겠지만 영한님께 또 다른 질문이 있습니다. 😅 Spring에서의 Session 관련한 질문인데, 위 내용 관련해서 공부하다 보니, 문득 Controller 단에서 인자로 받는 HttpServletRequest 인스턴스를 통해 사용하는 request.getSession(true) 메서드 로직이 어떻게 이루어져 있는지 궁금하더라구요. request.getClass() 를 통해 클래스를 조회해보고, 안에 로직을 살펴보려고 시도했는데 현재까지 알아낸 정보는 Servlet3SecurityContextHolderAwareRequestWrapper 클래스가 인자로 들어오고, 이와 상속 관계에 있는 ServletRequestWrapper 클래스에서 getSession(boolean create) 메서드를 구현하고 있습니다. 그런데, 이 메서드에서 결국 HttpServletRequest 인스턴스를 통해 getSession(boolean create) 를 호출하더군요! 구현하는 메서드들을 여기저기 찾아보다가 org.apache.catalina.connector.Request 클래스에서 구현하고 있는 메서드가 가장 일반적으로 사용하고 있는 기능과 비슷해보였습니다. 여기서 결국 드리고 싶은 질문들은, 1. request.getSession(true) 메서드는 결국 어떤 클래스에서 구현한 메서드를 사용하게 되는 것인가요? - 1번 질문의 답에서 나온 클래스는 어떻게 Controller 단에서 인자로서 주입되는 건가요? - 1번 질문의 답에서 많은 구현체의 메서드 중 Spring이 선택하는 기준이나 로직은 어떻게 되는지, 혹은 어디서 알 수 있는지 궁금합니다. 항상 감사합니다 :)
- 0
- 1
- 2K
질문&답변
2021.12.06
SM 업무에서의 이직 고민과 멘토링 관련 질의
굉장히 바쁘신 와중에도 이렇게 빨리 답변을 주셔서 감사합니다 :) 현실적이면서도 힘이 되는 조언 너무나 감사드립니다!
- 0
- 2
- 765