inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

예외를 처리하는 부분에있어서 질문있습니다!

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 예외를 던지거나 잡아서 처리한다는 내용에 대해 질문이 있는데요.. 어떻게 예외를 처리해야하는지 그 부분이 현재까지 본 강의로는 조금 추상적이라 이해가 부족한데 혹시 조금더 설명 해주실수 있으실까요? try catch 를 이용해서 예외 발생시 롤백을 하고 어떤 응답값을 리턴한다 같은 처리를 이야기 하는걸까요? 만약 그렇다면 @Transactional을 하는 경우는 롤백은 되지만 응답에 대한 처리는 어떻게 할 수 있을까요?

  • spring
  • mvc
  • spring-jdbc
댓글 1 좋아요 0 조회수 319

섹션1. 빌드하고 실행하기

해결됨

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

이번 강의는 처음부터 이해가 가지않습니다..ㅠㅠ 명령 프롬프트를 실행해서 이것저것 해봤는데 어떻게 빌드하고 실행하는지 모르겠습니다. 그리고 왜 자바가 아니라 이렇게 외부에서 하는지도 이해가 되지 않습니다ㅠㅠ 완전 뉴비라서 콘솔로 이동하라는게 어디로 이동하라는 건지, 명령 프롬프트가 뭘하는지도 잘 모르기에... 이번 강의는 하나도 이해가 되지 않았습니다ㅠㅠ 어떻게 해야하는지 알려주시면 감사하겠습니다!! 아래는 제가 명령 프롬프트에서 실행했을때 메시지입니다. ((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 지정된 경로를 찾을 수 없습니다.))

  • java
  • spring
  • mvc
  • spring-boot
권정익 댓글 2 좋아요 0 조회수 356

8번문제 groupby로 sum하는 경우

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

Groupby로 Sum하는 경우, 영상처럼 f2, age, fi, f5, views 열만 나오는게 아니라 id, f3, f4 열도 데이터들이 합쳐져서 나오는데 왜 그런가요? 선생님은 숫자값이 적혀있는 열들만 합쳐져서 나오는데 저는 string 값도 더해져서 나오는 것 같습니다..

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
이재욱 댓글 1 좋아요 0 조회수 311

로그인 처리하기 - 직접 만든 세션 적용 질문있습니다.

미해결

스프링 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의 부모인가요?

  • spring
  • mvc
zzzzz 댓글 1 좋아요 0 조회수 208

@Bean Validation이 던지는 예외 메세지를 @ExceptionHandler에 이쁘게 받는법

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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메서드들 다 찍어보았는데 원하는 결과가 안나오네요 ㅠ)

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

해당 코드가 작동하지 않는 이유

미해결

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(); 이게 정상적으로 작동하는 코드입니다. 이럴 때에는 어떻게 해야 하나요? 왜 첫 코드가 정상적으로 작동하지 않을까요? 무엇을 놓친건지를 모르겠어요...

  • C#
  • mvc
  • rest-api
  • 아키텍처
  • mssql
  • ef-core
  • asp.net-core
성재 댓글 1 좋아요 0 조회수 289

pdf 파일에 스프링3부터는 jakarta로 해야 한다고 추가해야 될 것 같습니다

미해결

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

[질문 템플릿] 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";

  • spring
  • mvc
Sully 댓글 2 좋아요 0 조회수 277

MyBatis나 Jpa를 사용했을 때, 커넥션이 커넥션 풀로 반환되는 시점 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 쿼리를 호출한다는 답변을 받았습니다. 이부분이 맞는지 질문 드리고 싶습니다.

  • spring
  • mvc
  • spring-jdbc
요니 댓글 2 좋아요 0 조회수 690

애노테이션에 대해서 전반적인 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 애노테이션에 대해서 @xxx 을 붙이면 이런기능이 된다. 이렇게만 알고 있는데요, 실제로 컴파일할 때 어떻게 이루어지는지 조금더 자세한 설명같은게 없을까요? https://developer-youn.tistory.com/122 위의 링크에 있는 정보보다 조금더 deep한 내용이었으면 좋겠습니다.

  • spring
  • mvc
