묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
도메인 객체의 의존관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]appconfig로 의존관계를 주입해서 di를 진행하고, dip를 만족한다고 배웠습니다. 그런데 지금까지으 예제에서 service나 repository의 의존관계를 다루었지만 도메인은 다루지 않을 것같아서요.만일 member 도메인 객체가 주문 히스토리 데이터를 가져야할 때, order 도메인을 의존해야하면, 이때도 따로 도메인에 대한 interface를 만들고 appconfig를 이용해 의존관계를 주입하는지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
그라파나 설치
curl -O https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1.darwin-amd64.tar.gz Warning: Failed to open the fileWarning: grafana-enterprise-10.4.1.darwin-amd64.tar.gz: Read-only file systemcurl: (23) Failure writing output to destination 설치가안됩니다.(맥 os입니다)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Spring boot, db연동 안될 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 내용 따라서 타이핑 후에 h2.bat을 실행 시킨 후 jpashopapplication.java 또한 실행시키고 db사이트 내에서 refresh했을 때 db가 연동되지 않는데 이 경우엔 어떻게 해야 할지 궁금합니다.아래는 구글 드라이브 압축 파일 링크 올려놨습니다.답변 기다리겠습니다.https://drive.google.com/file/d/1mRpp0B2EkM1WAHF9GpwKsY4JrozX4_zQ/view?usp=drive_link
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
예외처리에 관해 이해가 어려운 부분이 있습니다.
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 예외를 처리하는 부분에서 이해가 잘 가지 않는 부분이 이렇게 질문을 드립니다.스프링 시큐리티의 FilterChainProxy의 끝단에 예외를 처리하는 ExceptionTranslationFilter가 존재합니다. 해당 필터가 인가 예외를 처리하는 것까지는 이해하였습니다. 그러나 인증예외를 다루는 것이 조금 이해가 가지 않습니다. 스프링 시큐리티에서 제공하는 formLogin 인증을 포함한 모든 인증 방식은 ExceptionTranslationFilter앞에 존재합니다. 그럼에도 불구하고 인증 필터들에서 발생하는 예외들을 ExceptionTranslationFilter에서 처리를 합니다. 기존의 저는 예외가 발생할 즉시 바로 자신을 호출한 객체에게 예외를 반환하며 프로세스가 진행한다 알고 있는데 이는 스프링 시큐리티에서 인증예외를 처리하는 흐름과는 정 반대의 흐름입니다. 혹시 인증 필터에서 해당 예외가 발생할시 예외를 Throw하는 것이 아닌 다른방식으로 예외를 감싸서 ExceptionTranslationFilter까지 흘러가는 건가요? 아니면 제가 놓치는 부분이 있는걸까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
Mock과 Stub의 차이가 아직 잘 구분되지 않습니다.
개인적으로 Mock은 상태를 (내가 작성한 값을) 반환하는 것, Stub은 상태가 (내가 작성한 구현대로) 반환되는 것이라고 정의를 내리고 있습니다. 이와 같은 표현으로 차이를 이해하고 있어도 괜찮을까요?아니면 좀 더 명확한 표현이 있을까요? Mock 객체에 우리가 원하는 행위를 정의(Stubbing)하면,그 객체는 이제 Mock 객체라고 해야하나요 아니면 Stub 객체라고 해야하나요? 아래 코드를 보고 Mock 객체인 mailSendClient의 send 메서드에 대한 Stubbing이 이루어졌다. 라고 하면 맞는 표현인가요?@ExtendWith(MockitoExtension.class) class MailServiceTest { @Mock private MailSendClient mailSendClient; @Mock private MailSendHistoryRepository mailSendHistoryRepository; @InjectMocks private MailService mailService; @DisplayName("메일 전송 테스트") @Test void sendMail() { // given when(mailSendClient.send(anyString(), anyString(), anyString(), anyString())) .thenReturn(true); // when boolean result = mailService.sendMail("", "", "", ""); // then assertThat(result).isTrue(); // verify(mailSendHistoryRepository, times(1)) // .save(any(MailSendHistory.class)); } } mailSendClient는 Mocking하더라도 상태검증을 할 수도 있고, Stubbing하더라도 행위검증을 할 수도 있지 않나요?이 둘의 차이는 Mockist와 Classicist의 차이이지, Mock과 Stub의 차이라고 할 수 없지 않을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 데이터 베이스 연결문제..?
13강을 듣고 데이터베이스를 연결했는데 이름과 나이를 등록하면 둘다 빈칸으로 떠요. 터미널에서 mysql 조회해보면 이름 나이 다 잘 뜨는데 왜 그럴까요? 수정,삭제 기능도 안되구요ㅠㅠ
-
미해결실전! 스프링 데이터 JPA
junit5쓴다는건가요ㅠ
강의 영상에서는 위와같이 구성해서 4를 제외 시켰자나요? 그런데 왜 강의 pdf 에서는 4를 쓴다는건가요?ㅠ
-
미해결스프링 핵심 원리 - 기본편
test 오류를 못찾겠습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1eaGwuFK0ptwt7-5tXkKBmLXL6c_8wVCr/view?usp=drive_link
-
미해결실전! 스프링 데이터 JPA
ID에 @GeneratedValue를 적용하지 않았는데 강의처럼 동작하지 않습니다.
@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Item { @Id private String id; public Item(String id) { this.id = id; } } public interface ItemRepository extends JpaRepository<Item, String> { } @SpringBootTest class ItemRepositoryTest { @Autowired ItemRepository itemRepository; @Test void save() { Item item = new Item("A"); itemRepository.save(item); } } 위와 같이 강의를 따라서 테스트 코드를 작성했습니다. 그런데디버깅 찍은 곳을 확인해보니Member(id=null, username=user0, age=0)이렇게 나왔습니다. 분명 생성자에서 Item의 id를 "A"로 세팅했는데 어디서 문제가 생긴걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.> Task :compileJava FAILEDC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:4: error: package jpabook.jpashop.domain.item does not existimport jpabook.jpashop.domain.item.Item; ^C:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:20: error: cannot find symbol private Item item; ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:31: error: cannot find symbol public static OrderItem createOrderItem(Item item, int orderPrice, int count) { //item에 price가 있지만, 할인 가격일 수 있어서 orderPrice로 따로 사용 ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:20: error: cannot find symbol private Item item; ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:11: error: cannot find symbol@Getter @Setter ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\service\OrderService.java:7: error: package jpabook.jpashop.domain.item does not existimport jpabook.jpashop.domain.item.Item; ^6 errors이렇게 자꾸 Item을 인식하지 못하는거 같은데, 계속 봐도 오타가 안보입니다.. 도와주세요..구글 드라이브에 코드 업로드해두었습니다.https://drive.google.com/file/d/1Sj8eAPexXkQJ5livmAq_BaTAXaTSd_zu/view?usp=sharing
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
pdf 파일에 스프링3부터는 jakarta로 해야 한다고 추가해야 될 것 같습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ErrorPageController에서 RequestDispatcher 상수 추가하는 부분에 스프링3버전 이상부터는 javax가 아니라 jakarta로 해야 된다고 적어야 할 것 같아요! 이걸로 좀 헤맸네요public static final String ERROR_EXCEPTION = "jakarta.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "jakarta.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "jakarta.servlet.error.message"; public static final String ERROR_REQUEST_URI = "jakarta.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "jakarta.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "jakarta.servlet.error.status_code";
-
미해결실전! 스프링 데이터 JPA
트랜젝션 옵션의 전파에 대해 질문드립니다.
예전에 영한님이 답변하신 내용 중에스프링이 제공하는 트랜잭션은 처음 시작한 트랜잭션을 기반으로 전파됩니다.그러니까 서비스에서 트랜잭션을 시작하면 리포지토리의 트랜잭션이 해당 트랜잭션을 그대로 이어 받습니다.라는 내용이 있었습니다.그렇다면, 컨트롤러, 서비스, 리포지토리 순으로 코드가 진행된다고 할 때, 만약 서비스 계층에 @Trasnactional(readonly=false)가 걸려있고 리포지토리 계층에 @Trasnactional(readonly=true)가 걸려있으면 서비스 계층이 먼저 호출되므로 readonly=false 옵션이 적용된 채로 리포지토리 계층까지(기존 리포지토리 계층의 옵션은 무시된채로) 코드가 흘러가는걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
세팅 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1Djxk3OiXF9ALDQpWDbr1K3yH7aeaehlu/view?usp=drive_link 시작 초기에 build.gradle이랑 jpashopapplication을 돌렸을 때, Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache [in thread "Daemon worker"] Could not create an instance of type ijmapper_2lopa9aslcq9lq2pwmglefwkb.> Could not initialize class org.codehaus.groovy.runtime.InvokerHelper* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 이런 에러가 2개떠서 더이상 진행하지 못하는 상황입니다. 혹시 해결법 알 수 있을까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
섹션.8 메서드 기반 권한 부여 @PreAuthorize
안녕하세요? 섹션8. 메서드 기반 권한 부여 강의 보다가 잘 안되는 부분이 있어서 질문 드립니다! (16분 쯤에 설명 나오는 부분입니다!) @GetMapping("/user/{id}") @PreAuthorize("#id == authentication.name") public String authentication(@PathVariable(name = "id") String id){ return id; }해당 강의에서 user 로 로그인 시 위 url 로 접근이 가능했는데, 똑같이 해봤는데 403 이 떴습니다. 혹시나 해서 공유해주신 github 프로젝트로 해당 branch 로 체크아웃했더니 같은 현상이 나타납니다.이것저것 시도해보다가 스프링 공식페이지에서 @P 어노테이션에 대한 설명이 있길래 아래와 같이 도입해봤더니 정상동작합니다.@GetMapping("/user/{id}") @PreAuthorize("#id == authentication.name") public String authentication(@P("id") @PathVariable(name = "id") String id){ return id; }https://docs.spring.io/spring-security/reference/servlet/authorization/method-security.html 강의 하실 때보다 시큐리티 버젼이 또 올라가서 안되는 부분이 생긴 것일까요?아니면 제가 어떤 부분을 놓치고 있는걸까요? ㅠ
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
MyBatis나 Jpa를 사용했을 때, 커넥션이 커넥션 풀로 반환되는 시점 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 영한님.이번 강의를 들으면서 실제 MyBatis나 JPA를 사용했을 때커넥션이 커넥션 풀로반환되는 시점이 궁금했습니다.GPT에게 물어본 결과로는,트랜잭션 단위로 커넥션을 커넥션 풀로 반환한다는 답변을 받았습니다.예를들어 트랜잭션 1에서 findById(), findByUsername()을 호출한다면 트랜잭션 1에서 획득한 커넥션 1을 가지고findById()에 의한 select 쿼리를 호출 후커넥션1을 반환하지 않고그대로 유지하다가 findByUsername()으로 두 번째 select 쿼리를 호출한다는 답변을 받았습니다.이부분이 맞는지 질문 드리고 싶습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
애노테이션에 대해서 전반적인 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]애노테이션에 대해서 @xxx 을 붙이면 이런기능이 된다. 이렇게만 알고 있는데요, 실제로 컴파일할 때 어떻게 이루어지는지 조금더 자세한 설명같은게 없을까요? https://developer-youn.tistory.com/122 위의 링크에 있는 정보보다 조금더 deep한 내용이었으면 좋겠습니다.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
현재 스프링db2편 학습하는 중인데요
영상에선 itemservice-db파일 기존의 코드를 수정해서 사용하라고 하셔서 그렇게 했는데요거기에 깔려있는게 2.6.5입니다.id 'org.springframework.boot' version '2.6.5'근데 강의 자료에선 이제 3.0이상을 쓰라고 하셔서요이게 일단 거기 있는데로 2.65로 진행해도 되는건가요?아님 spring.io가서 3.0을 다시 깔아야하나요jpa까지 하다가 오류가 계속나서 처음부터 다시 시작하려고 하는데요일단 영상 그래도 2.6.5으로 진행하고 싶은데자료를 계속 보는데 전부 2.xx는 지원이 끊겨서 3.0으로 쓰라고 하셔서요진짜 2.xx다 빼고 3.0이상으로 전부 바꿔야 하나요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
람다식이 이해가 안됩니다.
멤버서비스 테스트에서 예외가 발생했을때 사용한 람다식이 해석이 안됩니다. 무슨 의미 인가요?assertThatThrownBy(()-> member service.accountTransfer(members.getMemberId(), memberEx.getMemberId(), 2000) .isInstanceOf(IllegalStatementException.class);위 람다식은 어떻게 해석해야 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
세팅 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/13uBXfVIbf-eYNNi0rG_paNywzx65M4CI/view?usp=drive_link 시작 초기에 build.gradle이랑 jpashopapplication을 돌렸을 때, Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache [in thread "Daemon worker"] Could not create an instance of type ijmapper_2lopa9aslcq9lq2pwmglefwkb.> Could not initialize class org.codehaus.groovy.runtime.InvokerHelper* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 이런 에러가 2개떠서 더이상 진행하지 못하는 상황입니다. 혹시 해결법 알 수 있을까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
데이터베이스 커넥션 및 세션 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님.먼저 항상 좋은강의 잘 듣고 있습니다.최근에 이직을 하게 되면서 여유가 생겨영한님 강의로 다시 학습을 시작하고 있는데요,결론적으로 먼저 데이터베이스에 관한 지식(커넥션 , 세션 뿐만 아니라 성능 튜닝 및 설계) 을 위해 추천해주실만한 책이 있을까요?당연히 영한님 관계형 데이터베이스 강의가 나온다면 너무 좋겠지만,직금은 자바 강의만으로 바쁘신거 같아서요!왜냐하면 저는 springboot 시작 시점에 db connection pool을 채울 때,하나의 db session만을 가지고 여러 db connection을 만들어 connection pool을 채울것이라고 생각했습니다.(db session도 web session처럼 인증을 유지하는 논리적인 연결 개념이라고 이해했고, 어차피 동일한 username password를 사용하니깐요) 그렇지만 검색 후 진짜 영한님 설명처럼각각의 connection은 별도의 db session으로 맺어지는것으로 나와있었습니다.그래서 제가 아직 관계형 데이터베이스 관련 지식이 많이 부족하다는 생각이드는데요,혹시 추천해주실만한 학습 방법(책을 포함한) 이 있으실지 궁금합니다!(혹은 1월 meet up에서 말씀해주신 것 처럼 올해 까진 관계형 데이터베이스 강의가 나올지도 궁금합니다!)감사합니다.!