inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

lbd4946@gmail.com님의 게시글

lbd4946@gmail.com lbd4946@gmail.com

@lbd49464369

수강생
-
수강평
-
강의 평점
-

게시글 15

질문&답변

서블릿 생성 시점과 역할 관련 질문입니다!

안녕하세요. 지나가다가 저도 고민했던 부분이라 생각을 공유해보고 싶습니다! 2. 웹 애플리케이션 서버에서 서블릿 객체를 받아 HTTP 응답 메시지를 생성하는 것이라고 생각했었습니다. 즉, 서블릿은 개발자가 만든 내용을 서블릿 객체로 만들고 가장 앞단에서 웹 애플리케이션 서버가 실제 브라우저에게 전송할 HTTP 응답 메시지를 만들어 응답하는게 아닌가 생각했어요 저의 의견이었습니당 ps 저와 비슷한 고민들을 하실 것 같아서 같이 스터디하면 어떨까 하여 인프런 스터디 공고 공유 드립니다~ 관심 있으시면 연락주세요!!😁

좋아요수
5
댓글수
2
조회수
2177

질문&답변

@Transactional

감사합니다!!!

좋아요수
1
댓글수
2
조회수
396

질문&답변

엔티티설계질문입니다.

답변 정말 감사합니다!!! 의문이 2가지 있습니다 1. 현재 양방향으로 대체한 것이 올바른 것인가요? 양방향으로 하여도 playlist 중심으로 하여, 외래키 참조를 설정한 것이 올바르다고 생각하거든요. 1 : N은 테이블의 외래키 참조가 1에 있기 때문에 헷갈리기 때문이죠 2. 객체는 능동적이어야 하며, playlist 기능은 playlist를 중심으로 하라고 하셨는데 이 말씀은 순수하게 기능적인 면에서 보았을 때 member, playlist, video의 기능을 각각 자기 중심적으로 개발하라는 말씀이신거죠? 회원조회의 기능이라면 member가 참조를 가지고 있는 것이 좋은 것이겠구요. 하지만 저는 회원조회 할 일이 없으니 그럴 필요가 없구요. 다만 playlist는 회원의 기능이 아닌 playlist의 기능이기 때문에 playlist가 중심이 되는 것 이구요 아!! 그리고 혹시 엔티티 설계나 테이블 설계 같은거 하실 때 그림은 어떤 툴을 사용하시나요?

좋아요수
1
댓글수
3
조회수
538

질문&답변

@ModelAttribute

답변 감사합니다. 추가 질문이 있습니다. 아래 두가지 케이스로 모두 했을 때 에러가 발생하지 않는데 이 부분 설명은 조금 길어지는 부분일까요? MVC강의에서 다뤄주실까요? public String updateItem ( BookForm form ) { public String updateItem ( @ModelAttribute ( "boo" ) BookForm form ) {

좋아요수
0
댓글수
3
조회수
502

질문&답변

단위 테스트, 통합 테스트에 대한 질문입니다.

추가 질문입니다. 테스트는 메서드 단위보다는 요구사항? 별로 하는게 좋다는 말도 들었는데 도메인 로직 테스트 시에는 메서드 별로 하는게 좋은건가요?

좋아요수
6
댓글수
3
조회수
1493

질문&답변

Jpql질문

답변 정말 감사합니다!!! 이렇게 길게 써주시다니 귣굳!! 한가지 이해가 안가는 부분이 있어요 테스트 코드로 검증한다고 하셨는데 이 부분은 해당 강의 목록에는 없는 것 같은데 이는 활용1편을 공부하면서 자연스레 이해가 되는 부분일까요?? 스프링 핵심원리도 봤는데 거기서는 DB테스트를 위주가 아니라서 테스트 코드로 검증하기 때문에 1번, 2번 질문의 단점이 해결 된다는게 이해가 될까말까 하네요 ㅎ.ㅎ 감사합니다!!

좋아요수
16
댓글수
3
조회수
529

질문&답변

TestBean 클래스의 자동 빈등록 이유

이해가 되었습니다!!! 감사합니다. 혼자 정리 다시 해보면서 확실히 이해하면 될 것 같아요!! 감사합니다!!

좋아요수
8
댓글수
11
조회수
724

질문&답변

TestBean 클래스의 자동 빈등록 이유

답변 감사합니당 자꾸 도돌이표 질문을 드리는 것 같아 죄송합니다 ㅜ.ㅜ 이해한게 맞는지 확인 부탁드립니다!!! AnnotationConfigApplicationContext빈의 용도는 이름 그대로 어노테이션으로 설정된 클래스를 읽어 컨테이너를 생성하고 컨테이너에 빈으로 등록하는 역할을 하는 것이고, TestBean에 @Configuration이 달려있지 않아도 동일하게 빈으로 등록을 해줍니다. 다만 @Bean이 클래스 내에 정의 되어 있다면 같이 빈으로 등록을 해주는 것이구요. 결국 생명주기?? 라고 해야할지 모르겠지만, 생명주기락고 한다면 크게 3가지로 **컨테이너 생성** -> **빈등록** -> **의존관계주입** 으로 생각합니다. AnnotationConfigApplicationContext는 BeanFactory의 하위 레벨이기 때문에 결국 컨테이너이고, 그렇기 때문에 new AnnotationConfigApplicationContext(TestBean.class)를 했을 때 TestBean에 @Configuration이 없지만, 컨테이너를 먼저 생성 후 TestBean을 등록을 할 수 있습니다. @Component는 3가지 생명 주기를 손쉽게 할 수 있게 해주는 것이구요. 다만, @Configuration이 없을 때의 단점은, 싱글톤이 보장되지 않는다는 것 이구요. 자바 왜냐하면, 결국 자바코드이기 때문에 아래와 같을 때 memberService()에 있는 return new MemberMemoryRepository (); 1번, memberRepository()에 있는 return new MemberMemoryRepository (); 1번 총 2번이 생성 되기 때문에 memberService()의 값과, memberRopository()의 값은 싱글톤이 아니게 된니다. public class AppConfig { @Bean public MemberService memberService() { System.out.println("AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { System.out.println("AppConfig.memberRepository"); } } 추가로 ApplicationContext ac = new AnnotationConfigApplicationContext ( AutoAppConfig . class ); ac.getBean(...); 을 하는 행위를 해주는 것이 @Autowired 입니다. 감사합니다!!! 친철한 답변 감사합니다!!

좋아요수
8
댓글수
11
조회수
724