inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

편하게 들어도 된다고 하셨는데

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이 방식이 옛날 방식이라 편하게 들어도 된다고 하셨는데 코드를 안 적어도 되나요? 아니면 나중에 최신 방식으로 알려주시나요?

  • java
  • spring
  • mvc
  • spring-boot
whdvkf5139 댓글 1 좋아요 0 조회수 794

첫 gradle build부터 안됩니다 ㅜㅜ

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. JDK 17로 맞추고, gradle 설정 들어가서 IntelliJ IDEA로 빌드하라고 설정을 해도 안됩니다. 처음 시작부터 막히니까 너무 막막하네요. 캐쉬삭제하고 해봐도 똑같습니다. 무엇을 더 해봐야할지도 모르겠어요. 도와주세요

  • java
  • spring
  • mvc
  • spring-boot
JH 댓글 1 좋아요 0 조회수 581

messages properties 에러

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

철자가 이상하게 나옵니다 ㅠㅠ..

  • spring
  • mvc
송민석 댓글 1 좋아요 0 조회수 426

DataSource와 트랜잭션 매니저

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 해당 강의를 들으면서 DataSource 와 트랜잭션 매니저의 역할이 좀 헷갈립니다. 강의 중에는 트랜잭션 매니저는 데이터소스를 통해 커넥션을 생성하므로 DataSource가 필요하다는 말씀과 PDF에도 그렇게 적혀있는데요. DataSource는 커넥션 풀이나 DriverManagerDataSource 같은 구현체를 다루기 위한 인터페이스로 이전 강의들로 통해 알고 있었습니다. 그리고 실제 구현체는 이 인터페이스를 통해 구현체가 들어오는 것이고요. [질문 내용] 근데 왜 트랜잭션 매니저를 사용하면서 한번 더 인자를 트랜잭션 매니저로 넘겨주어야 하는 것일까요..? 아래 코드입니다. PlatformTransactionManager transactionManager = new DataSourceTransactionManager(dataSource); 그리고 트랜잭션 매니저는 추상화와 동기화를 진행한다고 했는데 이미 추상화는 DataSource도 되고 있는 것 같은데 파라미터를 통한 동일한 커넥션 넘겨주는 부분 때문에 트랜잭션 매니저를 사용하는 것일까요?

  • spring
  • mvc
  • spring-jdbc
nick 댓글 2 좋아요 0 조회수 479

자바환경변수

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

JDK 17.0.10 isn't compatible with Gradle 6.8.2. Please fix JAVA_HOME environment variable 17버젼사용중이에요. 소스코드를 받아서 들어가려고했는데 이런 에러가 발생하는데 매번 환경변수를 바꿔줘야하나요? 다른 방법이 있을까요?

  • spring
  • mvc
송민석 댓글 1 좋아요 0 조회수 734

파일 업로드와 다운로드에서 궁금한 것이 있습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요. 파일 업로드와 다운로드 강의 중 문득 궁금한 것이 생겨서 이렇게 질문을 드립니다. 강의에서 처럼 메모리에 Item을 저장하는 것이 아니라 실제 RDBMS에 저장을 한다고 가정을 하게되면 Item 테이블엔 id와 itemName만 저장하고 파일 경로를 저장할 File 테이블엔 Item의 id와 UploadFile의 uploadFileName과 storeFileName을 저장하는 것일까요? 이렇게 저장한다고 가정하였을 때, DB에서 Item객체를 불러올 땐 Item 테이블에서 id와 itemName을 가져와 set 해주고, File 테이블에서 uploadFileName과 storeFileName을 가져와 UploadFile 객체와 List<UploadFile>을 만들어 Item 객체를 만든다. 로 이해해도 되는 부분일까요?? 뭔가 경우에 따라서 다양한 방법이 있겠지만 지금 제 머리속으론 이런 방식이 떠올라서 이게 맞는건지 궁금해서 여쭈어봅니다. 좋은 강의 항상 감사하게 듣습니다 ㅎ 감사합니다.

  • spring
  • mvc
