묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RestController GetMapping의 중복 질문
MappingClassController에서 구현한 GetMapping은/mapping/users + GET으로 호출합니다.@GetMapping("/mapping/users") public String user() { return "get users"; }이 때, 앞서 구현한 MappingController에서 구현한@GetMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId") String data) { log.info("mappingPath userId={}", data); return "ok"; }위 코드는 /mapping/{userId} + GET으로 호출합니다. 위 상황에서, /mapping/users를 GET으로 조회할 경우MappingClassController가 호출됩니다.제가 궁금한 것은, 두 컨트롤러 사이에 우선순위가 존재하나요?그렇지 않다면 Spring은 같은 문자열인 users가 {userId}가 아닌 것을 어떻게 구별하나요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
datasource의 구현체를 커넥션 풀링을 사용하는 구현체 일 때 트랜잭션매니저
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]DataSourceUtils.getConnection(dataSource) 를 사용하면 트랜잭션 동기화 매니저가 관리하는 커넥션이 없는 경우 새로운 커넥션을 생성해서 반환한다 라고 되어 있습니다.이때 dataSource의 구현체가 커넥션 풀링을 사용하는 구현체 (예를 들면 실습했던 HikariDataSource) 라면 미리 커넥션을 생성해둔 후 커넥션 풀에 보관해두고, 사용 시에 조회해 오는 것으로 알고있었습니다.그렇다면 이 때 위의 굵은 글씨 내용 중 새로운 커넥션을 생성한다는 것은 커넥션 풀에서 새로운 커넥션을 조회해오는 것 인가요 아니면 아예 새로운 커넥션을 생성하는 것 인가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
강의 결제 했습니다!
믿고 듣는 김영한 강사님 강의! 최근에 구매한 김영한 강사님 강의 다 듣고 이것도 열심히 들을게요!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
강의 결제 했습니다!
믿고 듣는 김영한 강사님 강의! 최근에 구매한 김영한 강사님 강의 다 듣고 이것도 열심히 들을게요!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
TransactionManager 로깅 정보
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]DataSourceTransactionManager의 로그에는 사용되고 있는 커넥션의 정보(conn0)가 잘나오는데 JpaTransactionManager 에서는 커넥션 로그는 확인 못하나요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
웰컴페이지가 열리지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의를 보면서 따라하다가 안되는 부분이 있어 문의 드립니다. 현재 localhost:8080 port를 사용하면 이미 사용중인 포트번호라고 해서 localhost:8082변 변경한 상태입니다. properties에도 port번호를 변경해 놓은 상태입니다. localhost:8082/hello는 잘 작동하는데 웰컴페이지가 작동하질 않습니다. 혹시나 해서 설정파일을 캡처해 두었습니다. 감사합니다
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
예외 변환에 대하여 궁금한게 있어서 여쭤봅니다..!
선생님 예외쪽 수업을 계속 듣다가 예외를 변환할 때 기존 예외를 꼭 포함하기 위해 기본 생성자인 public MyDbException() { }를 안만들고 나머지만 만들어서 이러한 상황이 안나오게 하는게나아보인다는 생각이 들었는데 이렇게 하는 건 뭔가 안좋은게 있거나 하는건가요? 실무에서는 어떻게 하는지도 궁금합니다..!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
postman, F12 오류 (경로?)
url을 입력하면 html 결과는 잘나오는데 F12를 누르면 Failed to load resource: the server responded with a status of 404 () 이 나오고 postman도 post가 안됩니다 (파일 못찾았다는 오류 나옴)구글에 검색해보니까 경로를 잘못적어서 그렇다는코드를 복사,붙여넣기 해도 결과가 같습니다.https://drive.google.com/drive/folders/1vPtaYt8DfDZ6Rb2Saldp3z4jHVnlEqF-?usp=sharing 파일 올립니다.. 참고로 console 창에 자세하게 결과가 나오는 코드는유료버전부터 사용가능해서 입력하지 않았습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AssertionFailedError 에 관해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JdbcTemplateRepository를 작성하고 통합테스트를 진행하였는데 결과가 AssertionFailedError 가 발생하였습니다, 기대값은 19인데 spring으로 되었다고 하는것 같은데 어떤점이 문제일까요 ?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
attachFile에서 텍스트파일 업로드시 null로 반환되는 문제
[질문 내용]안녕하세요. 첫번째 첨부파일에 텍스트 파일을 업로드하면 null이 발생하고, 이미지를 넣으면 정상 작동하는데 어떤 문제인지 잘 모르겠습니다. @PostMapping("/items/new") public String saveItem(@ModelAttribute ItemForm form, RedirectAttributes redirectAttributes) throws IOException { log.info("Received Form: {}", form); log.info("AttachFile: {}", form.getAttachFile()); // 업로드 파일 UploadFile attachFile = fileStore.storeFile(form.getAttachFile()); log.info("attachFile = {}", attachFile); // 업로드 이미지 List<UploadFile> storeImageFiles = fileStore.storeFiles(form.getImageFiles());
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
TransactionManager 주입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 6:32 에서단순 테스트 코드이고 jpa 사용하지않았는데 JpaTransactionManager 가 주입 되는 이유는 먼가요 ?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
체크예외를 리포지토리에서는 처리하지 않는 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 예외처리 부분을 듣고 궁금한 점이 있어 질문 남깁니다.강의에서 하위 레벨의 체크 예외가 서비스, 컨트롤러로 올라오는 것이 문제라고 하셨는데, 리포지토리와 같이 해당 예외가 직접 발생하는 곳에서 try~catch로 잡아서 처리하면 상위 레벨로 올라오지 않을텐데 그렇게 처리하지 않는 이유는 뭔가요? 어차피 대부분 복구 불가능한 예외라 시스템 상에서는 로그를 남기는 것 밖에 하지 못하고, 왜 하위 레벨에서는 처리하지 않는지 궁금합니다. 밖으로 던져서 공통으로 처리할거면 리포지토리에서 처리해도 공통으로 처리되는 효과가 있는게 아닌지..동일한 리포지토리를 여러 서비스에서 사용할 때 비즈니스 로직에 따라 같은 리포지토리 메서드여도 다른 오류 메세지를 보여줘야 해서 그런걸까요..?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
에러 페이지 출력이후 고객의 다음과정을 위한 처리가 궁금합니다.
[질문 내용]강의에서는 이와 같은 페이지를 만들고 끝나는데실제 고객이 이런 페이지를 마주치게 된다면메인 페이지로 이동 버튼을 두어 되돌아가게 하는 형태로사용하게 되는지 또는 다시 구글에 검색해서 다시 사이트를 들어간다던지 등 어떤식으로 고객이 사용할 수 있도록 구성해야되는지 질문드립니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
RowMapper 질문드립니다.
@Overridepublic Member findById(String memberId) {String sql = "select * from member where member_id = ?";return template.queryForObject(sql, memberRowMapper(), memberId);}private RowMapper<Member> memberRowMapper() {return (rs, rowNum) -> {Member member = new Member();member.setMemberId(rs.getString("member_id"));member.setMoney(rs.getInt("money"));return member;};}이 코드에서,1. 해당 람다식은 파라미터로 rs와 rowNum을 받아서, 중괄호 부분을 실행한후 결과를 리턴하는것인가요? 그렇다면 rowNum의 역할은 무엇인지 궁금합니다. 또, 람다 내부의 rs와 rowNum 파라미터의 매개값은 어떻게 대입되는것인가요 ..? 람다식부분이 이해가 되지않아서 질문드립니다.2. 이 코드에서 return member;를 하면 Member객체가 반환되는데 실제 리턴타입은 RowMapper<Member>로 되어있는데 어떻게 RowMapper<Member>타입으로 반환될수 있는것인지 질문드립니다.3. queryForObject()의 리턴타입은 Member인데, 어떻게 Member가 되는것인가요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
학교 전공 jsp 배우기
마지막 10초 정도 jsp 안쓴다고 말씀해주셨는데 제가 학교에서 jsp를 배우게 되었습니다 혹시 이 수업이 도움이 별로 되지 않을까요?? 어떻게 학습해야 될지 고민이 됩니다
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
mysql 실행안됨
처음 시작할때 cd로 이동후 mysql startup.bat 하면 비슷하게 뜨다가이렇게 다시 돌아오고 시작이 안되는데 뭐가 문제일까요? 에러메세지도 없어서 뭐가 문제인지 모르겠네요 ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletApplication 실행시 지연
섹션 3 서블렛 프로젝트 생성 파트에서 이렇게 실행을 하면(무료버전이라 빌드 실행에서 Gradle로 설정) 이렇게 실행 자체는 되는데 왼쪽 상단에 보면 딜레이가 되고 있네요. 종료를 하고 나면이렇게 에러가 발생하는데 어떻게 해결하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Spring boot로만 강의를 진행 하나요, 혹은 Spring 으로도 진행 하는걸까요?
안녕하세요~ 갑자기 궁금함이 생겨 질문 드립니다~영한님이 진행 해주시는 강의는 대부분 Spring boot로 진행 되는것으로 아는데, Spring으로 진행 하는 강의 가있나요?답변부탁드립니다.감사합니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
db sql 트랜잭션
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 트랜잭션 때문에 이렇게 복잡하고, 긴 여정을 떠나왔는데, 그냥 String sql = 에다가 트랜잭션 문장을 넣으면 안되나요? 그렇게 해서, 그냥 repository에 송금 트랜잭션 메소드를 넣으면 더 간편하지 않나요? SRP를 위반해서 그렇게 하지 않는 것 인가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
[해결방법] Could not autowire. No beans of 'ItemMapper' type found. 오류
아래 코드 추가@MapperScan("hello.itemservice.repository.mybatis") @Configuration @RequiredArgsConstructor @MapperScan("hello.itemservice.repository.mybatis") public class MyBatisConfig { private final ItemMapper itemMapper; @Bean public ItemService itemService() { return new ItemServiceV1(itemRepository()); } @Bean public ItemRepository itemRepository() { return new MyBatisItemRepository(itemMapper); } }