묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 전환할떄 기존 예외 포함이 무슨 말인가요?
체크예외에서 런타임 예외로 변경할 때 cause 생성자를 포함 해야한다는 의미인건가요? 그리고 기존 예외가 포함된다는게 어떤 말인지 잘 모르겠습니다. 어떻게 기존 예외가 포함이 되는건가요? 또 예외출력 로그를 보고 어디가 문제인지 어떻게 판단하고 수정을 하는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
중요한 런타임 예외를 안잡아주면 시스템은 어떻게 되나요?
예시로 설명해주신 NetworlClient클래스의RuntimeConnectionEx 예외를 실제 시스템에서 잡지 않고 무시하면 서비스를 이용하는 고객들에게 어떤 문제가 발생하였는지 인지 시켜줄 수 없게되고 고객들은 연결이 안되는 서비스를 무한 로딩한 상태로 대기 하게 되는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다음과 같은 오류가 발생하는데 어떻게 해결하나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
웹 프로젝트가 아닌 앱 프로젝트를 할 떄도 spring web을 사용하나요?
강의 내용이 어려워서 다시 마음 잡을겸 처음부터 보고 있습니다.강의 내용을 들으면서 앱도 웹 기반 동작을 하기 때문에 벡엔드 개발은 클라이언트에 의존하지 않는다고 이해 하였는데 웹 개발이 아닌 앱 개발을 할때도 start.spring.io 사이트에서 spring web을 다운 받으면 되는건가요?+ 현제 스프링 db1편을 수강중인데 db2편까지 수강을 마치면 db연동까지 가능한(동시에 여러 사용자가 사용하는) 프로젝트를 개발하는것이 가능한가요? 아니면 나머지 강의인 스프링 고급과 핵심원리 활용까지 수강을 하여야 하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링DB 2 :: 테스트 - 데이터 베이스 연동 오류
저는 데이터를 새로 생성해서 테스트를 했는데, save와 finditems 두 군데 모두 오류가 발생합니다. 링크 :: https://drive.google.com/file/d/1i7i95iRprKTD08l5TuPj1iCOAVPDvNTT/view?usp=sharing save 오류 :: org.opentest4j.AssertionFailedError: expected: hello.itemservicedb.domain.Item@a2df0d5 but was: hello.itemservicedb.domain.Item@26d028f7 finditems 오류 :: org.opentest4j.AssertionFailedError: Expecting actual: [hello.itemservicedb.domain.Item@4cc26df, hello.itemservicedb.domain.Item@7848321e, hello.itemservicedb.domain.Item@f4f843f, hello.itemservicedb.domain.Item@7b5833ee, hello.itemservicedb.domain.Item@1e471884, hello.itemservicedb.domain.Item@27261190, hello.itemservicedb.domain.Item@543b0737]to contain exactly (and in same order): [hello.itemservicedb.domain.Item@6e46891d, hello.itemservicedb.domain.Item@48632f69, hello.itemservicedb.domain.Item@5fde1d64]but some elements were not found: [hello.itemservicedb.domain.Item@6e46891d, hello.itemservicedb.domain.Item@48632f69, hello.itemservicedb.domain.Item@5fde1d64]and others were not expected: [hello.itemservicedb.domain.Item@4cc26df, hello.itemservicedb.domain.Item@7848321e, hello.itemservicedb.domain.Item@f4f843f, hello.itemservicedb.domain.Item@7b5833ee, hello.itemservicedb.domain.Item@1e471884, hello.itemservicedb.domain.Item@27261190, hello.itemservicedb.domain.Item@543b0737]
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
테스트에서 select 로그가 노출안되는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 테스트 케이스 중 save() 테스트와 updateItem()테스트에서 itemRepository.findById를 호출하는 부분이 있습니다.itemRepository.findById(item.getId()).get();이 경우 select 쿼리가 나가는 걸로 알고 있는데 로그에는 노출되지 않습니다.1) save()2) updateItem()강사님 화면에도 노출되지 않던데 그 이유가 있을까요??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
RDBMS 락과 비스니스 로직 전체에 대한 락 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 영한님.항상 좋은 수업 감사합니다. 이번 수업을 통해 MySQL 또는 Postgresql와 같은 대중적인 RDBMS의 경우,서로 다른 세션에서 시작된 서로 다른 트랜잭션에서 동시에 동일 테이블의 동일 row에 대해 write operation을 수행할 때에는,별도의 Pessimistic Lock등을 사용하지 않더라도,RDBMS에서 제공해주는 기본 락이 걸리는 것으로 이해했습니다.그럼에도 불구하고 상품 주문시 상품의 재고를 감소시키는 등의,비즈니스 로직 단위의 레이스 컨디션 문제의 경우,select 후 udpate를 하게 되는데그 select에서 update되기 전 값을 읽어온다면,(read operation에 대해서는 rdbms 기본 lock이 안걸리니깐)여기서 레이스 커디션 문제가 발생하므로,비즈니스 로직 단위의 레이스 컨디션 문제를 막고자 한다면DB 락 or 레디스 등 별도의 솔루션을 적용해야 하는 것으로 이해했는데요,제가 이해한 내용이 맞을지 질문 드립니다. 감사합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 처리하는 부분에있어서 질문있습니다!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]예외를 던지거나 잡아서 처리한다는 내용에 대해 질문이 있는데요.. 어떻게 예외를 처리해야하는지 그 부분이 현재까지 본 강의로는 조금 추상적이라 이해가 부족한데 혹시 조금더 설명 해주실수 있으실까요? try catch 를 이용해서 예외 발생시 롤백을 하고 어떤 응답값을 리턴한다 같은 처리를 이야기 하는걸까요?만약 그렇다면 @Transactional을 하는 경우는 롤백은 되지만 응답에 대한 처리는 어떻게 할 수 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션1. 빌드하고 실행하기
이번 강의는 처음부터 이해가 가지않습니다..ㅠㅠ명령 프롬프트를 실행해서 이것저것 해봤는데 어떻게 빌드하고 실행하는지 모르겠습니다.그리고 왜 자바가 아니라 이렇게 외부에서 하는지도 이해가 되지 않습니다ㅠㅠ 완전 뉴비라서 콘솔로 이동하라는게 어디로 이동하라는 건지, 명령 프롬프트가 뭘하는지도 잘 모르기에... 이번 강의는 하나도 이해가 되지 않았습니다ㅠㅠ어떻게 해야하는지 알려주시면 감사하겠습니다!! 아래는 제가 명령 프롬프트에서 실행했을때 메시지입니다.((C:\Users\IDEAPAD>./gradlew'.'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.C:\Users\IDEAPAD>gradlew.bat'gradlew.bat'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.C:\Users\IDEAPAD>./gradlew'.'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.C:\Users\IDEAPAD>cd study지정된 경로를 찾을 수 없습니다.C:\Users\IDEAPAD>E:\Spring-start'E:\Spring-start'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.C:\Users\IDEAPAD>cd Spring-start지정된 경로를 찾을 수 없습니다.))
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 직접 만든 세션 적용 질문있습니다.
로그인 처리하기 - 직접 만든 세션 적용 3분 51초 부분에 요.public class HomeController {public String homeLoginV2(HttpServletRequest request, Model model){//세션 관리자에 저장된 회원 정보 조회Member member=(Member)sessionManager.getSession(request);//Object이기 때문에 member로 캐스팅 한다. SessionManager코드 중 public Object getSession(HttpServletRequest request){Cookie sesionCookie=findCookie(request,SESSION_COOKIE_NAME);if (sesionCookie==null){return null;}return sessionStore.get(sesionCookie.getValue());}sessionManager가 Object객체인데 Member로 캐스케이딩하는 데 member가Object의 부모인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Bean Validation이 던지는 예외 메세지를 @ExceptionHandler에 이쁘게 받는법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Bean Validation과 @ExceptionHandler을 같이 사용하여 REST API를 작성하길 희망해서 아래와 같이 코드를 작성했습니다.#회원가입 DTO@Setter @Getter public class JoinDTO { @NotBlank(message = "아이디는 필수값입니다.") private String username; @NotBlank(message = "패스워드는 필수값입니다.") private String password; }#회원가입 컨트롤러 @PostMapping("/join") public String joinProcess(@RequestBody @Validated JoinDTO joinDTO) { 회원가입하는 로직이 들어있습니다. }#ExControllerAdvice에 MethodArgumentNotValidException예외 처리 추가@ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler public ErrorResult userExHandle2(MethodArgumentNotValidException e) { return new ErrorResult("join-ex", e.getMessage()); } 이상황에서 postman을 통해 password를 빼고 보내면 아래와 같이 응답값이 나오는데요.{ "code": "join-ex", "message": "Validation failed for argument [0] in public java.lang.String aaa.bbb.controller.JoinController.joinProcess(aaa.bbb.dto.JoinDTO): [Field error in object 'joinDTO' on field 'password': rejected value [null]; codes [NotBlank.joinDTO.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [joinDTO.password,password]; arguments []; default message [password]]; default message [패스워드를 입력해주세요]] " }제가 원한건 아래 형태입니다{ "code": "join-ex", "message": "패스워드를 입력해주세요" }깔끔하게 Bean Validation에서 보낸 message를 받는 방법이 없을까요?(e.getXxx메서드들 다 찍어보았는데 원하는 결과가 안나오네요 ㅠ)
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
해당 코드가 작동하지 않는 이유
강의 들으면서 도움이 많이 되고 있습니다.중간까지의 과정을 복습하고싶어 필기와 기억을 토대로 코드를 작성했는데, 첫 수업 복습부터 난항을 겪고 있습니다. program.cs에 오류가 없음에도 작동하지 않아 고민입니다. 1강 강의 기준 똑같은 내용의 코드를 이미 만들어두었던 코드에서 가져와 붙여놓았을때에는 또 정상적으로 작동하는데, 무엇이 문제인지 도통 모르겠습니다.var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllerRoute( name: default, pattern: "{controller=Home},{action=Index}/{id?}"); app.Run();이게 문제가 발생하는 코드var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllerRoute( name: default, pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();이게 정상적으로 작동하는 코드입니다.이럴 때에는 어떻게 해야 하나요? 왜 첫 코드가 정상적으로 작동하지 않을까요? 무엇을 놓친건지를 모르겠어요...
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
pdf 파일에 스프링3부터는 jakarta로 해야 한다고 추가해야 될 것 같습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ErrorPageController에서 RequestDispatcher 상수 추가하는 부분에 스프링3버전 이상부터는 javax가 아니라 jakarta로 해야 된다고 적어야 할 것 같아요! 이걸로 좀 헤맸네요public static final String ERROR_EXCEPTION = "jakarta.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "jakarta.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "jakarta.servlet.error.message"; public static final String ERROR_REQUEST_URI = "jakarta.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "jakarta.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "jakarta.servlet.error.status_code";
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
MyBatis나 Jpa를 사용했을 때, 커넥션이 커넥션 풀로 반환되는 시점 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 영한님.이번 강의를 들으면서 실제 MyBatis나 JPA를 사용했을 때커넥션이 커넥션 풀로반환되는 시점이 궁금했습니다.GPT에게 물어본 결과로는,트랜잭션 단위로 커넥션을 커넥션 풀로 반환한다는 답변을 받았습니다.예를들어 트랜잭션 1에서 findById(), findByUsername()을 호출한다면 트랜잭션 1에서 획득한 커넥션 1을 가지고findById()에 의한 select 쿼리를 호출 후커넥션1을 반환하지 않고그대로 유지하다가 findByUsername()으로 두 번째 select 쿼리를 호출한다는 답변을 받았습니다.이부분이 맞는지 질문 드리고 싶습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
애노테이션에 대해서 전반적인 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]애노테이션에 대해서 @xxx 을 붙이면 이런기능이 된다. 이렇게만 알고 있는데요, 실제로 컴파일할 때 어떻게 이루어지는지 조금더 자세한 설명같은게 없을까요? https://developer-youn.tistory.com/122 위의 링크에 있는 정보보다 조금더 deep한 내용이었으면 좋겠습니다.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
현재 스프링db2편 학습하는 중인데요
영상에선 itemservice-db파일 기존의 코드를 수정해서 사용하라고 하셔서 그렇게 했는데요거기에 깔려있는게 2.6.5입니다.id 'org.springframework.boot' version '2.6.5'근데 강의 자료에선 이제 3.0이상을 쓰라고 하셔서요이게 일단 거기 있는데로 2.65로 진행해도 되는건가요?아님 spring.io가서 3.0을 다시 깔아야하나요jpa까지 하다가 오류가 계속나서 처음부터 다시 시작하려고 하는데요일단 영상 그래도 2.6.5으로 진행하고 싶은데자료를 계속 보는데 전부 2.xx는 지원이 끊겨서 3.0으로 쓰라고 하셔서요진짜 2.xx다 빼고 3.0이상으로 전부 바꿔야 하나요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
람다식이 이해가 안됩니다.
멤버서비스 테스트에서 예외가 발생했을때 사용한 람다식이 해석이 안됩니다. 무슨 의미 인가요?assertThatThrownBy(()-> member service.accountTransfer(members.getMemberId(), memberEx.getMemberId(), 2000) .isInstanceOf(IllegalStatementException.class);위 람다식은 어떻게 해석해야 하나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
데이터베이스 커넥션 및 세션 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님.먼저 항상 좋은강의 잘 듣고 있습니다.최근에 이직을 하게 되면서 여유가 생겨영한님 강의로 다시 학습을 시작하고 있는데요,결론적으로 먼저 데이터베이스에 관한 지식(커넥션 , 세션 뿐만 아니라 성능 튜닝 및 설계) 을 위해 추천해주실만한 책이 있을까요?당연히 영한님 관계형 데이터베이스 강의가 나온다면 너무 좋겠지만,직금은 자바 강의만으로 바쁘신거 같아서요!왜냐하면 저는 springboot 시작 시점에 db connection pool을 채울 때,하나의 db session만을 가지고 여러 db connection을 만들어 connection pool을 채울것이라고 생각했습니다.(db session도 web session처럼 인증을 유지하는 논리적인 연결 개념이라고 이해했고, 어차피 동일한 username password를 사용하니깐요) 그렇지만 검색 후 진짜 영한님 설명처럼각각의 connection은 별도의 db session으로 맺어지는것으로 나와있었습니다.그래서 제가 아직 관계형 데이터베이스 관련 지식이 많이 부족하다는 생각이드는데요,혹시 추천해주실만한 학습 방법(책을 포함한) 이 있으실지 궁금합니다!(혹은 1월 meet up에서 말씀해주신 것 처럼 올해 까진 관계형 데이터베이스 강의가 나올지도 궁금합니다!)감사합니다.!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
16분 servlet/members 404 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]package hello.servlet.web.servlet; import hello.servlet.domain.member.Member; import hello.servlet.domain.member.MemberRepository; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; @WebServlet(name = "memberListServlet", urlPatterns = "/servlet/members") public class MemberListServlet extends HttpServlet{ private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Member> members = memberRepository.findAll(); System.out.println("members : "+members); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter w = response.getWriter(); w.write("<html>"); w.write("<head>"); w.write(" <meta charset=\"UTF-8\">"); w.write(" <title>Title</title>"); w.write("</head>"); w.write("<body>"); w.write("<a href=\"/index.html\">메인</a>"); w.write("<table>"); w.write(" <thead>"); w.write(" <th>id</th>"); w.write(" <th>username</th>"); w.write(" <th>age</th>"); w.write(" </thead>"); w.write(" <tbody>"); for (Member member : members) { w.write("<tr>"); w.write(" <td>" + member.getId() + "</td>"); w.write(" <td>" + member.getUsername() + "</td>"); w.write(" <td>" + member.getAge() + "</td>"); w.write("</tr>"); } w.write(" </tbody>"); w.write("</table>"); w.write("</body>"); w.write("</html>"); } }servlet 주소의 new-form이나 save는 문제없이 잘 작동하는데, list를 출력하는 페이지에서 404 오류가 발생하여 질문 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean Validation 상품 수량 입력 값 넘길 시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]상품 수량 입력 시 1111111111 Integer 값을 넘기면 숫자를 입력해주세요 메시지 박스가 뜨는데 아마 저의 개인적인 생각은 properties 설정에typeMismatch.java.lang.Integer=숫자를 입력해주세요. 메시지 대로 사용되는 것이고 오버 플로우 문제거나 다른 예외로 lang.Integer 아이디로 쓰인 것이 맞나요? 그리고 이런 예외 사항은 실무에서는 예외로 처리하는지 아니면 서버 단에서 Max 에노테이션 중 어디서 검증하나요?