묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
DB Table 생성, 데이터 입력 외래키 생성 문의
DB table 생성, 데이터 입력 문의jdbc 연결 부분에서 계속 문제가 발생해 maridb 버전을 5점대로 다시 깔고 지금 학습 중입니다. 영상에서 cust_info 테이블에 cust_id를 unique 키로 만들면 외래 키가 만들어지는데 전 안 만들어져서 문의 드립니다?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
생성자가 하나인경우 자동으로 스프링 bin 등록?
스프링 JdbcTemplate 강의 2분 17초 내용 관련하여 질문이 있습니다.생성자가 딱 하나 있으면 자동으로 스프링 bin 에 등록이 되어서 @autowire를 생략할 수 있다고 하는데, 그럴려면관리하고 싶은 객체 클래스에 @Controller, @service, @Repository 혹은 자바로 등록하는 방법인 @Configuration 과 @bean 이 필요하잖아요하지만 2분 17초 화면에서는 위와 같은 애노테이션을 찾아 볼 수 없고, 상속받은 MemberRepostiory 가 자바로 빈에 등록 되어있는 것을 볼 수 있습니다.내가 스프링 bin에 등록하여 관리하고 싶은 객체가 클래스위에 직접 선언 혹은 implements 로 상속받은 클래스가 bin으로 등록 되어 있다면 위의 경우 모두 똑같이 생성자가 딱 하나 있다면, @autowire를 생략할 수 있다고 생각하면 되는지 궁금합니다. 만약 틀리다면 아닌 이유에 설명 부탁드립니다. 또한 @Override 를 붙이는 이유에 대해서도 설명 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@ResponseBody 사용 시 html 파일로 리턴됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컨트롤러에서 아래와 같이 작성해서@ResponseBody @GetMapping("hello-string") public String helloString(@RequestParam("name") String name){ return "helloooooooooo " + name; }http://localhost:8080/hello-string?name=spring를 호출하면.. 개발자도구를 열었을때 단순 string 이 아니라 text/html 을 반환하는데 왜그런건가요?브라우져는 크롬 사용하고있습니다.크롬 개발자도구에서 아래와 같이 보입니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
webapp에서 jsp 오류
webapp안에 jsp를 넣고 웰컴 페이지를 뜨게 하려고 하였으나 404오류가 떠서 진도를 못내고 있습니다. 도와주시면 감사하겠습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@ Controller 와 @Autowired 의미
컴포넌트 스캔과 자동 의존관계 설정 강의에서4분 6초관련하여 질문합니다. @Controller 를 하면 스프링이 MemberController 객체를 들고 있도록 해주는 것이며, 강의 자료에서는 녹색으로 동그라미 쳐져 있는 그림으로 보면 된다.@Autowired는 스프링 컨테이너에 있는 memberService를 가져와서 연결해준다..이렇게 말씀 하셨는데, 위에 제가 알아들은게 맞는 지 궁금하며, 2번 보면 memberService를 가져와서 연결해준다고 하였는데 누구랑 연결을 해준다는 건지 이해가 가질 않습니다. 그니까 Controller를 사용해서 MemberController를 등록하고 그안에서 MemberService 와 연결해주려면 Autowired를 해주면 된다는게 맞나요? 틀리다면 다시 정정해주세요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
GetMapping("") 대신 ("/") 를 사용?
16강 "홈 화면 추가" 강의를 듣고 있는데, @GetMapping("/")으로 기본 홈 페이지를 만드는데 사용하셨습니다. @GetMapping("") 으로 사용해도 되는지 궁금해서 해보니까 가능한 것을 확인했습니다.@GetMapping("") 대신에 ("/") 를 사용해야 되는 이유가 혹시 있는지, 아니면 둘 중 아무거나 사용해도 상관은 없는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:replace랑 layout:decorator 같이 사용 못하나요?
layout분리 작업중 th:replace랑 layout:decorator를 함께사용하니 stackoverflow 에러가 발생하네요. 원래 두개는 같이 사용하지 못하는건가요?페이지 소스코드layout이 될 소스코드
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
인텔리제이 맥북 환경 설정 질문
강사님, 안녕하세요. 강의평이 좋아서 결재를 하였습니다. 최근에는 맥북/인텔리제이 조합으로 강의를 수강하는 사람들이 많아 다른 강사분들도 강의 맨 처음에 개발 환경 설정을 (맥/윈도우) 에 맞게 각각 세팅하는 영상들을 만들어주시는데요. 혹시 똑같이 맥 / 인텔리제이로 환경설정 하는 영상을 만들어 주실 수 있을까요? 개인적으로 개발환경을 두 개를 배워야 한다는게 부담스럽기도 합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ArrayList API 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]ArrayList<> 객체의 인수로 store.values()를 넣고 return 하게되면 어떤 알고리즘으로 store에 저장된 데이터들이 반환되는지 궁금합니다!해당 ArrayList의 API를 보면이런 식으로 구성돼있는 것을 확인할 수 있었는데 이게 무슨 뜻인지 이해가 잘 가지 않아서 여쭤봅니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Task :test FAILED이 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]gradlew build를 하면 이런 에러가 발생합니다. 인텔리제이 설정에서 build Tools > Run tests using 항목을 IntelliJ IDEA로 변경을 해보았으나 에러는 동일하게 발생했지만 해결책을 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build.gadle 파일 오픈시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]프로젝트 생성 시에 아래와 같은 오류가 발생합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JUnit 관련 질문드립니다!
https://drive.google.com/file/d/1unGqgPSn0E7OZF838uysk3upX7nTwUjR/view?usp=share_link회원 리포지토리 테스트 케이스를작성하던 중 버전 문제인지 사진과 같은 에러가 발생해서 질문 남깁니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 용어 인식 불가
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요../gradlew는 잘 되는 것 같은데 grdlew를 작성하니 gradlew : 'gradlew' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.오류가 발생합니다. 어떤 점이 문제인지 파악하지 못해 질문을 올립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
13분에 나오는 main 런 눌렀는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예[질문 내용]여기에 질문 내용을 남겨주세요.이렇게 뜹니다뭘 고쳐야 할까요?ㅠㅠ
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
MyBatis 환경설정과 조회하기 문의
MyBatis 설정 & 조회 문의드립니다.우선 하단의 youtube 영상의<logger name="com.boot.sailing" level="info" /> <root level="Debug"> <appender-ref ref="console" /> </root>추가하여 확인하였지만 error의 구문 자체가 모호해서 어디에서 문제가 발생을 하는지를 모르겠습니다.ioC 구성도 문제 되는 게 없고 코드 상의 오타도 없고 mybatis 쿼리 문도 문제가 없는데 현재 hikariCP에서 문제가 발생하고 있습니다.코드도 점검하고 행여 눈에 보이지 않는 오타 때문인가 싶어 소스코드 내용을 복사하여 붙여 가며 확인을 해보았지만 달라지는 점이 없는데 어디에서 문제가 발생하는지를 모르겠습니다.구글링을 찾아봐도### Error querying database. Cause: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: null ### The error may exist in file [D:\workspace\sailing\build\resources\main\sqlmapper\CoffeeMenu.xml] ### The error may involve com.boot.sailing.dao.MenuDao.doList ### The error occurred while executing a query ### Cause: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: null에러의 경우 대부분 코드 전반적인 부분을 봐야 한다는 글들이 대부분인 관계로 문의드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
설정 관련
수업과는 별개의 질문이지만 ctrl + p 해서 파라미터 힌트를 볼 때 현재 입력해야 하는 부분이 회색배경에 파란색 글씨라 너무 가독성이 안나와서 진한 검정색이나 가독성 좋은 색으로 변경하고 싶은데 혹시 아시는분 계실까요,, 구글링 실력이 제가 부족한지 잘 나오지가 않아서 질문 남겨봅니다 ㅠㅠ참고로 테마는 지금 만족해서 저 색상만 변경하고 싶어요 !
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 ID는 언제 어떻게 생성이 되나요?
세션 ID는 언제 어떻게 생성이 되나요?GPT의 답변으로는 클라이언트가 서버에 최초 접근할때 세션ID를 생성한다고 하는데. 궁금한점은스프링부트를 기준으로 세션ID가 요청이 처리되는 어느과정에서 생성되는지 궁금합니다.서버에서 세션방식을 사용하지 않아도 세션 ID는 항상 생성되는것인지 궁금합니다.스프링부트 기준으로 세션의 생명주기 디폴트 값이 어떻게 되는지 궁금합니다.
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
JS 부분을 줄이고 싶습니다
안녕하세요. 강좌를 듣다가 "이 부분은 좀 더 백엔드 단에다 옮기면 좋을 것 같은데?" 라는 생각이 들어서요. 실제 현업에서도 유효성 검증은 JS 단에서 주로 처리하는지, 백엔드 단에서 주로 처리 하는지 궁금합니다.check() 같은 경우에도 (물론 지금은 강좌 범위와 벗어나지만) @Valid 등 여러 처리할 수 있는 수단이 있을 것 같은데, 아직 초보라 잘 모르겠습니다. 백에도서 충분히 처리 가능한지, 그리고 현업에서도 백단에서 유효성 검증에 대한 책임을 더 두는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Content-Type, Media Type 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 중 Content-Type 과 Media Type 부분이 헷갈리는데 의미상으로는 같아 보이는데 같다고 봐야할까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@InitBinder 질문있습니다
강사님께서 Validator 분리2 4:31초에ItemValidator,UserValidator,이렇게 webDataBinder에 여러개를 등록했을때구분할수있어야하는데 그때 사용되는 메서드가supports 그때에 사용되는거라고 하셨는데@Controller @RequiredArgsConstructor @RequestMapping("/test") public class ValidationTestController { private final TextValidator textValidator; private final NameValidator nameValidator; @InitBinder public void init(WebDataBinder webDataBinder) { webDataBinder.addValidators(textValidator); webDataBinder.addValidators(nameValidator); } @GetMapping("/index") public String myView( @Validated @ModelAttribute NameObject nameObject, Model model) { model.addAttribute("nameObject", nameObject); return "MyView"; } }@Component @Slf4j public class NameValidator implements Validator { @Override public boolean supports(Class<?> clazz) { return NameObject.class.isAssignableFrom(clazz); } @Override public void validate(Object target, Errors errors) { NameObject myTarget = (NameObject) target; if(myTarget.getName().equals("error")){ errors.reject("error"); } } } @Component @Slf4j public class TextValidator implements Validator { @Override public boolean supports(Class<?> clazz) { return TextObject.class.isAssignableFrom(clazz); } @Override public void validate(Object target, Errors errors) { TextObject myTarget = (TextObject) target; if(myTarget.getText().equals("error")){ errors.reject("error"); } } } @Data public class NameObject { private String name; }@Data public class TextObject { private String text; }여기서 실행을 할경우에java.lang.IllegalStateException: Invalid target for Validator [hello.itemservice.web.validation.TextValidator@3c0bfa3c]: NameObject(name=null)오류가 발생이 됩니다.이렇게 다른 validator 2개를 등록하면데이터 바인딩시 두 개다 실행이되면서 하나라도 모델 타입이 맞지 않으면 오류가 발생합니다.그러면 강사님이 답변해주신@InitBinder("모델명")을 입력하는 방법으로 구분해서 따로 등록하는 방법supports에 다 통과하게해서validate()에서 instanceof,isAssignableFrom 리턴으로 하는 방법 supports는 클래스로 구분하는데다른 클래스가 들어오면 오류가 발생하고,모두 같은 클래스가 들어와야하는데여러개의 검증기가 있을때 supports로구분할수있는 경우를 잘 모르겠어요.. https://www.inflearn.com/questions/280541/initbinder%EC%99%80-validated-%EC%82%AC%EC%9A%A9-%EC%8B%9C-%EB%AC%B8%EC%A0%9C-illegalstateexception-invalid-target-for-valida여기에서 답변으로일반적으로 컨트롤러를 만들 때 하나의 컨트롤러는 하나의 모델 객체(Command 객체)를 사용하기 때문에 이렇게 사용해도 큰 이슈가 없습니다.라고 해주셨는데@BeanValidation 파트에서는ItemSaveForm,ItemUpdateForm이라고 모델객체 2개가 사용이 되는데3.지금은 하나의 컨트롤러에서 사용하지만실무에서는 컨트롤러를 분리하나요 ?