sungi1205 댓글 2 좋아요 0 조회수 190

RequestDispatcher 상수 질문

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

사소한 질문이지만, RequestDispatcher 에 정의된 상수들을 그대로 import 해서 사용하지 않고, 굳이 ErrorPageController 에 다시 정의해서 사용하는 이유가 궁금합니다.

  • spring
  • mvc
재영 댓글 1 좋아요 1 조회수 321

public void findAll() 부분에서 맨마지막줄에 숫자를 멀넣어도 오류가 안뜨는데 왜그런가요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
dys02135 댓글 1 좋아요 0 조회수 228

createMember 테스트코드

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 웹 기능 - 등록 강의영상을 보다가 질문이 생겼습니다. 강의에서 get 주소에서 html 페이지로 멤버 이름을 받고 post로 이름을 넘기는 로직같은 경우, 실무에서는 어떻게 테스트 코드를 작성하나요? html까지 포함해서 동작하는 걸 확인할 수 있는 방법이 있나요?

  • java
  • spring
  • mvc
  • spring-boot
Eun Sung Shin 댓글 1 좋아요 0 조회수 259

git 연결할때 오류

미해결

스프링 프레임워크는 내 손에 [스프1탄]

06. 개발환경구축_Git 연결하기 할때에 21초 즈음에 해야하는 finish가 눌리지 않고, Target location for project SpringStart already exists, cannot move project 이러한 오류가 발생합니다

  • jsp
  • spring
  • mvc
  • spring-security
biz 댓글 1 좋아요 0 조회수 289

SQLExceptionTranslator DI 관련 질문

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 1-1. 선생님 방식 코드 (MemberRepositoryV4_2) private final DataSource dataSource; private final SQLExceptionTranslator exTranslator; @Autowired public MemberRepositoryV4_2(DataSource dataSource){ this.dataSource = dataSource; this.exTranslator = new SQLErrorCodeSQLExceptionTranslator(dataSource); } 1-2. 선생님 방식 코드 (MemberServiceV4Test) @TestConfiguration static class TestConfig{ @Bean public MemberRepository memberRepository(){ return new MemberRepositoryV4_2(dataSource) } } 2-1.제가 생각한 방식 코드 (MemberRepositoryV4_2) private final DataSource dataSource; private final SQLExceptionTranslator exTranslator; @Autowired public MemberRepositoryV4_2(DataSource dataSource, SQLExceptionTranslator exTranslator) { this.dataSource = dataSource; this.exTranslator = exTranslator; } 2-2.제가 생각한 방식 코드(MemberServiceV4Test) @TestConfiguration static class TestConfig{ @Bean public SQLExceptionTranslator sqlExceptionTranslator(){ return new SQLErrorCodeSQLExceptionTranslator(dataSource); } @Bean public MemberRepository memberRepository(){ return new MemberRepositoryV4_2(dataSource , sqlExceptionTranslator()); } } 안녕하세요 "스프링 예외 추상화 적용" 관련 강의보다 궁금한 점이 생겨 질문드립니다. 지금까지 코드 설계 시에 수동 빈 등록을 하는 경우 해당 영역은 설정 영역으로 간주되어, @Configuration을 사용하는 설정 영역 / 애플리케이션 영역 으로 나누어서 설계하는 것이 객체지향적인 관점에서 훨씬 좋은 코드라고 이해하고 설계해왔습니다. 즉 TestConfig와 같이 수동 빈 등록을 해주는 설정 영역 코드가 테스트 상황이 아닌 실제 상황이라고 가정하였을 때, 저는 2-2. 제가 구현한 코드 처럼 SQLErrorCodeSQLExceptionTranslator을 설정 영역(TestConfig)에서 수동 빈 등록을 해주고 2-1.제가 구현한 코드 처럼 리포지토리(MemberRepositoryV4_2) 에서 해당 객체를 생성자의 파라메터로 DI 받는 형태로 구현하였습니다. 하지만 1-1. 선생님 코드 에선 SQLErrorCodeSQLExceptionTranslator 객체를 직접 리포지토리에서 생성하여 변수에 주입하고 1-2. 선생님 코드 처럼 설정 영역에선 파라메터의 변경 없이 그저 구현체만 MemberRepositoryV4_1 에서 MemberRepositoryV4_2로 갈아끼우는 것을 확인할 수 있었습니다. [핵심 질문] 선생님께서 1-1 및 1-2 와 같이 코드를 구현하신 이유가 1-2의 설정 영역 코드(TestConfig)에서 서비스에선 MemberRepository라는 인터페이스를 구현하니, 파라메터의 변경 없이 그냥 구현체를 MemberRepositoryV4_1 => MemberRepositoryV4_2 로 갈아끼울 수 있다는 것을 보여주시기 위해 하신 건지 아니면 SQLErrorCodeSQLExceptionTranslator 객체의 의존관계 주입은 선생님 방식대로 하는 게 맞는 건지 궁금해서 여쭤봅니다 !

  • spring
  • mvc
  • spring-jdbc
