묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메시지국제화 챕터 질문
package hello.config; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.CookieLocaleResolver; import org.springframework.web.servlet.i18n.FixedLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; import java.util.Locale; @Configuration public class LocalConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { return new SessionLocaleResolver(); } @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setDefaultEncoding("UTF-8"); messageSource.setBasenames("messages", "error"); return messageSource; } @Override public void addInterceptors(InterceptorRegistry registry) { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("locale"); registry.addInterceptor(localeChangeInterceptor); } }따로 LocalConfig 클래스를 구현했고<a href="?locale=ko">한국어</a> | <a href="?locale=en">English</a><br/>각 폼마다 한국어랑 영어를 선택할수 있게했는데 언어가 변경이안됩니다.messages 프로퍼티스도 다 적용했고 form에서 타임리프로 적용도했습니다. 크롬설정으로 언어 우선순위를 바뀌면 바뀌는데 . 이방식으로는 변하지않아서요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@WebMvcTest
@WebMvcTest(StudentResgisterController.class) class StudentResgisterControllerTest { private MockMvc mockMvc; @MockBean private StudentRepositoryImpl studentRepository; private Student testStudent; @BeforeEach void setUp() { mockMvc = MockMvcBuilders.standaloneSetup(new StudentResgisterController(studentRepository)).build(); testStudent = new Student( "student1", "student1password", "student1", "student1@gmail.com", 10, "student1comment"); } @Test void studentRegisterForm_ShouldReturnStudentRegisterView() throws Exception { mockMvc.perform(get("/student/register")) .andExpect(status().isOk()) .andExpect(view().name("studentRegister")) .andExpect(model().attributeExists("student")); } 이런식으로 테스트코드랑 관련된 학습은 따로 강의가없을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
입력바 경고메시지 ??? ??? 로 나오는 에러발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.utf-8 설정 다 했고 여러 시도를 해봤는데 안바뀝니다. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
제가 제대로 이해한 건지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@Import(JpaConfig.class) @SpringBootApplication(scanBasePackages = "hello.itemservice.web") public class ItemServiceApplication { }스캔 대상을 web 디렉터리로 한정했기 때문에 @Slf4j @Repository @Transactional public class JpaItemRepository implements ItemRepository { private final EntityManager em; public JpaItemRepository(EntityManager em) { this.em = em; } . . }여기에 @Repository가 있다고 하더라도 자동으로 스캔되지 않고, 그래서 생성자에 em이 @Autowired로 주입되는 게 아니라 @Configuration public class JpaConfig { private final EntityManager em; public JpaConfig(EntityManager em) { this.em = em; } @Bean public ItemService itemService() { return new ItemServiceV1(itemRepository()); } @Bean public ItemRepository itemRepository() { return new JpaItemRepository(em); } }JpaConfig의 생성자에서 em을 @Autowired를 통해 자동으로 주입받은 다음, 그 em을 JpaItemRepository에 수동으로 주입했다 이렇게 이해하면 될까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
테스트 메서드 save()와 쓰기 지연 관련해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ItemRepositoryTest를 실행하면 updateItem()는 update 쿼리가 실행되지 않지만 save()는 insert 쿼리가 로그로 보이더라고요. JPA PPT에 나와 있는 트랜잭션을 지원하는 쓰기 지연 - INSERT이 내용대로라면 save()를 해도 insert 쿼리가 안 보여야 할 것 같은데, 이건 관련 옵션을 켜야만 적용되는 건가요?쓰기 지연이 안 되는 것이 디폴트이고, 옵션을 켜면 save()도 updateItem()과 마찬가지로 insert 쿼리가 안 보이게 되는 건가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
frontcontroller 질문 있습니다.
안녕하세요서블릿은 멀티스레드 환경에서 동작하기 때문에 멤버 변수를 사용하면 동시성 문제가 생길 수 있다고 알고 있습니다.frontcontroller도 서블릿인데 멤버 변수를 사용한 것은 handlerMappingMap과 handlerAdapters가 서블릿 생성 시 한 번 초기화되고 이후에는 put과 같이 값을 쓰는 동작은 없고 get처럼 매핑 정보를 읽어오는 동작만 하기 때문인건가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
members 화면 출력시 생기는 문제
코드 복붙하였고 3 jpa 4 가나다로 결과가 안나옵니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요 질문 답변 중에 궁금한 점이 있어 질문 드립니다.
https://www.inflearn.com/community/questions/302519/%EC%83%9D%EC%84%B1%EC%9E%90%EA%B0%80-%EB%A7%8C%EB%93%A4%EC%96%B4%EC%A7%80%EB%8A%94-%EC%8B%9C%EC%A0%90해당 질문 답변에서스프링 부트 로드시 서블릿들이 빈으로 등록된다고 하는데@ServletComponentScan을 사용하면 스프링 부트가 @WebServlet애노테이션이 붙은 서블릿을 자동으로 스캔하고 서블릿 컨테이너에 등록한다고 알고 있는데 스프링 빈으로도 등록되는 건가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 JDBC 잘따라가다가 마지막에 잘안됩니다.
마지막에 회원가입이랑 회원목록 누르니 이렇게 나옵니다h2서버 켜진상태에서 spring1 spring2있는거 확인하고 나서run하였습니다 잘되다가 갑자기 2024-11-12T23:46:40.432+09:00 ERROR 13916 --- [hello-spring] [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause 가 나옵니다.그 밑에는org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 라고 나옵니다. 코드 복붙하였으며 구글링했는데 잘 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
restful , MVC
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! MVC 패턴에 대해서 공부를 하다가 궁금한 것이 있어서 질문드립니다 ! 제가 프로젝트를 했을 때는 주로 프론트와 백엔드 코드를 분리하여 프로젝트를 관리하였습니다. 이때는 지금 강의에서 하는 방식(MVC)과 다르게 RESTful 방식으로 진행을 하였습니다. 그렇다면 당연하게도, Model과 View는 프론트에서 관리를 하고, 들어오는 요청을 받는 Controller와 로직을 처리하는 Service, 데이터베이스와 관련된 로직을 처리하는Repository이 3가지로 패키지가 관리되고 있었습니다. 그렇다면 RESTful하게 개발하는 방식에는 과연 MVC 패턴이 적용되지 않는 것인가 ? 하는 궁금증이 생겨서 조사를 해보았어요 ! https://okky.kr/questions/1414743 여기서 제가 이해한 것을 짧게 정리를 해보자면,RESTful한 방식과 MVC는 별개의 것이 아니라는 것입니다.지금 강의에서 하는 방식의 model과 view는 물리적으로 화면에 나오기는 방식으로 이해할 수 있고, RESTful한 방식에서 VIEW는 JSON 데이터를 반환하는 것을 논리적인 개념으로 이해할 수 있다는 것으로 이해를 했습니다. 다시 위의 글에 적용을 해보자면Service, Repository 부분이 model,다시 값을 Controller부터 return(JSON 값)하는 것이 View라고 이해하면 맞을까요..?개념적으로service: ModelJSON반환타입: Viewcontroller: Controller 이렇게 딱 맞게 정의한다면... repository는 어디에 해당하는 것일까요..?혼란스럽습니다 ㅠㅠ
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
강의를 mvc1 까지 듣고 작은 프로잭트를 하는중인데 고민있습니다!
영한님의 강의를 듣고 작은 프로잭트를 하고 있는데 기본적인 내용을 바탕으로 검색해 가면서 하고 있습니다 하는 도중에 하는 김에 조금 이쁘게 만들기 위해서 프론트 쪽 코드는 AI한테 물어보면서 하고 있습니다 아직은 프론트엔드는 모르기때문에 대부분의 코드를 복사 해서 사용중인데 괜찮을까요 ..?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
정적리소스의 클래스패스 질문
정적리소스에 대한 동작원리와클래스패스에 대한 개념이 많이 어렵게 느껴집니다.강사님께서 다른 강의에서 가르처주는 개념인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강사님 폴더에서는 안보이는데 out 폴더가 보여요
강사님이랑 폴더 구조가 달라요!문제가 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2파일 cmd,git bash에서 열려고 하는데 안됩니다.
H2 데이터베이스 설치 강의 3분 42초부터 안됩니다.일단 저는 최신 스프링 인텔리제이를 설치해 사용중이며자바는 따로 설치하지 않은 상황입니다.19년도 인텔맥에 윈도우10을 설치하여 공부중에 있습니다. cmd와 git bash로 시도중에 있습니다.각각 h2.bat 과 ./h2.sh 를 입력하는데 안되고 있습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
포스트맨에서 쿠키삭제에 대한 질문
제일 처음에 쿠키를 발행했습니다.그리고 응답과 헤더에는 쿠키가 남아있는 걸 확인했습니다. 이후, 포스트맨에서 쿠키를 발행하고 setMaxAge(0)을 이용해 없앴습니다.그런데 헤더에는 쿠키의 기록이 계속 저장되어 있는 상태로 유지되었습니다. 이후, 포스트맨을 이용한 쿠키 테스트를 진행하는데 있어서쿠키가 계속 헤더에 남아있는 채로 유지되길래 질문드립니다.(쿠키의 수명을 0으로 만든 이후에도 헤더에 쿠키가 계속 유지되는 사진)setMaxAge(0)을 하면 쿠키가 없어지는 게 정상맞나요?원래 없어져야하는데 포스트맨에서 자동으로 등록해주다보니 이렇게 된건가요?만약 맞다면, 쿠키가 소멸함에따라 헤더에서 쿠키 제거하는 방법이 없을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
모르는 것이 많은데, 이대로 진행해도 괜찮을까요?
안녕하세요. 저는 전공자고, 자바는 학교에서 배운 상태입니다.백엔드 공부하려고 김영한 선생님 로드맵 따라가고 있고, 현재 스프링 입문 강의까지 맞춘 상태입니다.스프링에 처음 접하는데 스프링 입문 강의를 듣고 기능적인 부분은 대충 이해를 하였는데, 문법적인 것들은 처음 접해서 어려움을 느끼고 있습니다. 혹시 스프링에 대해 따로 공부하고 로드맵을 진행해야 할까요? 아니면 따로 스프링 공부 없이 로드맵을 따라가도 괜찮을까요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
transacional이 빨간불이 떠요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) transacional어노테이션을 추가했는데 빨간불이 나오느데 어떻게 해야하나요?3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional 적용되는 접근제어자 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의에서 @Transactional 애노테이션이 붙여있어도 public이 아니면 AOP가 적용이안된다고하고 V1 테스트의 internal에서 public을 지우고 했을때 적용이안된다고하셨는데 저는 public을 지워도 되더라고요 @Test void internalCall(){ callService.internal(); } @Transactional void internal(){ log.info("call internal"); printTxInfo(); } 결과화면 이유를 알고싶습니다.Dependencies관련 build.gradle 버전 plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 수정 form이 안열립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]섹션8: 상품수정강의에서 1:51부분이 상품 수정 form이 안열립니다. @PathVariable("itemId")이렇게 고쳤고, 설정에 gradle도 인틀리제이에서 gradle로 바꾸고 했는데도 안됩니다..어떻게 해야 할까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 관련 질문
세션에 대한 질문이 있습니다. jsessionId를 끄는 법 로그인 하든 안하든 주는데, 만약 토큰 같은 걸 인증에 사용한다면 필요 없을 것 같은데, 끄는 법이 있을까요? 저는 jsessionId 쿠키의 max-age = -1로 주도록 설정해서 껏는데, 더 좋은 방법이 있는지 궁금합니다. spring session redis를 사용해도 session 쿠키를 무조건 주고 redis에도 저장되는데 이것도 로그인시에만 발급하고 저장하게 바꿀 수 없을까요?