========================================= [질문 내용] FrontControllerServletV4 model map이 참조 변수로 model값을 빼서 render메소드를 호출에 view에 값을 넘기는건 알겠습니다. 근데 frontcontroller는 싱글톤 객체이고 메소드에 동시 접근한다고 가정하였을때 model 변수에 동시성 문제가 생기지 않는 이유를 알고싶습니다. 아무래도 동시에 save를 한다고 가정하면 model 변수를 동시에 참조하여 문제가 생길꺼같은데 이렇게 설계한 이유를 알고싶습니다.
안녕하세요 강사님 예전에 들었던 강의 다시 복습하면서 테스트해보고 있는데 http://localhost:8080/api/members/bad 를 포스트맨으로 실행하면 강의에서처럼 json 형태로 응답을 받지만 크롬에서 해당 url을 치면 BasicErrorController가 실행되는지 error/4xx.html 화면이 렌더링이 됩니다. 빈 ModelAndView를 리턴하는데 이게 어떻게 가능한 건지 잘 이해가 되지 않습니다. sendError에 400을 설정해줘서 BasicErrorController가 알아서 error/4xx.html 화면을 렌더링해주는건가요? 답변 주시면 정말 감사드리겠습니다 !
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 여긴 memberServiceImpl.class package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save (member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //test public MemberRepository getMemberRepository() { return memberRepository; } } 요긴 ConfigurationSingletonTest.class package hello.coresingleton; import hello.core.AppConfig; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.OrderServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions. assertThat ; public class ConfigurationSingletonTest { @Test void configurationTest() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService. getMemberRepository(); //여기 MemberRepository memberRepository2 = orderService.getMemberRepository(); System. out .println("memberService -> memberRepository = " + memberRepository1); System. out .println("memberService -> memberRepository = " + memberRepository2); System. out .println("memberRepository = " + memberRepository); assertThat(MemberService. getMemberService()) .isSameAs(memberRepository); //여기 assertThat (orderService.getMemberRepository()).isSameAs(memberRepository); } } 오류내용 Cannot resolve method 'getMemberRepository' in 'MemberService' Cannot resolve method 'getMemberService' in 'MemberService' 그대로 적었는데 왜 그런지 모르겠어요
create에 title, desc 값을 입력하고 제출 버튼을 클릭하면 개발자도구에 react developement tool에서는 contents에 4번째 값이 추가된게 반영이 되는데 화면상으로는 추가가 안됩니다... 제출시 바로 화면에 추가가 되지않고 TOC.js 코드를 조금이라도 변경한뒤 다시 저장하면 그제서야 추가가됩니다. 혹시 이유를 알 수 있을까요>
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] >> 로컬 환경 스프링부트 3.1.2 hibernate-core 6.2.6 안녕하세요! Projections.bean()은 setter를 이용해서 인스턴스를 만든다고 하셨는데, getter/setter를 전부 제거해도 테스트를 통과하고 인스턴스도 잘 초기화가 되어버렸습니다. 좀 이상하기도 하고 bean()와 fields()가 동작 방식이 거의 같은 것 같아 확인해보니 new QBean<T>를 할 떄 fields()에는 fieldAccess 파라미터에 true를 인수로 넣는 차이밖에 없더라고요. public static <T> QBean<T> fields(Class<? extends T> type, Expression<?>... exprs) { return new QBean<T>(type, true, exprs); } 라이브러리 코드를 보면 fieldAccess가 true면 this.fields에 값을 바인딩하고 this.setters는 emptyList로 초기화하고 fieldAccess가 false일 경우 this.fields를 emptyList로 초기화하고 this.setters에 값을 바인딩하는데요. if (fieldAccess) { this.fields = initFields(bindings); this.setters = Collections.emptyList(); } else { this.fields = Collections.emptyList(); this.setters = initMethods(bindings); } 실무에서 활용할 때 이 두 함수 관련해서 주의점이 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 유사한 질문이 있어서 권한 설정도 확인해봤는데 문제없었습니다. 문제가 뭘까요? 참고로 저는 패키지 매니저를 npm대신에 yarn을 사용했습니다! yarn global add serve 까지 해둔 상태입니다!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
에뮬레이터에서 이미지를 불러오려고 하면 Unable to load asset이 뜨면서 보이지 않습니다! web으로는 'images/logo.png' 경로로 주면 뜨는데 에뮬레이터는 둘 다 안됩니다. pubspec.yaml 파일에 이렇게 넣어주었습니다. 폴더는 이렇게 설정했습니다!
안녕하세요. 인프랩의 CTO인 향로입니다. 저는 개인 블로그 와 유튜브 채널 을 통해서 제 생각 혹은 다른 개발자분들의 멘토링을 진행하곤 했는데요. 최근에 원티드 CTO이신 황리건님의 글 을 보고, 저도 인프런 커뮤니티를 활용해서 이런 고민상담에 답변해드리면 좋을것 같다는 생각을 하게 되었습니다. 공개적인 공간에서 여러 사람들과 고민을 나누는 것 자체가 질문한 본인에게도, 그 질문과 답변을 본 다른 분들에게도 도움을 많이 주더라고요 ㅎㅎ SI, 포털, O2O 스타트업, 에듀테크 스타트업 등 회사들을 거쳐오면서 엔지니어 생활을 해왔는데요. 개발자로서의 취업에 대한 고민이나, 대기업 -> 스타트업 합류에 대한 고민, 어떻게 학습하고 성장해야하는지, 어떻게 커리어를 쌓아야하는지 등등 개인적인 고민들이 있으시면 이 글의 댓글로 남겨주시면 제가 댓글로 답변 드리도록 하겠습니다 :)
설정 후 run 하면 If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. 라는 문구가 뜹니다. 그래서 mysql에 다시 한번 sql문구를 쓰고 다시 처음부터 강의대로 해봤는데도 안되서 구글링해도 모르겠어서요ㅠㅠ
안녕하세요. 방금 강의에서 말씀하신대로 SourceTree에 Github와 연계되서 URL을 저장하고 기타 등등 잘 따라오고 있는데 VSCode에서 git remote까진 되었습니다. 근데 문제는 'origin'이라는 단어만 뜨고 그 외 복사된 해당 URL은 뜨지 않습니다. 무슨 이상일까요?
안녕하세요 원두멘토님ㅎㅎ 이런 에러가 계속 떠서 docs와 스텍오버플로우에 검색을 해보니 Passport-jwt를 import하는 것이 아닌 passport-local을 import하는 것이라해서 했더니 다행히 실행이 됩니다. 수업내용에서는 passport-jwt로만 해도 작동이 잘되는 것 같은데 왜 이런 문제가 생기는 것일까요? 그리고 passport-local로 하면 실제 배포에서는 사용 못하는 것이 아닌지 질문을 남깁니다. p.s 재작년에 코캠2기 수료하고 백엔드를 많이 기다렸는데 이렇게 인프런에서 다시 인강으로 뵙게 되서 너무 반갑습니다
[질문 내용] POST 전송 방식에서 회원 등록의 URI가 /members 인 경우, 서버는 /members/100 과 같이 생성된 회원 정보를 다시 응답 데이터로 전송하는데 이렇게 하는 이유가 뭔가요? 클라이언트 측에서 회원 등록 요청을 보낸 후 생성된 리소스 식별자를 이용해서 또 다른 작업을 하는건가요?