경민 댓글 1 좋아요 0 조회수 394

포스트맨 json 형태로 안내려오네요

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] MVC1 부터 MVC2 학습하며 한 프로젝트에 적용하며 학습중인데요. accept json으로 설정하고 컨트롤러에 @RestController 설정해주었는데도 이렇게 HTML 형식으로 나오는데 뭐가 잘못된 걸까요 ㅠ 인터셉터를 설정해준 webConfig를 주석처리 하니 json 형태로 내려오는데 주석처리를 해주는 게 맞나요?

  • spring
  • mvc
윤토벤 댓글 1 좋아요 0 조회수 616

직접 RuntimeException을 상속한 예외를 만든 이유

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 리포지토리에선 체크예외(Exception)를 언체크예외(RuntimeException)로 변환함으로써 서비스 계층에선 더 이상 throws SQLException을 할 의무가 사라져 더 이상 JDBC 기술에 종속적이지 않을 수 있으며 순수 비즈니스 로직만 남길 수 있었습니다. 여기서 RuntimeException으로 직접 변환하지 않고, 그를 상속받은 MyDuplicateKeyException , MyDbException 예외를 만들어서 해당 예외로 변환한 이유는 명시적으로 어디서 어떤 예외가 터졌는지 알기 위함이라고 이해해도 괜찮을까요?

  • spring
  • mvc
  • spring-jdbc
경민 댓글 1 좋아요 0 조회수 340

필터가 제가 이해한게 맞을까요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@Slf4j public class LoginCheckFilter implements Filter { private static final String[] whiteList = {"/","/members/add","/login","/logout","/css/*"};//위 uri 들은 필터x @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String requestURI = httpRequest.getRequestURI(); HttpServletResponse httpResponse = (HttpServletResponse) response; try { log.info("인증 체크 필터 시작{}",requestURI); if(isLoginCheckPath(requestURI)){//화이트 리스트가 아니면 log.info("인증 체크 로직 실행 {}",requestURI); HttpSession session = httpRequest.getSession(false);//로그인시 생성된 세션을 불러와서 변수에 저장 if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null){//null 이면 로그인 안된것 log.info("미인증 사용자 요청 {}", requestURI); //로그인으로 redirect + 내가 url에 입력한 주소 httpResponse.sendRedirect("/login?redirectURL=" + requestURI); return;//리다이렉트하고 끝(finally 항상 호출) } } log.info("다음 필터"); filterChain.doFilter(request,response); log.info("다음 필터가 있는지"); }catch (Exception e){ throw e;//예외 로깅 가능 하지만, 톰캣까지 예외를 보내주어야 함 }finally { log.info("인증 체크 필터 종료 {}", requestURI); } } /** * 화이트 리스트의 경우 인증 체크x */ private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whiteList,requestURI); } } 이 코드에서 controller를 호출하기전에 필터에서 인증을 처리해주고 인증이 완료됐다면 controller로 이동해서 로직을 처리한다 생각하면 될까요?

  • spring
  • mvc
자바마스터하자 댓글 1 좋아요 0 조회수 387

@Login 질문

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

컨트롤러 메서드의 파라미터에 있는 @Login 어노테이션이 @SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false) 를 완전히 대체한다고 보면 되는 걸까요? @Login 이 동작하는 시점이 ArgumentResolver의 영향 범위이기 때문에, 해당 강의의 제목이 ArgumentResolver 활용 인 것인가요? 커스텀 어노테이션을 만드는 것과 'ArgumentResolver 활용'이라는 제목과 무슨 관계가 있는 것인지 궁금하여 질문드려봅니다!

  • spring
  • mvc
