묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링과 POJO에 대해 질문드리고 싶습니다.
선생님 안녕하세요 질문을 드리기 전에 스프링과 POJO에 대해 많이 찾아보고 고민했는데, 제가 제대로 이해한 게 맞는지 질문드리고 싶습니다.저는 스프링이 POJO를 지향하는 프레임워크인 이유를 이렇게 이해했습니다.엄밀히 말하면 DTO, VO처럼 인터페이스를 구현하지 않고 상위 클래스를 상속받지 않는 클래스들이 POJO라고 할 수 있습니다.그러나 컨트롤러 클래스는 @Controller라는 어노테이션이 필요하기에, 스프링이라는 프레임워크에 종속된 기술이며, 서비스 클래스도 인터페이스(PSA)를 구현하기에 엄밀히는 POJO가 아닙니다.그렇지만 POJO를 지향하는 이유가 결합도를 낮추고, 응집도를 높여 환경변화를 적게 받고 특정 기술에 종속되지 않기 위한 목적이 있습니다.비록 컨트롤러 클래스와 서비스 클래스는 POJO라고 할 수는 없지만, 최대한 POJO에 가깝게 결합도를 낮추고 응집도를 높여서 재사용성을 높이기 위해 DI, AOP, PSA 를 사용했습니다.즉, 완전한 POJO를 구현한 프레임워크는 아니지만, POJO를 지향하여 최대한 모듈 간 결합도를 낮추고 응집도를 높이고 재사용성을 높인 프레임워크라고 이해했습니다.혹시 제가 제대로 이해했는지 봐주시면 감사하겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의에서 위 코드를 사용한 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자바 기본 문법 중 iterator와 forEachRemaining을 사용하신 것 같은데, 왜 이러한 문법을 사용하셨는지?forEachRemaing 문의 람다식은 무엇을 의미하는지?궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringDataJpaMemberRepository를 직접 사용하는건 아닌가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용]JPARepository 를 상속받는 SpringDataJpaMemeberRepository 의 오버라이딩 함수를 사용하려면 Repository 를 주입하는 Config 에서 부터 시작해서 주입된 서비스 에서 까지 소스를 전부 SpringDataJpaMemeberRepository 를 주입받도록 수정해주어야 사용이 가능하지 않은가요?기존 소스 변경없이 모두 MemberRepository 만 사용하던데, 그러면 JpaRepository 를 확장하는 인터페이스의 이점을 살리지 못하는게 아닌가 궁금합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
코드 질문합니다
private static void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) { //request에 member저장 model.forEach((String, Object) -> request.setAttribute(String,Object)); System.out.println("modelToRequestAttribute model = " + model.get("model")); }이 코드에서요model.forEach((String, Object) -> request.setAttribute(String,Object));여기서 MemberSaveControllerV3 클래스가 실행된다면String에는 "member" Object에는 member객체가 들어가게 될텐데요 member객체가 루프를 돈다고하면String username = paramMap.get("username"); int age = Integer.parseInt(paramMap.get("age"));member객체에 저장된 이 2개의 변수가 루프를 도는게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
OpenJDK 64-Bit Server VM warning
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MemberServiceIntegrationTest 회원가입을 실행하는 과정에서 OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended이 오류를 어떡해야할지 모르겠어요
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
mapper 이용을 할 때 500 에러가 나고 있습니다.
controller 단에서 호출하는 mapper 가 오류가 나고 있습니다... 화면에서 crud 시킬때 500에러:Request processing failed; nested exception is java.lang.ClassCastException: java.lang.String cannot be cast to kr.board.entity.MemberUser근본이유:java.lang.ClassCastException: java.lang.String cannot be cast to kr.board.entity.MemberUser kr.board.controller.MemeberController.memRegister(MemeberController.java:118). controller에서 syso 찍어가며 넘어가야할 값들이 다 들어있는것을 확인했습니다.그런데도 매퍼 접근하려고하면 오류가 나고 있습니다.콘솔에서의 오류:Exception in thread "main" java.lang.NullPointerException at kr.board.controller.BoardRestController.wifiInfoInsert(BoardRestController.java:66)
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
11:17 쯤에 mv.getModel().put("member",member);에 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]mv.getModel().put("member",member);에서 mv.getModel()을 해서 model을 불러와 put하는 것까지는 이해가 됩니다.근데 ("member", member)을 하는 이유를 모르겠습니다. member를 넣어서 map을 넣는건가요?그리고 제일 이해가 안되는 것이 "member"부분입니다. 이것은 무슨의미인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByID 구현 in Test
[질문 내용]Test 클래스에 findByID를 구현해보려고 했는데id를 하나 만들때마다 sequence를 하나씩 올려서 저장해야될 거 같은데Main클래스의 sequence가 private여서 그런가 sequence 자체에 접근이 불가능한 거 같습니다.구현 어떻게 해야될 지 힌트라도 얻고 싶습니다!!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핸들러 매핑 어댑터 질문
저희가 만든 핸들러매핑과 어댑터 목록을 map과 연결리스트에 저장해두고 http요청이 오면 그 안에서 찾아서 처리했는데지금 이미 만들어진 스프링에서는 핸들러와 어댑터들이 모두 스프링 컨테이너에 들어가 있다고 보면 되나요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증 관련해서 궁금한 점이 있습니다.
검증 관련해서 궁금한 점이 있습니다. Controller-Service-Repository 구조 + validator 인터페이스를 구현한 클래스가 있다고 했을 때, 사용자가 보낸 uuid가 DB에 존재하는지 여부 검증을 Repository 또는 Service에서 하는게 좋은가요? validator 인터페이스를 구현한 클래스에서 하는게 좋은가요? 아니면, 일관되게 개인이 정하면 되는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿 response가 작동하지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (네)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (네)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (네)[질문 내용]콘솔창에는 username이 kim으로 들어가는데인터넷창에선 뜨지 않습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
localhost:8080/basic/items 이부분이 Whitelabel Error Page 에러나옵니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]localhost:8080/basic/items url에 호출하면 Whitelabel Error 404 에러나옵니다BasicItemController 의 소스코드 입니다.강사님 자료와 동일하게 복붙도 해보았지만 계속 같은현상입니다. 제가 다른 확인할 부분이 있을가요?
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
Sailing프로젝트 오류
드라이버 로딩 오류가 나는데, 2.7.6, 2.7.7, 2.7.13 모두 오류가 발생합니다.제컴에 mysql이 설치된 상태입니다. 프로젝트는 메일로 보내드렸습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Create Table Error
sql 테이블 생성 시 이와 비슷한 질문들을 보았을 때는 오타 수정이었지만 이 경우에는 오타가 5번정도 다시 봐도 없는 것 같아서 질문드려요 어떻게 해야할까요....
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2.bat 실행이 안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. cmd를 관리자 권한으로 실행한 뒤 cd C:\Program Files (x86)\H2\bin 문장으로 directory 변경 후 "h2.bat"와 h2.bat로 실행을 하고자 하였지만 사진에서 확인할 수 있듯이 아무런 반응이 없었습니다.(웹페이지 생성x) 그렇다고 cmd가 꺼지거나 특별한 오류메시지가 뜨지도 않아서 해결 방법을 얻고자 질문을 작성하였습니다. 이클립스의 application.properties에는 두번째 사진과 같이 추가하였고, build.gradle에는 runtimeOnly 'com.h2database:h2' 문장을 dependencies에 추가하였습니다. h2 database는 windows installer로 1.4.200 을 다운 받았습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello.html 오류
hello.html에서 thymeleaf 엔진을 받아오지 못하는 것 같은데 어디서 오류가 있는지 찾아주세요... 앞선 질문들에서 나왔던 8080포트의 중복인가 싶어 방법대로 8080 포트 프로세스 종료 후 재실행 & 다른 포트 번호로 접속. 두 가지 방법으로 다 해보았지만 계속 /hello에서 에러가 뜹니다 ㅠㅠ 도움 부탁드려요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Compoent 사용시 순환 참조가 일어나지 않는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 순환 참조 문제가 발생하여 커뮤니티 글을 확인하고 해결하였는데요, 해당 링크를 참고해도 이해가 가지 않는 부분이 있어서 질문 남깁니다."@Around에서 자기 자신을 포함하고 있기 때문에 순환 참조가 발생한다" 라는 것은 이해를 했는데 "컴포넌트 스캔을 사용할 때는 AOP의 대상이 되는 이런 코드 자체가 없기 때문에 문제가 발생하지 않았습니다." 이 부분이 이해가 되지 않습니다. 컴포넌트 스캔을 사용해도 @Around에 명시한 경로에는 자기 자신인 TimeTraceAop 가 포함되는데 왜 이 경우에는 순환 참조가 일어나지 않는 것 인가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오타 제보합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]간단한 경계값 범위 오타 같아요.강의 자료 검증1 5page if (item.getQuantity() == null || item.getQuantity() >= 9999) { errors.put("quantity", "수량은 최대 9,999 까지 허용합니다."); } item.getQuantity() > 9999 로 조건문 범위 변경.그외 13,18,22,24,35page도 마찬가지로 수정이 필요한것 같습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 시에 세션객체
스프링 세큐리티의 userDetails를 이용해서 로그인을 구현할 때멤버 테이블의 모든 정보를 담지말라고 하던데... 여기에 pk정도만 담는게 맞을까요?public class CustomMemberDetails implements UserDetails { private String username; private String password; private Collection<? extends GrantedAuthority> authorities; }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ws와 was 질문이 있어요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]저희가 강의에선 was 톰캣 하나로 웹서버를 구동 시킬수있는데ws 아파치도 웹서버를 구동 시킬수 있자나요?문제는 실무에서 아파치도 띄우고 톰캣도 띄우는데 중복이 되서오류가 날꺼라고 생각이 드는데 어떻게 작동되는지 궁금합니다.예로들어 톰캣은 8080으로 띄우고아파치는 9090으로 띄우는건가요?클라이언트에서 요청을 하면 9090 에서 요청 받고 동적인 컨텐츠면 8080으로 요청 하는식으로요