묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
delete 로직 문의
POST 맨으로 삭제 요청을 하였을 때 로그를 확인해 보니삭제 요청 아이디로 select를 한번 날리고 아이디가 존재시에만delete 로직이 수행되는데 이는 jpa 내부 프로세스 자체 로직 인가요?
-
해결됨[초급] 맛보자! 코틀린과 스프링으로 API 호출하기
Required request body is missing
Required request body is missing소스가 동일한데도 자꾸 위 에러가 나는데요혹시 스프링버전의 문제일까요?
-
미해결스프링 시큐리티 OAuth2
OAuth2.0 코드 부여 방식 인가서버를 REST API 서버 형태로 구현 질문
안녕하세요.. 선생님.. 드디어 완강했습니다.시간 엄청 걸리고 좀 힘들었네요. 다름이 아니라.모바일에서 요청하기 위한 자체 인가서버 OAuth2.0 authorization code 부여 방식 구현을 REST API 서버 형태로 구현할 수 있는지요?사용자 인증 시 웹 페이지 형태의 응답이 아닌 REST API 형태로 요청하고 응답을 받을 수 있도록 구현하려고 합니다. 원래는 인가서버에 사용자 로그인을 하고 동의해야 code 발급받고 클라이언트로 redirect 하여 클라이언트 서버가 대신 인가서버로 access token을 발급 받게 되는데.. 문제가 이 부분이네요.Spring Security 수업에서 ajax 방식으로 API 서버에 요청하면 보통 redirect 없이 응답만 받는 구조이다라고 선생님이 알려주셨는데요. 이와같이 redirect 없이 REST API로 구현할 수 있는 방법이 있는지요?인가서버 로그인은 form login 방식을 사용하지 않고 html 응답 없이 front end 단에서 fetch나 ajax API를 이용해서 POST 전송, json 형태로 username과 password 를 넣어서 요청하고 응답 처리를 할 수 있도록 커스텀하게 구현은 할 수는 있을 것 같긴 해요.. 동의화면은 그냥 false로 해서 안 나오게 하거나 아니면 login 완료 후 json 응답으로 동의가 필요하다는 응답을 주고 다시 POST 방식으로 동의하면 될 것 같긴하네요.클라이언트 서버는 그냥 리소스서버 처럼 사용해서, front end에서 클라이언트 서버로 access token을 전달하여 사용자 정보를 json 응답으로 가져오면 될 것 같아요. 하지만 문제는 redirect 처리를 어떻게 해야 하는지 잘 모르겠네요.인가서버에 임시코드 요청 시 json 응답으로 code를 주고 redirect 없시 다시 인가서버로 access token을 요청하는 방식으로 구현해야 하는지요?질문하면서도 authorization code 부여 방식에서 이렇게 구현을 하는게 맞는지? 의문이 드네요..이런 REST API OAuth2 인가서버라는게 표준 spec에 맞는지도 의문이고..모바일에서 REST API 방식으로 요청하고 인가서버에서 json 형태의 응답이 표준 spec 이랑 안 맞는 것 같기도 하고.. 무조건 html 웹 페이지 형태의 응답 기반으로 구현해야 하는지요? 여기에는 resource owner password 방식이 딱 맞는 것 같긴 한데 Deprecated 되어서 구현하면 안될 것 같고. 일반적으로 어떻게 구현하는지 알고 싶네요. 이런 케이스가 있는지요?어떻게 하면 좋을지 선생님 의견을 듣고 싶네요..감사합니다. ps 질문2. 클라이언 서버, 리소스서버로 딱딱 나누지 않고, 클라이언트 서버를 리소스서버 형태로 구현해서.. 사용자 인증 방식을 form login이 아닌 JwtDecoder 방식으로 인증 처리하여 클라이언트 서버가 서비스 정보를 주는 형태로 구현해도 되는지요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의록 파일 열기 오류
안녕하세요? 수강신청한 후에 강의록을 다운로드했는데 PDF 파일이 열리지 않습니다.혹시 DRM이 걸려 있거나 다른 이슈가 있는 건 아닐지요?아니면 유사한 문의가 있었는지 확인해 주시면 감사하겠습니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@JsonIgnore
@JsonIgnore의 위치는 양방향 연관관계 중 아무곳이나 적어줘도 되는 건가요??
-
미해결스프링 시큐리티 OAuth2
backchannel에 대해서
안녕하세요 섬세하고 친절한 강의 잘 듣고 있습니다.다름이 아니라 백채널과 프론트채널이 있는데백채널은 어떤 암호화기법이 추가로 있는 통신망을 뜻하는건지요?구체적인 차이점을 알고 싶습니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest.java를 다 만들었는데 항상 이 문구만 떠요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Expected java.lang.IllegalStateException to be thrown, but nothing was thrown 이게 문제인가요?이게 문제인가요? 중복처리에서 걸려야 하는데 안 걸려요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]findById의 리턴 값은 Optonal.ofNullable을 사용해서 값을 반환하는데findByName의 리턴 값은 왜 Optoinal.ofNullable을 사용하지 않나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
멀티스레드 동시성 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]재고 감소 증가 로직은 멀티 스레드에 안전한가요? synchronized 키워드를 붙여야 안전할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
외래키 뺀다는 뜻이 뭔가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]외래키 뺀다는 뜻이 뭔가요? 엔티티 개발할때 어떤식으로하면 외래키가 없어지나요?
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
entity->dto 변환 질문입니다.
data class BookHistoryResponse( val name: String, val isReturn : Boolean ){ companion object { fun of(history: UserLoanHistory): BookHistoryResponse { return BookHistoryResponse( name = history.bookName, isReturn = history.isReturn ) } } }현재 이코드 대신 확장함수를 이용해서fun UserLoanHistory.toDto(): BookHistoryResponse{ return BookHistoryResponse( name = this.bookName, isReturn = this.isReturn ) }user.userLoanHistories.map{it.toDto()} 이와 같은 방식은 잘 사용하지 않는 방식인가요?
-
해결됨스프링 시큐리티
외부 Security Library 의 객체를 찾아내 디버깅 하는 방법이 궁금합니다
이전에도 같은 질문을 드렸었는데, 답을 받지 못해 다시 질문글을 작성합니다!!수업을 들으면서 강사님과 같은 부분에서 브레이크를 걸고 디버깅을 해보려고 했는데, 해당하는 각 객체들 (FilterChainProxy 등등) 을 어떻게 찾아서 들어가야 하는 지를 모르겠습니다 ㅠㅠ command + shift + f 로 검색해도 나오지가 않는데,혹시 정확한 repo 위치를 알아서 각 객체를 하나씩 보는 방식(?) 으로 접근해야 하는 걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[gradle build error] gradle clear build를 할때 모두 자바 17을 사용하고 있음에도 오류가 발생하고 있습니다.
안녕하세요. 다름이 아니고 다음과 같이 gradle은 8.4 버전이고 자바는 17버전을 사용하고 있습니다. 자바 17은 gradle 실행, complie할때 등등 모든 부분해서 11이 아닌 17을 사용하고 있음에도 불구하고 지속적으로 저런 에러가 발생해서 질문드렸습니다. intellij를 껏다 켜보기도 하였구요
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
마지막 1분 코스가 완료가 안되서, 완강처리가 안됩니다.
마지막 1분 코스가 완료가 안되서, 완강처리가 안됩니다.그래서 수료증을 받을 수가 없습니다.
-
미해결스프링 배치
동일한 Job파라미터으로 Job 실행
안녕하세요. 강의 잘 보고있습니다.다름이 아니고 동일한 Job파라미터로 실행했을때 전 강의에서 분명히 예외가 발생했던 것 같은데 어느순간부터 예외가 발생하지 않고 해당 데이터가 쌓입니다. 해당 테이블은 batch_job_execution 테이블입니다. 예외가 발생하게 할 순 없을까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인 모델 패턴 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]도메인 모델 패턴을 사용하면 대부분의 비즈니스 로직이 엔티티에 들어가 있기 때문에, 서비스는 단순히 엔티티에 비즈니스 로직 처리를 위임하게 됩니다. 구글링을 해보니 도메인 모델 패턴의 장점 중 재사용성, 확장성 등 좋은 객체지향의 특성을 대부분 가져가고 있는 것 같아 보이는데요. 실제로 코드를 보면 도메인 모델(엔티티)에 비즈니스 로직이 담겨있고, 엔티티 간의 관계 매핑이 필요하기 때문에 특정 기술에 종속될 수 밖에 없지 않나 생각이 들었습니다. 도메인 모델 패턴이든, 트랜잭션 스크립트 패턴이든 비즈니스 로직을 가지고 있는 쪽은 최대한 순수한 자바 코드로 작성해야 한다고 생각하고 있었는데..Item 엔티티를 예시로 들면 JPA를 사용하여 연관관계 매핑이 되어있어 무수히 많은 애노테이션과 설정들이 들어있습니다. 만약 JPA를 걷어내고 다른 기술을 사용해야 할 경우에는 엔티티 로직에 제법 많은 수정이 필요할 것 같아 보입니다. 비즈니스 로직이 변경되는 경우도 마찬가지구요. 이렇게 저희가 지금 진행하고 있는 예제에서 도메인 모델 패턴이 객체지향을 잘 따르고 있다고 할 수 있는 것인지 긴가민가합니다. 질문이 조금 두서가 없었는데, 결론은현재 우리의 예제에서 JPA를 사용한 엔티티 객체들을 활용하여 도메인 모델 패턴을 사용할 경우 해당 설계가 객체지향 원칙들을 잘 지키고 있다고 볼 수 있는지? 입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberForm에서 setName메소드가 없어도 작동하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예[질문 내용]@PostMapping("/members/new") public String create(MemberForm form){ Member member=new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; }위 코드를 통해서 post요청 처리를 할때 MemberForm속 name변수에 값을 넣어줄때, MemberForm클래스속public void setName(String name) { this.name = name; } 이 코드를 지우더라도 정상적으로 name값이 들어가는 것을 확인했습니다. 이때는 어떤 방식을 통해서 자동으로 name값을 넣어주는 것인가요?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
userDetailsService의 user정보에 대한 질문입니다.
안녕하세요 호돌맨님!먼저 좋은강의 너무너무 감사드립니다.시큐리티 Permission Evaluator 강의에서 알려주실때 컨트롤러로 부터 넘어온 userprincipal 의 id를 이용하여 postService.wirte에서 userRepository에서 user를 조회하셨는데요질문리퀘스트가 들어올 때 userDetailsService에서 user를 이미 조회를 하고 해당 유저 정보를 UserPrincipal에 넘겨서 거기서 id만을 이용하여 다시 서비스단에서 user를 조회하고있는데요 userDetailsService단에서 미리 조회해둔 user정보를 userPrincipal에 넘겨서 서비스단(postService.write)에서는 user를 다시 조회하지않고 userPrincipal에서 넘어온 user정보를 사용하면 안되는건가요?날씨가 많이 추워졌는데 감기조심하시고 남은한해도 좋은일만 가득하세요!
-
미해결스프링 배치
JobRunner에 의존성 주입할 때 필드 주입을 사용하는 이유가 있을까요??
안녕하세요. 선생님.JobRunner 코드시에 필드 주입을 사용하는 것을 보고 질문을 드립니다.보통 다른 사람이 필드 주입을 사용하면 개인 스타일인가 하는 편인데요.Configuration 클래스 작성 시에는 롬복을 이용한 생성자 주입을 하셔서 혹시 차이를 두는 것에 특별한 이유가 있는지 궁금합니다.강의 잘 보고 있습니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java.lang.ClassNotFoundException: org.h2.driver
h2 db 연동이 되지 않아요... 코드 그대로 입력되어있는거 몇 번이고 확인했는데 안되네요 ㅠ