재영 댓글 1 좋아요 0 조회수 451

@Repository 사용 차이점

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

안녕하세요 강의 중에 MyBatisItemRepository는 @Repository가 있고 Jdbc관련 Repository에는 애너테이션이 안 붙여져 있는데 그 이유가 무엇인가요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
AAA 댓글 2 좋아요 0 조회수 374

예외를 던지는 기준이 궁금해요

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

예외를 공부할땐 예상 밖의 프로세스가 죽는 치명적인 상황을 예방하기 위해 예외 처리한다고 배웠습니다! 하나의 예시를 들자면 비동기로 닉네임 중복 검사를 하는 프로세스가 있는 경우 아래와 같이 개발자가 의도한 결과가 나오지 않은 경우 예외로 던져야 할까요? //예시 1 Member member= repository.findByMeberNickname("user00"); if(member == null){ throw new memberNotFoundException(); } return member; //그리고 @RestController에서 에러DTO json 응답 {코드값, 메세지, status} 또는 사실상 개발자가 충분히 예상 가능한 범주 내의 상황이니까(+ 프로세스가 죽을 정도의 치명적인 상황도 아님) //예시 2 Member member= repository.findByMeberNickname("user00"); return member; axios.get(...) .then(result=>{ if(result){ //값이 있으면 }else{ //값이 없으면.. }) .... 비동기 호출 후 if else로 분기를 줘야할지 고민입니다! 현재 드는 생각은 sql 쿼리까지 정상적으로 호출되었지만 결과값이 없었을 뿐이지 에러나 예외는 아니다. 입니다. 따라서 후자가 아닐까!!

  • spring
  • mvc
Won Ders 댓글 1 좋아요 0 조회수 299

SpringConfig에 직접 빈을 등록하면 생기는 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강의 내용은 대략 5~6분 사이입니다. SpringConfig에 @Bean으로 등록하면 ERROR 19552 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter 오류가 뜹니다. @Bean public TimeTraceAop timeTraceAop() { return new TimeTraceAop(); } 이걸 주석처리하고 TimeTraceAop에 컴포넌트 어노테이션을 붙이면 아래와 같이 정상 작동하구요 https://drive.google.com/file/d/1nAqwhCllXZhRAwbWIzcwlH7sEnsEGaaw/view?usp=drive_link 압축파일입니다!

  • java
  • spring
  • mvc
  • spring-boot
맥스 댓글 1 좋아요 0 조회수 650

REST API에 대한 내용은 JPA 강의에 포함되어있나요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

REST API방식으로 서버를 만들고 싶어서 MVC패턴에 대한 내용보다는, API에 관하여 집중적으로 공부하길 희망합니다. 궁금한 점은, 1.JPA로드맵에서는 API위주로 알려주시는게 맞을까요? 2.(1번이 맞다면)현재 MVC2편 학습중인데, DB1,2 -> 스프링부트 핵심원리 -> JPA로드맵 이렇게 공부하면 될까요?

  • spring
  • mvc
Min04 댓글 1 좋아요 1 조회수 203

인기 태그

인프런 TOP Writers

주간 인기글