묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 프로젝트를 위해 자바강의와 스프링부트강의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]안녕하세요.잘 듣고 있는 수강생입니다. 지금 스프링부트로 프로젝트를 하려고하는데 자바문법기본도 아직 익숙치 않은 상황입니다. 그래서 지금 강의를 자바 기본편부터 듣고 스프링부트강의를 듣는게 나을까요? 아니면 프로젝트를 위해서 스프링부트 강의를 먼저 듣는게 나을까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]개인프로젝트에서 운영 및 로컬DB는 mysql을 사용하고 유저 테이블 이름을 user라고 하였고, User.java 엔티티 클래스를 만들었습니다.테스트DB는 h2 인메모리db를 사용하여 진행했는데, h2에서 user 는 예약어이기 때문에 테스트 도중 sql구문이 맞지 않아 실패했다고 합니다.Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "insert into [*]user (login_id,password,user_id) values (?,?,default)"; expected "identifier"; SQL statement: 위 문제를 해결하기 위해 구글링해보았는데mysql에서 테이블 명을 바꾸고 자바 코드의 User 이름들도 바꾼다.User.java 엔티티클래스에@Table(name = "\"user\"")를 추가하여 sql 구문이 생성될때 "user" 로 생성되게 하여 H2의 예약어 user를 피한다.테스트 db를 mysql로 설정한다.이런 방법들을 찾았습니다. 일단 추가적인 사이드 이펙트가 발생하지 않는 1번으로 했는데, 만약 김영한 선생님이라면 이 방법들중 어떤 방법을 사용할지, 아니면 또 다른 방법이 있는지 궁금합니다.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문
트랜잭션도 @Transactional을 사용하면 일종의 aop로 작동하지 않습니까?@Transactional은 그러면 우선순위가 어느정도인지 궁금합니다.그리고 커스텀aop를 적용할때 트랜잭션보다 먼저 적용해야하는 건지도 궁금합니다.그리고 @Repository를 사용하면 sql 체크 예외를 DataAccess 언체크 예외로 바꿔주는 aop가 있다는데, 그러면 @Repository가 @Transactional보다 우선순위가 낮아야지 언체크 예외로 변한 예외를 보고 트랜잭션이 롤백을 할텐데, 그러면 Repository는 무조건 Transactional 보다 우선순위가 낮게 만들어진건지도 궁금합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
아이솔레이션 레벨에 관한 내용도
관련 내용도 이 강의에 들어가있을까요?아니면 다른 강의에있을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
jpa와 기타 db 기술을 혼합해서 사용할 때 질문드립니다.
여러가지 repository를 만들어야하나요?예를들어서 mybatis, jdbctemplate, 스프링jpa, 순수jpa, querydsl을 사용한다고 할때mybatisRepo, JdbcRepo, 스프링JpaRepo, 순수Jpa + querydslRepo, 이런식으로 다 나눠서 하는게 맞는걸까요?? 그러면 강의에서 말씀해주신 것처럼 DIP 원칙은 위배될텐데 그래도 되는걸까요? DIP원칙 위배되지 않게 하기위해서 각 repo별로 인터페이스 만드는것도 뭔가 이상해보이기도 하고... 헷갈리네요 Jpa를 사용한 후에, mybatis나 jdbctemplate같이 수정과 조회를 디비에서 체크하는 db기술을 사용한다고 할때, 이전 jpa 사용에서 어떤 수정이 이루어졌었다면 그건 영속성 컨텍스트에 저장되어있기만하고 아직 flush를 하지 않아서 디비엔 반영이 안되어 있는 상태라서 mybatis나 jdbctemplate를 이용할 때 뭔가 데이터 정합성이 안맞는다거나 하는 문제가 발생할 수 있기에(뇌피셜) 아무튼 jpa 사용 후 mybatis, jdbctemplate 사용하려면 사용하기 전엔 flush를 꼭해줘야 한다고 하셨는데, 그러면 service 레이어에서 entitymanager를 의존받아야 하는데 이게 맞는건지 궁금합니다. jpa 기술을 서비스레이어까지 끌고오는게 어찌보면 좀 안맞는거같고 그걸 피하기 위해서 트랜잭션 aop를 사용한것 같은데... 그래도 db기술 혼합사용시에는 그냥 service 레이어에 entitymanager를 의존받는게 맞는걸까요?jpa를 이용한 db 처리방식은 효율적인 건가요??항상 효율적인 것 같지는 않지만, 영속성 컨텍스트를 체크해서 결국 마지막에 최종 변환 된 것만 쿼리를 날려서 수정을 한다던가 하는 부분은 뭔가 효율적인것처럼 보이지만서도, 단순히 update하나만 한다고 가정하면, find로 select 쿼리를 한번 날리고 setXXX으로 객체에 뭔가 변화를 줘서 커밋직전 flush에서 update쿼리를 한번 더 날린다고 생각하면 또 비효율적인거 같기도하고 잘 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ID는 Transactional 으로 rollback이 안되나요 ?
@Transactional 을 써주면Test 후에 data가 반영 되지 않고 rollback 되는거라고 이해했는데요,id 값은 계속 올라가는데 이건 왜그러는걸까요 ..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
html이 선행학습이 되어있어야 할까요 ?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요스프링 mvc2를 수강하는 중 궁금한 점이 생겨 여쭤보게 되었습니다.제가 로드맵을 하나씩 쭉 차근차근 따라오는 중인데, 이번 스프링 mvc2는 유독 mvc1에 비해 따라가기가 어렵다는 생각이 드네요..이유를 생각해보니 html에 대한 기본기가 하나도 없는 상태인 것 같은데, 아직 다 수강한 것은 아니지만 초반 부분은 타임리프와 스프링을 함께 사용하는 부분이 많은 것으로 보입니다. 복습까지 반복을 해도 이해가 잘 안되는 상황인데 기본적인 html 지식이 선행되어야 이번 mvc2 이해가 잘 될까요 ?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
다중 스레드 환경에서 ArrayList를 안전하게 사용할 수 있나요?
[질문 내용]강의 퀴즈를 풀고 있는데 이해가 안 가는 부분이 있습니다.답이 HashMap인데ArrayList나 Array는 다중 스레드 환경에서 안전하게 사용할 수 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
store를 List로 만들지 않고, Map으로 만든 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. store를 List로 만들지 않고, Map으로 만든 이유가 궁금합니다.더 효율적인 뭔가가 있는지요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Transactional 어노테이션을 썻지만, h2 DB가 롤백이 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]***문제해결****JDBCRepository 구현시이걸 안 붙혀넣고이렇게 써서 생긴 오류인 것 같습니다.. 다른 질문글에서 보고 알았습니다 하하..***************@Transactional 어노테이션을 썻지만, h2 DB에서 롤백이 되지 않습니다.롤백이 되지 않은 이유가 스프링 버전과 h2 버전이 바뀌어서 그런건가요?테이블을 초기화하고 스프링통합memberServiceTest 를 진행하니 회원가입한 정보가 테스트가 끝난 후 DB에 고스란히 남아있었습니다.#스프링 환경Java-> 17spring->3.4.3h2 : 2.3.232-> 서버모드 접근함(jdbc:h2:tcp://localhost/~/test)#알아본것h2에 서버모드로 접근하면, spring->네트워크->h2이렇게 접근이 되어서 외부에 있는 DB는 롤백을 안한다고 들었습니다.다른 곳에서도 접근해서 고칠 수 있기 때문에,,그래서 대신 메모리모드를 사용하라고 답변을 들었습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DispatcherServlet생성과 등록
안녕하세요 MVC를 복습하다가 궁금한 점이 생겨 질문적었습니다. DispatcherServlet은 서블릿인데 왜 스프링부트가 DispatcherServlet을 서블릿으로 등록하는지 이해가 안됩니다. 서블릿은 서블릿컨테이너가 생성하고 등록/관리 하니 서블릿 컨테이너가 DispatcherServlet을 서블릿으로 등록해야 하는거 아닌가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jar와 war의 차이점을 명확하게 모르겠습니다
안녕하세요 공부를 하다가 jar와 war의 차이점에 대해 공부하다가 궁금한 점이 있어 질문 남겼습니다. 제가 알아본 결과war는 웹 어플리케이션 배포하기 위한 자바 아카이브 포맷으로 웹 어플리케이션을 구성하는 모든 요소를 하나의 아카이브로 묶어준다.jar는 자바 프로젝트를 압축한 파일로 class,라이브러리 파일을 포함한다. 라고 되어있습니다. 그런데 스프링 부트를 실행하면 static/경로에 있는 정적 리소스들은 자바 파일이 아닌데도 jar파일에 포함이 되어있습니다. 그러면 사실상 war나 jar파일은 둘 다 똑같은 파일들을 패키징하는거 아닌가요? 그저 내장된 서버에서 실행되느냐 아니면 외부 서버에서 실행되느냐의 차이뿐 아닌지 궁금합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestBody 객체 시 객체의 멤버변수를 필수로 받게 하려면 어떻게 해야하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@RequestBody {객체} 변수명 시 객체의 멤버변수를 필수로 받게(없을 시 에러발생) 하려면 어떻게 해야하나요?? 이를 설정하는 옵션이 있을까요?? 궁금해서 테스트 해본 결과 멤버변수명과 다르게 요청을 보냈을 시 기본값으로 들어가는 것을 확인했습니다. 파라미터로 넘어온 객체에서 멤버변수를 각각 검증하는 단계를 거쳐야 하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional connection 얻는 시점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링에서 기본적인 설정으로 @Transactional 적용된 메서드를 실행했을 때 connection을 바로 풀에서 가져오나요 아니면 실제 DB상 쿼리를 날리기 전에 connection을 얻어와서 처리하나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
service 메서드를 실행하는 주체
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다.Hello 서블릿 강의 내용 중 void service(HttpServletRequest request, HttpServletResponse response)에 대해 여쭤보고 싶습니다. 이 메서드는 서블릿 http 요청이 왔을 때 WAS가 request, response를 만들어 서블릿 컨테이너로 전달하는 과정일까요 ? 아니면 WAS에서 생성된 request, response를 서블릿 컨테이너가 받아서 service 메서드를 통해 내부적으로 동작 후 WAS에 다시 전달하는 과정일까요 ? 좋은 강의 제공해주셔서 항상 감사드립니다 !
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:object 커맨드 객체는 HTML의 FORM에서만 사용가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.섹션 3.타임리프-스프링 통합과 폼25.입력 폼 처리 강의 내용 중 회원등록 폼과 회원수정 폼에서 th:object 커맨드 객체를 사용해 코드를 수정하였는데 이 커맨드 객체는 html의 <form>태그 안에서만 사용 가능한건가요? items.html 파일에서 .container클래스인 <div>태그에서는 사용하면 안 되는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberService에서의 Autowired
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 5 강의 중 자바 코드로MemberService와 MemberRepository를 스프링 Bean으로 등록 후에 MemberController에서 MemberService객체를 사용할 때 @Autowired 어노테이션을 사용했는데 MemberService에서 MemberRepository 객체를 사용할 때 @Autowired 어노테이션이 없던데 이유가 무엇인지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSourceTest에서 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 코드 그래도 진행했으며, 다른 질문에 답변에 있는 utf-8설정까지 잘 마무리했습니다.위와같이 에러가 발생하며파일도 정상적으로 만들어져 있으며 application.properties도 적절하게 적었습니다. 근데 위와같은 에러가 지속적으로 발생하고 있습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DTO와 file 한 번에 요청시
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하십니까 선생님,파일 업로드에 대해서 질문있습니다.dto와 파일을 컨트롤러의 메서드 하나에서 전부 처리하도록 해봤습니다. @RequestPart로 각각의 Part를 구분지어서도, @ModelAttribute로 전부 Key와 value로 요청을 해보는 두 가지 방법을 시도하였으나 모두 오류가 발생했습니다.dto와 MultipartFile 모두@RequestPart로 : 사진과 같이 415 에러dto는 @ModelAttribute, MultipartFile은 @RequestPart : MethodArgumentNotValidException예외 발생, dto의 모든 필드 바인딩 실패(스택 트레이스 확인 결과 NULL로 넘어옴).어떤 이유로 오류가 발생했는지 도움 주시면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring에서 maven을 사용하여 강의를 수강하는 것과...
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]지난 주 입사한 신입개발자입니다. 저는 STS에서 spring, maven으로 공부를 했었고, 현재 다니는 회사에서도 egovframework를 사용합니다. 현재 수업은 Spring Boot에서 gradle을 활용하는데, Spring에서 maven을 활용해서 수업을 진행해도 문제가 없는지 궁금합니다.(부트사용 X) 불가능 하다면 intelliJ에서 gradle을 활용해서 공부를 해도 현업에서 eclipse, spring, maven에서도 충분히 활용가능하게끔 강의가 구성되어있는지도 궁금합니다! 감사합니다!