묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
templates html 실행
현재 IDE은 이클립스 사용중입니다.내용은 모두 강의와 동일하고, 아래와 같이 html파일들을 위치시켰을 때, static에 저장된 index.html은 실행이 잘되는 반면에 templates에 저장된 hello.html과 hello-template.html은 가져오지 못하고 whitelabel error page 로 연결되는 오류가 발생합니다.어떤 부분이 잘못되었는지 확인해봐야 하나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
JDBC 반복 문제 해결 - JdbcTemplate에서 이거도 결국 AOP기술인가요?
마지막에 리포지토리까지 깔끔하게 만들었는데 이거도 서비스 로직에서 AOP사용하는 거처럼 같은 원리인거도 같은데 MemberServiceV4Test에서 @Test void AopCheck() { log.info("memberService clas={}", memberService.getClass()); log.info("memberRepository clas={}", memberRepository.getClass()); Assertions.assertThat(AopUtils.isAopProxy(memberService)).isTrue(); Assertions.assertThat(AopUtils.isAopProxy(memberRepository)).isFalse(); }얘는 잘 작동하더라구요Assertions.assertThat(AopUtils.isAopProxy(memberRepository)).isFalse(); 로요JdbcTemplate는 프록시객체 만들어서 넣어주는 방식이 아닌가여? 사실 앞으로 고급편까지 듣긴할건데 그때 나오겠죠?..
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
webapp에 대해 궁급합니다
[질문 내용]여기에 질문 내용을 남겨주세요.main> webapp> index.html 의 경로로 설정하면 localhost:8080 실행시 기본으로 index.html 이 실행되고 이것이 welcome 페이지인 것은 이해하였습니다.그럼 webapp을 컨트롤러를 사용하지 않아도 파일을 열 수 있도록 해주는 디렉토리 정도로 이해해도 될까요? 무조건 실행되는..?근데 이렇게 생각하면 왜 basic.html도 있는데 index.html이 실행되는건지 헷갈리기도 하고.. webapp의 정의? 원리? 를 잘 모르겠습니다.. 답변 부탁드리겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. BindingResult가 model로 자동 등록되서 타임리프 코드에서 th:object="${item}"이 여기서 등록된걸 참조하는것 같은데요 @ModelAttribute도 model로 자동 등록하지않나요? 그러면 item이라는 이름으로 model에 등록된게 같은이름으로 2개가 아닌지요?
-
해결됨스프링 핵심 원리 - 기본편
생성자 주입 시 사용하는 @Autowired 에도 required=false 사용가능한가요?
안녕하세요 복습을 하는 중에 궁금한점이 있어서 글을 남깁니다.pdf 정리글 중항상 생성자 주입을 선택, 그리고 가끔 옵션 필요시 수정자 주입 선택.라는 부분이 존재하는데그럼 생성자 주입 때는 required=false를 사용하면 안되는 이유가 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
Request에 따라 다른 bean을 선택하는 법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]OCP관점에서 컨트롤러 설계에 관해 궁금한 것이 있습니다.@Controller public class PaymentController { @PostMapping("/payment") public void pay(@RequestBody PaymentRequest req) { CardPaymentService cardPaymentService = cardPaymentFactory.getType(req.getType()); cardPaymentService.pay(req); } } @Service public class APaymentService implements CardPaymentService {...} @Service public class BPaymentService implements CardPaymentService {...} public class CardPaymentFactory { ... public CardPaymentService getType(CardType type) { CardPaymentService cardPaymentService; switch (type) { case A: cardPaymentService = aCardPaymentService; break; case B: cardPaymentService = bCardPaymentService; break; default: throw new IllegalArgumentException(); } return cardPaymentService; } } 위와 같은 구조가 있다고 할 때저런식으로 switch-case 문으로 설계하면 OCP 원칙에 위배된다고 생각하여 아래 내용이 궁금합니다.CardPaymentService cardPaymentService = cardPaymentFactory.getType(req.getType());(위 코드를 없애는 방법이 궁금합니다)Factory class 없이 Controller에서 req에 따라 자동으로 맞는 service가 주입하는 방법은 없는지? 설계를 다르게 해야하는지?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
transactionManager.commit() 호출 시 커넥션 정리
transactionManager.commt() 또는 transactionManager.rollback()이 호출되면 트랜잭션 매니저가 자동으로 커넥션을 커넥션 풀에 반납해주는 것이 맞나요? 이때, con.setAutoCommit(true); 코드도 자동으로 실행되나요?
-
해결됨스스로 구축하는 AWS 클라우드 인프라 - 기본편
php가 아닌 spring프로젝트를 배포할 때 질문입니다.
안녕하세요. 수업에서 배운 3Tier인프라를 똑같이 배포하려는데, 이 때 PHP가 아닌 spring Java 프로젝트로 배포하려고 합니다.이 때 각각의 서버에 프로젝트 파일을 어떻게 배포해야할지 모르겠어서 며칠간 구글링해봐도 답을 찾지 못해 글을 남깁니다.원래 spring 프로젝트를 배포할 때, 대부분 ec2 인스턴스에 Tomcat서버를 설치하고 프로젝트의 jar파일 또는 war파일을 Tomcat서버에 압축 해제해서 프로젝트를 배포하는 걸로 알고 있습니다.이렇게 배포하는 방법은 WAS인 Tomcat서버를 Web서버이면서 동시에 App서버로 활용하는 것인데, 이렇게 배포하는 방법이 WAS-DB의 2Tier 구조인가요?저는 2Tier구조가 아닌 강사님이 알려주신 Web - WAS -DB 의 3Tier로 배포하려고 합니다.현재 Web인스턴스에 Apache, WAS인스턴스에 Tomcat, RDS인스턴스에 mysql을 설치해준 상태입니다.그런데 spring 프로젝트 파일을 어떻게 배포해야 할지 모르겠습니다.WAS인스턴스에 war나 jar파일을 압축 해제시키면 배포가 가능하지만 3Tier구조로 배포하려니 프로젝트 압축 파일을 어떻게 각 서버에 넣어주어야 하는지 모르겠습니다.답변주신다면 정말 감사하겠습니다.
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
수업자료 다운로드 위치가 안보입니다 ㅠㅠ
수업자료 ppt가 초반에 다운받는 링크가 어디 있었던걸로 기억하는데 해당 링크가 안보이네요 ㅠㅠㅠ.......
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
css style 태그 적용
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]CSS <style> 태그의 클래스이름과body에서 input 태그의 클래스 이름 설정이 다른데 어떻게 적용이 되는지 궁금합니다. <style> .container { max-width: 560px; } .field-error{ // 이 부분 border-color: #dc3545; color: #dc3545; } </style> <div> <label for="itemName" th:text="#{label.item.itemName}">상품명</label> <input type="text" id="itemName" th:field="*{itemName}" th:class="${errors?.containsKey('itemName')} ? 'form-control field-error' : 'form-control'" class="form-control" placeholder="이름을 입력하세요"> <div class="field-error" th:if="${errors?.containsKey('itemName')}" th:text="${errors['itemName']}"> 상품명 오류 </div> </div>아래 코드를 보면 오류 발생시클래스 이름을 'form-control field-error'로 설정했는데 css를 보면 .field-error 으로 클래스 이름을 찾아서 적용하는데 어떻게 이렇게 되는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemorymemberRepository와 memberRepository에 대아혀
MemorymemberRepository가 memberRepository를 구현하고 있는데 그러면 이 부분에서 MemberRepository memberRepository; 로 선언하는게 아니라 MemoryMemberRepository memberRepository; 로 선언한 후 사용해야 하는것 아닌가요,,? 인터페이스를 구현한게 MemoryMemberRepository인데 memberRepository로 선언을 해서 계속 사용하면 MemoryMemberRepository에서 구현한 내용을 못보는것 아닌가요,,?? MemberRepository memberRepository = new MemoryMemberRepository();MemberService memberService = new MemberService(memberRepository);이런 식으로 따로 생성을 해서 사용해야 하는것이 아닌가 궁금합니다!
-
미해결실전! 스프링 데이터 JPA
메소드 이름으로 쿼리 생성 - 내부 동작
안녕하세요, [메소드 이름으로 쿼리 생성 메소드] 강의 중 메소드 이름을 분석해서 JPQL 쿼리 실행 부분에 질문이 있습니다. 예를 들어 findByUsernameAndEmail()과 같이 이름을 정의하였을 때, 내부적으로 SQL을 어떻게 생성하는지 궁금합니다. '자바 ORM 표준 JPA 기본편' 강의에서 em.persist()를 실행하면 영속성 컨텍스트 내부에서 SQL을 생성하고, SQL 쓰기 지연 저장소에 저장하는 것을 설명해주셨습니다. 즉, 컴파일 시점이 아닌, 런타임 시점 동적으로 쿼리를 생성하는 것으로 이해하였습니다. 위에서 말씀 드린 findByUsernameAndEmail()과 같은 경우 jpql로 변환되어서 쿼리가 실행된다고 말씀해주셨습니다. 어떠한 방법을 통해, 내부적으로 어떠한 로직을 거쳐 런타임에 jpql로 변환이 될 수 있는지 궁금합니다. 감사합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
프론트엔드 부분 관련 질문
안녕하세요!선생님의 강의를 너무나 재밌게 잘 듣고 있는 수강생입니다.현재 배포 준비하기 전까지 강의를 들었는데요, 강의와 함께 구현된 기능 외에 추가적인 기능을 구현해보고 싶어서 질문드립니다!유저의 대출 기록을 보여준다거나 하는 다양한 기능들을 프론트엔드 부분에서도 추가하여 만들어보고 싶은데 저희 프로젝트의 index.html, main.d4f24480.js 등을 둘러봐도 어떻게 건드려야 할지 전혀 감이 안오더라구요! 목록에서 유저들 정보가 뿌려지는 부분의 코드도 못찾아서요ㅠ괜찮으시다면 저희 프로젝트에서 프론트적인 부분을 어떻게 만드셨는지나, 동작하는 큰 흐름 혹은 간략한 설명이라도 부탁드려도 될까요??ㅜㅜ 좋은 강의 만들어주셔서 감사합니다:)
-
미해결Practical Testing: 실용적인 테스트 가이드
Presentation Layer 테스트 (1) 관련 질문이 있습니다!
안녕하세요! PresentationLayer 테스트(1) 수강하며 문득 든 궁금증이 있어서 질문을 드립니다.강의 36:03 쯔음에서 Product가 하나도 저장되지 않은 상태를 테스트할 때, 새로운 Product의 최신 번호를 조회하게 되면 "001"이 되는 과정에서 ActiveProfile을 test로 해주지 않아 DB에 데이터가 임의로 들어가 있던 것 때문에 테스트 통과가 되지 않았는데요.그러면 그 전에 진행했던 createProduct 테스트의 given에서 Product를 하나 저장한다면 여기서도 ActiveProfile이 test이지 않았던 상태였기 때문에 저장한 데이터가 4번째 데이터가 되어야 하고 그랬다면 테스트 통과가 안 되어야 하는게 맞지 않았나..? 하는 갑작스러운 의문이 들었습니다.제가 놓치고 있는게 무엇일까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
스프링 트랜잭션 전파에 대해서 질문이 있습니다.
안녕하세요. 선생님. 좋은 강의 만들어주셔서 너무 감사드립니다.스프링 트랜잭션 전파 부분을 공부하던 중에 궁금한점이 생겨서 질문을 올리게 되었습니다.강의를 들으면서 외부 트랜잭션과 내부 트랜잭션이 묶여서 하나의 트랜잭션이 되는것으로 알게 되었습니다혹시 외부 트랜잭션과 내부 트랜잭션에 대한 데이터 베이스 서버가 다를 경우에도 기존과 동일하게 하나의 트랜잭션으로 묶이게 되나요?
-
미해결스프링 부트 - 핵심 원리와 활용
intellij 무료버전 tomcat runner 무반응으로 강의 진행이 불가능합니다.
https://www.inflearn.com/questions/856870/intellij-%EB%AC%B4%EB%A3%8C%EB%B2%84%EC%A0%84-tomcat-runner-%EC%8B%A4%ED%96%89-%EC%98%A4%EB%A5%98이 글과 동일하게 configuration에서 tomcat runner를 클릭해도 무반응입니다.plugin이 설치되어 있고 활성화 된 상태인데 제대로 작동이 안되네요.캐시 삭제를 해도 해결되지 않습니다. 다른 plugin들은 설치 시 잘 작동합니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
Spring REST Docs 관련 질문
안녕하세요 강사님, 우선 꿀팁 가득차있는 강의 너무너무 잘 들었습니다.Spring REST Docs 관련해서 질문이 있습니다. 강의에서는 이미 레이어별로 테스트 코드를 작성하였는데요. Spring REST Docs 적용하면서 별도의 ProductControllerDocsTest 클래스를 만들어 createProduct()의 동일한 테스트 코드가 문서를 위해 또 들어가는 것 같아 관리해야할 테스트 코드가 두배가 되는게 아닌가 궁금해서 질문드립니다! 실무에서는 이렇게 테스트 전용 테스트코드와 문서용 테스트 코드를 별도 분리하는지, 아니면 둘을 함께 포함하여 하나로 작성하는 방식인가요? ~ 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
view render 에 질문이 있습니다.
[질문 내용]강의 약 19분 00초에서 view.render()를 해줄 때 모델 객체도 같이 넘겨줘야한다 하셨는데... 모델 객체는 왜 같이 넘겨주어야 하나요?이미 view는 어떤 페이지로 갈지 알고 있고, request 값은 createParamMap(request) 를 통해 넘어온 값을 재정의? 해주는걸로 생각하고 있는데, 모델객체가 왜 필요한지 잘 이해가 안갑니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인스턴스가 두개일 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님이 설명해주신 것 중 memberService쪽과 memberRepository에 있는 MemoryMemberRepository는 다른것이다 라고 말씀하셨습니다 따라서 인스턴스가 두개가 만들어진것이고 static이라 문제가 없을 테지만 static이 아니라면 다른 DB를 사용하는 것이기 때문에 내용이 틀려 질 수 있다고 하셨는데여기에 대해서 더 자세히 알고싶습니다.왜 다른 것인지 궁금합니다좀 더 찾아보고 싶은데 어떤 개념을 검색해보면 될까요 ? 감사합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HashMap 에 Integer를 넣어도 되지 않나요?
[질문 내용]강의에서 약 10분25초 쯤에 MemberSaveControllerV3 에서 age 를 Integer 형태로 변환을 해주고 있는데 처음부터 HashMap에 String이 아니라 Integer 형태로 반환해주었다면 Integer 변환 처리는 안해도되지않나요??HashMap 에 String, String으로 설정?한 이유가 궁금합니다.