SoulKey 댓글 1 좋아요 0 조회수 188

현재 스프링db2편 학습하는 중인데요

해결됨

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

영상에선 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이상으로 전부 바꿔야 하나요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
  • spring-db
pyjava 댓글 1 좋아요 0 조회수 329

람다식이 이해가 안됩니다.

해결됨

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

멤버서비스 테스트에서 예외가 발생했을때 사용한 람다식이 해석이 안됩니다. 무슨 의미 인가요? assertThatThrownBy(()-> member service.accountTransfer(members.getMemberId(), memberEx.getMemberId(), 2000) .isInstanceOf(IllegalStatementException.class); 위 람다식은 어떻게 해석해야 하나요?

  • spring
  • mvc
  • spring-jdbc
양치잘하기 댓글 1 좋아요 0 조회수 257

데이터베이스 커넥션 및 세션 관련 질문

미해결

스프링 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에서 말씀해주신 것 처럼 올해 까진 관계형 데이터베이스 강의가 나올지도 궁금합니다!) 감사합니다.!

  • spring
  • mvc
  • spring-jdbc
요니 댓글 1 좋아요 0 조회수 251

16분 servlet/members 404 에러

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 오류가 발생하여 질문 드립니다.

  • spring
  • mvc
최건우 댓글 2 좋아요 0 조회수 364

Bean Validation 상품 수량 입력 값 넘길 시

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 상품 수량 입력 시 1111111111 Integer 값을 넘기면 숫자를 입력해주세요 메시지 박스가 뜨는데 아마 저의 개인적인 생각은 properties 설정에 typeMismatch.java.lang.Integer=숫자를 입력해주세요. 메시지 대로 사용되는 것이고 오버 플로우 문제거나 다른 예외로 lang.Integer 아이디로 쓰인 것이 맞나요? 그리고 이런 예외 사항은 실무에서는 예외로 처리하는지 아니면 서버 단에서 Max 에노테이션 중 어디서 검증하나요?

  • spring
  • mvc
김윤환 댓글 1 좋아요 0 조회수 247

로그인 처리하기 - 세션 직접 만들기 질문있습니다.

미해결

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

//에러상황: Non-static method 'expire(javax.servlet.http.HttpServletRequest)' cannot be referenced from a static context SessionManager.expire(request); 강의에서도 해당 메소드는 void로 설정이 되어있는데 제코드에서는 static으로 변경하라고 합니다. 왜그런건가요? 전체코드는 아래입니다

  • spring
  • mvc
zzzzz 댓글 1 좋아요 0 조회수 194

로그인 처리하기 - 세션 직접 만들기 질문있습니다.

미해결

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

public class SessionManagerTest { SessionManager sessionManager=new SessionManager(); @Test void sessionTest(){ //세션을 생성 <-이게 클라이언트단에서 생성이되는건가요? 서버에서 생성하는건가요? MockHttpServletResponse response=new MockHttpServletResponse(); Member member=new Member(); sessionManager.createSession(member,response); //요청에 응답 쿠키 저장 <-서버 저장이고 MockHttpServletRequest request=new MockHttpServletRequest(); request.setCookies(response.getCookies()); //세션조회 <-클라이언트 조회가 맞나요? Object result=sessionManager.getSession(request); Assertions.assertThat(result).isEqualTo(member); } } 주석에 질문 달았습니다

