묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
TestConfig 클래스에서 static을 떼버리면..
안녕하세요. 이번 수업때 임의로 쓰기 위해서 정의한 이너클래스인 TestConfig에서 static을 빼고 실행을 하니 "beans.factory.UnsatisfiedDependencyException"에러가 뜨면서 애초에 컨데이너 생성 및 bean 생성이 되지 않는걸로 보여지는데 기존에 쓰던 AppConfig.class를 사용해서 다시 해보니 잘돌아 가더라구요 AppConfig에는 따로 클래스에 static을 붙이지 않았는데 왜 TestcConfig에서는 static을 붙여햐 하는지.. 뭘 놓치고 있는지 잘 모르겠어서 질문드립니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Valid를 이용하여 BeanValidation과 @InitBinder를 동시에
만약 다음과 같이 인풋을 받았다고 가정하겠습니다. @Valid @ModelAttribute ItemDto itemDto 이 경우에, 각 필드에 대한 검증은 ItemDto 내의 @NotBlank, @Max, @Min과 같은 어노테이션으로 해결하고, ObjectError의 경우 ItemDtoValidator를 만들어 Validator를 구현하여 @InitBinder로 등록해두는 건 안되나요..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 관련 질문 드립니다.
안녕하세요 강의 잘 듣고 있습니다. 실무에서는 서버를 여러대로 운영할텐데 이렇게 로그인 정보를 세션으로 관리를 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
호출 흐름
안녕하세요 전체적인 흐름을 여쭤보고싶은데요. 순서가 1. servlet에 호출 2.비즈니스 로직처리하고 members attribute 설정 3. forward로 해당 jsp 로 이동 4. jsp 내에서 attribute들 입력 5. 해당 jsp response 이고 정적 HTML은 해당 경로파일을 내려보내주는거지만 JSP 는 model data들을 jstl로 세팅한 후에 리스폰스되는데 내부적으로는 세팅된 jsp 파일을 response.writer써준다 생각하면 맞나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
home.html을 불러오지 못합니다..
혼자서 해결해보려고 노력했으나 도저히 모르겠어서 질문 남깁니다.. <HomeController> <home.html과 hello.html 위치> <오류 코드> hello 페이지를 "/"로 매핑한경우는 잘 실행 되는데 home 페이지는 실행이 안됩니다 hello.html, home.html 모두 templates 폴더에 위치해있습니다. 테스트로 만들어본 new.html도 불러오지 못합니다 <home.html>
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
페이지 소스보기에서 true 값 질문
항상 좋은 강의 감사드립니다. 상품등록폼에서 판매여부를 체크하지 않는 경우 요청 파라미터로 _open:on 만 전달되고 item객체의 open변수에는 false가 저장된다고 이해하였는데 상세보기 페이지 소스에는 왜 item.open의 값이 ture인지 궁금합니다. 타임리프에서 렌더링 할때 Value가 참이면 cheked를 넣어주고 flase일때는 cheked를 넣지 않음으로써 상세보기 페이지에서 체크여부를 결정하는게 맞지 않나요?/
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 문의드려요
영한님 안녕하세요.오랜만에 문의를 드리는 거 같아요. 지난 주에 MVC 2번째 과정을 구매해서 듣고 있는데 이전 내용이 생각이 잘 안나서 이과정을 또 듣고 있네요.. ㅎ오랜만에 게시판에 왔더니 서포터즈도 생기고 과거와 분위기가 좀 달라진 거 같아요 ㅎ 좋은 객체 지향 설계를 위해서 스프링 빈으로 등록하고 컨테이너가 빈을 자동 주입을 해주는 부분은 잘 이해가 가는데요.간혹 실무에서 인터페이스가 없는 객체를 만들어 놓고 (사실, 인터페이스가 있을 필요도 없는 케이스)해당 객체를 @Bean 으로 수동 등록해두고, 서비스 계층에서 @Autowired 로 해당 객체를 사용하는 경우를 본 적이 있습니다. 이런 경우는 어떠한 의도로 그렇게 사용을 하는 것일까요?단순히 싱글톤 방식을 원해서일지, 아니면 무언가 다른 케이스가 있어서인지 궁금하네요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 관련 질문 있습니다!
1. 앞 강의에서 세션 관련해서는 서버에서 세션 저장할때 랜덤 값과 맴버 객체만 있으면 될 거 같은데 굳이 SessionConst.LO GIN_MEMBER값은 왜 쓰이고 어디에 쓰는지 모르겠습니다. 2. 그냥 session.setAttribute하면 addCookie 할 필요없이 알아서 클라이언트한테 세션 값이 가는 건가요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
공통되는 엔티티 혹은 유틸파일 등 관리관련하여 질문있습니다
안녕하세요. 긴 간의 유익하게 잘 봤습니다. 감사합니다. 다름이 아니라 강의를 보던중 생긴의문이었는데 마이크로 서비스 아키텍쳐로 여러개의 서비스를 나눴을 경우에 수개의 서비스에서 공통적으로 사용되는 엔티티 등을 단순히 복붙으로 하기에는 관리측면에서 좋지않아보이는데 어떤식으로 공유가 이뤄져야하나요? 또는 현업에서는 어떤 방식을 사용하고 있는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
EntityManager 싱글톤
https://www.inflearn.com/questions/158967 먼저 다른 여기 부분에서 질문이 있습니다. "스프링 프레임워크는 여기에 실제 EntityManager를 주입하는 것이 아니라, 사실은 실제 EntityManager를 연결해주는 가짜 EntityManager를 주입해둡니다." 말씀을 하셨는데 풀어서 제가 이해한내용은 가짜로 주입을 하고 실제 비즈니스 로직을 탈때 예시를 들면 사용자A가 사용을 하고 EntityManager 가 실행 될때 실제로 EntityManager를 호출하고 로직이 끝나면 가짜 EntityManager를 주입하고 사용자B가 호출을 하면 가짜 EntityManager가 실제 EntityManager를 호출하여 실행이 되서 싱글톤이긴 하나.. 분기(?) 처리해서 EntityManager를 사용하고 있다라고 이해를 하고 있는데 맞을까요.. 아니라고 하면 풀어서 설명이 가능할까요? 초보적인 질문을 드려서 죄송합니다..
-
미해결스프링 핵심 원리 - 기본편
4:35 질문 있습니다.
강사님 혹시 강의 4분 35초에서 @Autowired를 안적어줘도 되는거 아닌가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링부트 내장 WAS 성능이
안녕하세요~! 저는 스프링부트는 현재 안써봤고 이번강의 통해서 접하고있습니다. 스프링부트 내장 WAS를 사용 시에 커버할 수 있는 리소스가 있을거라 생각이드는데 스프링부트내장 WAS사용시에는 확장을 어떻게 하시나요? 근무하시는 회사의 규모면 엄청큰 대규모라고 생각이드는데 어떻게 처리하시는지 궁금합니다. 스프링부트를 실행시켜 놓은 서버를 여러 개 두고 네트워트상에서 로드밸런싱하시는지 그런게 궁금하네요 아니면 내장 WAS한개로도 웬만한 서비스는 다수용이 가능한건지 궁금하네요 좋은강의 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
validateDuplicateMember 부분 질문입니다
안녕하세요. 요즘 강사님 덕분에 재밌게 공부하고 있습니다 ^^ 강의 듣다가 궁금한 부분이 생겨서 질문 남기게 되었습니다. 강의 5: 10초 부분에서 findMembers.size() > 0 으로 바꾸는게 좀 더 최적화 될 수 있다고 말씀하셨는데 isEmpty()의 시간복잡도가 O(1)이고 size()는 O(n)으로 알고 있습니다. 그래서 isEmpty()를 주로 썼었는데 단순히 조건에서의 효율만 말씀하신 것이 아니라는 생각이 드네요. 혹시 실제 실무에서는 저런 경우 어떤식으로 최적화 하는지 대략적으로라도 알 수 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요. 타임리프 관련해서 질문이 있습니다.
가령 JSP에서 <h1>${date} 테스트</h1> 이런식으로 처리하는데 타임리프에서는 타임리프 객체 + 텍스트 나타낼때 어떤식으로 해야될지 감지 안와서 질문드립니다! 감사합니다. ㅜ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 주인
안녕하세요 강의를 듣고 있습니다... 기본편에도 보긴봤지만.. 뭔가 한마디로 표현해서 개념을 잡는게 중요한거 같아서요... 제가 공부하고 아는선에서만 나열해봅니다.. 1. 연관 관계 주인만 등록,수정,삭제 할수 있고 주인이 아닌곳은 읽기만 가능하다 여기서 주인이 아닌곳은 mappedBy 한곳이다. 2. 강의중에 자동차를 비유하시는 강의가 있으신데. 자동차와 자동차바퀴가 있을때 1:n 생각을 해보면 자동차는 변경될 필요가 없고 바퀴를 변경해야되는 경우가 있으니 연관 관계 주인이다. 라고 이해를 하면 될까요? N 값이 주인이다 라고 이해를 하고 있습니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
위임하는 클래스 구현 이유
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 상품 서비스는 상품 리포지토리에 단순히 위임만 하는 클래스라고 하셨는데 굳이 구현하는 이유가 있는지 궁금합니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Junit5 의 Assertions.fail 에 대해 질문이 있습니다.
@Testpublic void 상품주문_재고수량초과() throws Exception { //Given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); //이름, 가격, 재고 int orderCount = 11; //재고보다 많은 수량 //When assertThrows(NotEnoughStockException.class, () -> { orderService.order(member.getId(), item.getId(), orderCount);}); //Then fail("재고 수량 부족 예외가 발생해야 한다.");} 안녕하십니까. 김영한님의 강의를 열심히 수강중인 학생입니다. Junit5에 대해 질문이 있어 글을 올립니다. 제가 Junit5를 배워보려고 강의 진행중 Junit4 대신 Junit5 를 써보았습니다. 그런데 Assertions.fail 때문에 위 코드가 자꾸 실패가 뜨더라고요. 제가 생각한 로직은 김영한님 강의에서 처럼 Assertions.assertThrows 안의 로직에서 예외를 던지면 fail까지 내려오지 않고 그대로 테스트가 성공으로 종료되며, 만약 예외를 던지지 않으면 fail까지 내려와 테스트 실패가 나오는 것이었습니다. 어떻게 코드를 수정하면 될까요? ------------------------------------------------------------------------------------------------------------------ 설명이 부족한 것 같아 추가로 남깁니다. 위 코드는 재고보다 많은 수량이 입력됐을때 예외를 제대로 내뱉는지 확인하기 위한 테스트입니다. 만약 예외를 제대로 뱉었다면 김영한님 강의에서처럼 fail() 까지 안넘어가고 assertThrows 에서 테스트가 종료되고 성공으로 반환되어야 했습니다. 그런데 위 코드에서는 코드 진행이 fail까지 내려가고 그대로 실패가 뜨더라고요. Service, repository와 같은 기타 다른 연관 코드들은 김영한님 코드와 동일하게 작성하였으며, fail을 주석처리하고 위 테스트를 돌렸을 경우 성공처리가 됩니다. 상기 목적을 달성하려면 위 코드를 어떻게 수정하면 될까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Casecade
Casecade 옵션은 부모에 걸지 부모가 아닌곳에 걸지 상황에따라 다른건가요 ?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Resource 인터페이스에 대한 질문입니다!
컨트롤러에 맵핑된 링크를 타고 들어오면 반환된 값을 text 페이지로 전송하거나 템플릿을 렌더링한 html이 전송되는게 일반적인 웹 프로그램 동작방식이잖아요? img 테그 같은 경우 contentDisposition 같은 규약을 사용한 것도 아니고 컨트롤러는 Response라는 인터페이스 타입의 객체를 반환했을 뿐이니 jason 형태로 Response 객체가 웹페이지에 보이는게 정상 아닌가요? 어떻게 페이지 이동없이 <img> 테그 위치에 이미지를 보여줄 수 있는 것인가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
톰켓이 클라이언트로부터 받은 HTTP를 디코딩하는 방식은 어떻게 되나요?
톰켓이 HTTP를 디코딩하는 방식을 아래와 같이 생각하고 있습니다. 제가 제대로 이해한 걸까요? HTTP 헤더는 ISO 8859-1로 디코딩합니다. HTTP 바디는 헤더에서 선언한 디코딩 방식으로 디코딩 하거나 HTTP form 데이터 방식 입력스트림 같은 경우는 UTF-8 디코딩 방식을 사용합니다. 예로 들면 POST/save HTTP/1.1 Host: localhost:8080 Content-Type: multipart/form-data; boundary=------XXX <- ISO 8859-1 디코딩 ------XXX Content-Disposition: form-data; name="username" <- UTF-8 디코딩 kim <- UTF-8 디코딩 ------XXX Content-Dispositon: form-data; name="age" <- UTF-8 디코딩 20 <- UTF-8 디코딩 ------XXX Content-Disposition:form-data; name="file1"; filename="intro.png" Content-Type: image/png <- UTF-8 디코딩 109328a9.... <-PNG압축 바이너리 형태 그대로