묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 5강 진행중에 RestController를 어노테이션할때 오류가 발생합니다
5강 진행중 RestController를 @RestController 할때 오류가 발생합니다.위에 import 를 추가하였으나, 이와 같은 에러가 발생합니다 어떻게 하면 될까요?
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
로그아웃은 Redis를 사용해야하는 건가요?
로그인시 Redis에도 정보를 담아서 로그아웃시에 제거 하는 방식으로 가야 하려나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
2023년에 강의를 들으시는 분들 중 View 환경설정 강의에서 thymeleaf URI 설정 오류 해결법 중 하나
질문은 아니고 해결한 문제가 있어서 커뮤니티 질문 글에라도 올립니다![질문 내용]View 환경설정 강의에서 thymeleaf URI 설정 오류 해결법 중 하나를 찾아서 말씀드립니다 현재는 2023.08.28 이고강의 초반에 IntelliJ community 버전을 사용해도 괜찮다고 하셔서 community 버전을 사용하고 있었는데인텔리제이 커뮤니티 버전을 사용하게되면<html xmlns:th="~thymeleaf.org"> 의 thymeleaf uri가 안 가져와집니다. 그 이유는 인텔리제이 community버전에선 application.properties를 지원하지 않기 때문인 것 같습니다.그래서 IDEA 버전으로 변경한 뒤잘 돌아갑니다! 그럼 참고하시고 저와 같이 시간 날리지 않으셨으면 좋겠습니다열공하세요!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우에서 cmd로 build시 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.처음 gradlew.bat 명령어는 성공적으로 실행되었으나 gradlew build 명령어 입력시 오류가 납니다..찾아보니 자바의 버전이 다르다고 하는데 cmd에서 java -version해보면 11버전 나오구요build.gradle에서도 11로 되어있습니다 그외 문제가 되는 사항 모두 사진으로도 첨부해놨듯이 버전 11로 되어있는데 어디서 오류가 나는걸까요 ..
-
미해결[초급] 맛보자! 코틀린과 스프링으로 API 호출하기
findTop10ByOrderByCntDesc 함수의 동작 원리에 대한 질문
interface WordRepository :CrudRepository<WordCount, String> { fun findTop10ByOrderByCntDesc() :List<WordCount> }위 findTop10ByOrderByCntDesc 함수는 선언만 되고 실제 구현이 안되어서 CrudRepository 에도 들어가봤지만 virtual 함수도 아닌걸로 보이는데요..예상하는 바는 repository에서 함수명을 query로 자동 변환하여 가져오는 형식으로 느껴집니다.만약 그렇다면, 이 것은 원래 springframework 기능인 것인가요? (완전 웹개발 초보라서 이렇게 문의드립니다...)
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
깃허브에 올려봐도 괜찮을까요?
안녕하세요 선생님!깃허브 경험을 쌓고 싶어서 배운 내용을 출처를 남기고 깃허브에 올리면서 해봐도 괜찮을까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Valid , bindingResult
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]memberController의 create 부분의 로직을 저는 아래처럼 이해했는데 맞게 이해한게 맞을까요 ?@Valid 어노테이션이 있어서 MemberForm의 @NotEmpty 조건을 validation하고 이 단계에서 NotEmpty 조건을 충족시키지 못했을 때 에러가 나는데 그 에러에 대한 내용을 bindingResult로 인해서 에러 정보를 result란 값에 저장한 뒤 result에 에러 정보가 있을 시에 members/createMemberForm으로 페이지 이동 후 createMemberForm html 파일에서 result에 name 에 대한 에러 값이 있을 때 에러메시지를 바인딩하는데 그게 NotEmpty 어노테이션 적용 시 적어뒀던 메시지를 띄우는 걸까요 .. ?전체적인 로직을 제가 맞게 이해한건지 잘 모르겠어서요 ..
-
해결됨Spring Boot JWT Tutorial
requestMatchers 관련 에러 뜨시는 분들 참고하세요
@Bean public WebSecurityCustomizer configure(){ return (web) -> web.ignoring() .requestMatchers(new AntPathRequestMatcher("/h2-console/**")) .requestMatchers(new AntPathRequestMatcher("/favicon.ico")); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeRequests() .requestMatchers(new AntPathRequestMatcher("/api/hello")).permitAll() .anyRequest().authenticated(); return http.build(); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Gradle - Groovy, Kotlin 고민
Spring initializr에서 현재 버전으로는 Gradle - Groovy와 Gradle - Kotlin 중 선택을 할 수 있게 되어 있는데요.강의를 들을 때는 어떤 버전이든 상관이 없을까요? 아니면 Groovy를 선택하는 것이 나을까요?
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
feignClient의 consumes와 @RequestHeader는 같은 역할인가요?
카카오 토큰 발급 구현(2) 5:27 부분feignClient의 PostMapping에consumes = "application/json"이 있는데이 부분이 외부 api 요청시 헤더 지정 역할인 것으로 알고 있습니다. 그런데 카카오에서는 x-form-urlencoded로 요청하라고 해서 @RequestHEader("Content-Type)을 따로 지정해주는 것으로 이해했느데요 consumes="x-form-urlencoded"로 하고 파라미터에서 contentType을 제거해도 되나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instanceId
instanceId 설정할때${spring.application.instanc_id:${random.value}}로 들여쓰는 이유가 뭔가요?그냥 ${random.value}로도 생성이 되는것은 확인을 했는데요.. 이유를 모르겠습니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
강사님 디버깅시 중단점 안 찍어도 자동으로 찍히는거 어떻게 하나요?
안녕하세요 Spring Cloud OpenFeign(2) 강의 4:59 지점 학습중에 강사님의 경우 breaking point를 설정하지 않았음에도 자동으로 오류 지점에서 프로그램이 중단되는 이유가 궁금합니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
WebSecurityCustomizer 와 SecurityFilterChain 차이점에 대해 여쭙고싶어요
@Configuration @EnableWebSecurity(debug = true) // 운용환경에서는 꼭 꺼야한다. public class SecurityConfig { @Bean // Spring Security 무시시키기 public WebSecurityCustomizer webSecurityCustomizer() { return new WebSecurityCustomizer() { @Override public void customize(WebSecurity web) { // /error -> spring에서 기본제공하는 것 web.ignoring().requestMatchers("/favicon.ico", "/error") // .requestMatchers(new AntPathRequestMatcher("/h2-console/**")); // 멍청한 우리들을 위해 스프링이 제공해주신 위으 코드를 대신하는 메서드 .requestMatchers(toH2Console()); } }; } @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // and() 메서드가 deprecated되어 람다식으로 사용하라고 한다. return http.authorizeHttpRequests(authorizeHttpRequests -> { authorizeHttpRequests .requestMatchers("/auth/login").permitAll() .anyRequest().authenticated(); }).csrf(AbstractHttpConfigurer::disable).build(); } }안녕하세요 호돌맨님 위의 WebSecurityCustomizer에서 하는 일을 밑의 SecurityFilterChain에서도 할 수 있을것 같은데요 둘을 어떻게 사용방법을 구분해야할지 여쭙고 싶어요 30년차사수(ChatGPT) 에 물어보니 차이점:WebSecurityCustomizer는 주로 보안 구성을 조정하고 보안 설정을 사용자 정의하는 데 사용됩니다. 이를 통해 더 세부적인 보안 요구 사항을 처리할 수 있습니다.SecurityFilterChain은 주로 실제 보안 필터 체인을 구성하는 데 사용됩니다. 여러 보안 필터가 어떤 순서로 실행될지를 결정하며, 보안 관련한 요청 처리를 담당합니다.둘 다 Spring Security의 핵심 요소이며 보안 구성과 필터 체인의 다른 측면을 다룹니다. 일반적으로 SecurityFilterChain을 사용하여 필터 체인을 정의하고, 필요에 따라 WebSecurityCustomizer를 사용하여 더 많은 세부 설정을 적용할 수 있습니다.라는데.. 처음 Security를 접하다보니 감이 안잡히네용..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA의 엔티티와 값타입 구분.
안녕하세요. JPA를 수강하고 '도메인 주도 개발 시작하기'라는 책을 읽었는데요.궁금한 점이 생겨 글을 남기게 되었습니다.JPA의 엔티티와 값 타입에 대해 읽게 되었는데요.애그리거트[루트 앤테티]를 뺀 나머지는 구성 요서는 대부분 밸류이다. 라고 하여 라이프 사이클이 다르면 루트 엔티티로 해야 되고, 같으면 @Embeddable 애너 테이션을 사용하여 값 타입으로 구현해야 된다고 보았습니다. 강의에서는 주소를 구현할 때 잠시 사용하였던 걸로 기억하는데, 어떤 게 맞는지 궁금하여 글을 남기게 되었습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
저도 회원조회에서 막히네요ㅠㅠ
잘되다가 등록 후 조회에서 막히네요ㅠㅠ부탁드립니다...!!https://drive.google.com/drive/folders/1_dcicJUyawOjH4ZO4kd7Tq8REtaDwU6O?usp=drive_link
-
미해결스프링 시큐리티
SecurityContext 의 clear시점이 궁금합니다.
강의를 듣다가 궁금한점이 생겨 이렇게 질문 드립니다.SecurityContextPersistenceFilter에서 클라이언트의 최종 요청이 끝나면 SecurityContext를 클리어한다고 알고 있습니다.거기서 클라이언트의 최종요청 이라는것이 SecurityContext는 세션에 저장되어 있으니 세션만료 될때까지는 존재 하는것인지 아니면 요청이다보니 하나의 컨트롤러에서 하나의 작업을 수행 후 리턴해주고 끝났을때 마다 SecurityContext 를 클리어해주고 새로운 요청이오면 다시 만드는 것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MySql 대신 오라클로 연동 시 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]순수JDBC 강의 15분~16분 실행(등록) 시 오류 발생.(이름 입력 - 등록 - 에러발생)*DB에는 insert 되어있음**페이지 에러명 : Whitelabel Error Page , (type=Internal Server Error, status=500). 영한님 강의에서는 id를 Long 타입으로 하시고create table을 bigint로 하셨어요. 저는 오라클DB를 쓰기 때문에Long 타입을 모두 int 타입으로 변환하였고,create table 또한 id필드를 number로 생성하였습니다.회원가입(등록) 시, DB에 insert는 되나에러가 뜨면서 콘솔창에 아래와 같은 오류가 뜹니다. java.sql.SQLException: 부적합한 열 유형: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor 오류발생 지점을 보면,@Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getInt(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); }member.setId(rs.getInt(1));위 행에서 오류가 발생하는 것으로 확인됩니다. DB에는 insert 되어있는데무엇이 문제인지 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPQL로 엔티티를 조회해오는 경우에는 준영속 상태인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.EntityManager의 em.find() 메서드로 조회해온 엔티티는 영속 상태의 엔티티이고, 이것이 아닌 em.createQuery()로 조회해 오는 경우는 준영속 상태인가요? 보니까 JPQL로 조회해온 엔티티의 경우에는 더티 체킹이 일어나지 않는 것 같습니다. 혹시 제가 제대로 이해한 것이 맞을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
webapps 폴더의 html 파일을 인식하지 못하는것 같습니다.
server 프로젝트 톰켓 연결해서 실행하니깐 서블릿은 동작하는데 index.html 파일은 "HTTP 상태 404 – 찾을 수 없음" 이라고 뜨네요.webapps 폴더에 다른 html 파일을 만들어 넣어도 동작하지 않아요..별도의 설정이 필요한 부분이 있을까요?
-
미해결스프링 시큐리티
CustomAuthenticationProvider 질문
CustomAuthenticationProvider를 작성한 이후, SecurityConfig를 등록할 때 Adapter를 쓰지 않았을 경우 어떻게 등록하는지 알고 싶습니다.Adapter를 찾아보니 deprecated되어서 사용하지 않고 filterChain을 사용했을 때 어떻게 등록해야한다 이런 정보가 없어서요.