  • spring
  • mvc
zzzzz 댓글 1 좋아요 0 조회수 163

스프링 부트 메시지 소스 설정 부분 궁금한 점 있습니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이 의미를 제가 이해한 대로라면 application.properties에 제가 아무 것도 추가하지 않으면 스프링 부트가 알아서 application.properties에 spring.messages.basename=messages 이걸 추가하고, 이렇게 messages만 지정되어도 부가적으로 messages_en.properties, messages_ko.properties 이것들도 인식되는 거로 이해했습니다. 꼭 ko나 en 말고도 messages_temp.properties 또는 messages_sdfsdf.properties 이것들도 다 인식된다고 보면 되나요? 아니면 _ 뒤에 와야 하는 건 kr이나 en 등 몇 가지가 따로 지정되어 있는 걸까요? 2) 또 하나 궁금한 점이 있습니다. 스프링 부트를 쓰지 않고 @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages"); messageSource.setDefaultEncoding("utf-8"); return messageSource; } 이 코드를 쓴다고 한다면, 이때도 messageSource.setBasenames("messages"); 이렇게 messages만 지정하면 messages_en.properties , messages_ko.properties 다 인식할 수 있나요?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 398

oAuth2.0 로그인 후 쿠키 생성 질문

미해결

@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // CSRF 설정 http.csrf((csrf) -> csrf.disable()); http.authorizeHttpRequests((authorizeHttpRequests) -> authorizeHttpRequests .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .requestMatchers("/").permitAll() .anyRequest().authenticated() ); http.oauth2Login((oauth2Login) -> oauth2Login .loginPage("/login") .userInfoEndpoint(userInfoEndpoint -> userInfoEndpoint .userService(principalOauth2UserService)) .defaultSuccessUrl("/", true) .permitAll() ); return http.build(); } 현재 위와 같이 우선 oAuth2.0 인증 기반을 구현했습니다. 이 상태에서 로그인을 하면 웹 브라우저 쿠키에 JSESSIONID : 0C3706243FE7B32FF2A3C757013B164C 형식의 값이 삽입됩니다. 이후 test 용으로 작성한 "/user" 경로로 접근을 시도하면 접근이 가능하게 됩니다. 만약 쿠키를 지우고 "/user" 로 접근하면 "/" 로 튕기고, 다시 로그인을 해야합니다. 여기서 궁금한 게 저는 별도의 쿠키 생성 로직을 작성하지 않았는데 oAuth 로그인 후 JSESSIONID : 0C3706243FE7B32FF2A3C757013B164C 이 녀석이 어떻게 생성된 것인지 궁금하며, 어떻게 저 녀석으로 인증이 필요한 자원에 접근이 가능한 것인지 원리가 궁금합니다. 검색해보니 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키라고 하는데, 이게 그냥 인덱스 페이지에 최초 접속할 때도 생기더라구요 ? oAuth 로 로그인하면 값이 바뀌긴 하지만,,, 구글링 해보면 세션 만들고 쿠키 만들고 하던데, 그럴 필요가 없는 거 아닌가요 ? + 추가질문 http.sessionManagement( (sessionManagement) -> sessionManagement .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) .maximumSessions(1) // 최대 허용 가능 세션 수 .maxSessionsPreventsLogin(false) // 멀티로그인 차단, false : 기존 세션 만료(default) .sessionRegistry(sessionRegistry()) ); 이와 같이 또 세션 정책을 세웠는데, 네이버 웨일로 로그인하고, 크롬으로 로그인 하면 둘 다 로그인 상태가 유지되는데 왜 이러는 걸까요...

  • spring
  • security
  • mvc
  • server
  • spring-security
오세창 댓글 1 좋아요 0 조회수 291

강의 질문있습니다.

미해결

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

강의 HandlerExceptionResolver 시작을 듣는데public class ApiExceptionController { }에서 괄호 부분에서 빨간줄이 나오는데 강의코드랑 같은데 왜 나오는건가요?

  • spring
  • mvc
zzzzz 댓글 1 좋아요 0 조회수 161

풀 방식에 질문이 있습니다.

해결됨

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

실제 서비스에서 수백 수천의 사용자가 접속을 하였는데 풀에 등록된 커넥션이 100개밖에 없으면 선착순 100명에 들지 못한 나머지 사람들은 계속 대기 하고 반환된 풀을 가져다 사용하는거로 이해했습니다. 관리자 입장에서 사용자 대기를 줄이기 위해 풀의 최대 갯수를 최대로 많이 하면 사용자의 대기 없이 즉각적으로 접근이 가능해서 더 좋은 서비스를 제공이 가능한것 같은데 굳이 기본 풀 갯수를 10개로 설정한 이유가 있나요? 그리고 풀의 최대갯수는 몇까지 가능한가요?

  • spring
  • mvc
  • spring-jdbc
양치잘하기 댓글 1 좋아요 0 조회수 242

인기 태그

인프런 TOP Writers

주간 인기글