묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
requestURL 문의드립니다.
response.sendRedirect("/login?requestURL=" + requestURI); 이렇게 되어있는데 requestURL 이라는게 정확히 어떤것을 의미하는걸까요? 코딩을 할 때는 login?requestURL로 하면 원하는 페이지로 이동이 안되고 메인으로 이동되고 login?requestURI로 하면 원하는 페이지로 이동이 되네요.. sendRedirect를 할 때 requestURL로 하는것과 requestURI로 하는것에 차이가 있을까요? requestURL은 전체 주소를 가져오는것이고, requestURI는 도메인을 제외한 경로를 가져오는것으로 알고 있는데 갑자기 햇갈리네요.ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session을 DB에 저장하지는 않나요??
session을 생성할 때 public void createSession(Object value, HttpServletResponse response){ //세션 id를 생성하고, 값을 세션에 저장 String sessionId = UUID.randomUUID().toString(); sessionStore.put(sessionId, value); //쿠키 생성 Cookie mySessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId); response.addCookie(mySessionCookie);} 이 소스에서는 sessionStore에 담아놓았는데.. 실제 운영을 할 때도 저렇게 ConcurrentHashMap에만 담아놓고 사용을 하나요?? 아니면 DB에 아이디와 세션값을 따로 저장을 할까요?? 어차피 새션값은 고유값이기는 하지만 일정 시간이 지나면 변경이 되는 값이라 굳이 DB에 테이블을 만들어서 저장을 하지는 않을 것 같은데 실제로 개발을 하고 운영을 할 때도 저렇게 ConcurrentHashMap에만 담아놓고 끝나는지, 아니면 DB까지 저장이 되는지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
intellij 실행이 안됩니다.
강의 정말 잘 듣고있습니다. intellij실행에서 막혔습니다. os는 mac이고, 강사님 따라서 intellij를 처음 다운로드해서 사용해봅니다. Error: Could not find or load main class Caused by: java.lang.ClassNotFoundException: 실행하면 이런에러가 발생하는데 이유가 무엇인가요 ? (main class 중에 제 프로젝트 내용이 나오지 않습니다.)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
SSR CSR 의 차이에 대해서 질문이 있습니다.
강의 내용중, SSR은 서버단에서 동적으로 HTML생성해서 타임리프를 통해서 만들어 웹브라우저로 뿌려주고, CSR은 자바스크립트 요청을 하여 서버단에서 관련 데이터들만 뿌려주고 웹 브라우저 자체에서 자바스크립트를 통해 HTML결과를 렌더링 한다고 인지하였습니다. 그런데 13:50정도의 내용에서는 SSR은 정적인 페이지, CSR은 동적인 페이지에서 사용된다고 하셨습니다. (여기서 질문입니다) 1. 제가 인지한 정적페이지는 정말 사용자마다의 정보없이 모든사용자에게 똑같이 내려줄법한 페이지를 의미하고 동적페이지는 사용자마다 정보다 다르기에 DB를 통해 가져와 동적으로 자용자마다 큰틀은 비슷하지만 정보표시 자체가 다르게 되어서 동적페이지라고 인지하였습니다. 맞나요? 2. 저같은 경우 UI를 비쥬얼 스튜디오 코드 같은곳에서 이쁘게 꾸민후 해당 프론트코드 와 인텔리제이에서 만든 백앤드 코드를 합치고싶은데 이럴땐 어떻게 연동을 해주나요? 3. 또한 저는 개인 프로젝트를 할때 리엑트 같은 CSR기술을 사용해보려고 하는데, 이럴땐 리엑트로 HTML렌더링 웹사이트를 만들어준후, 정보를 작업하는 백엔드쪽은 인텔리제이같은 툴을 이용하여 데이터를 만든후 제가 만든 리엑트 웹사이트에 뿌려주게 되는건가요? 방식이 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인라인 사용일 때에 내추럴탬플릿에 대해서 여쭤봅니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] <script th:inline="javascript"> 1번) var username = [[${user.username}]];//자바스크립트 내추럴 템플릿2번) var username2 = /*[[${user.username}]]*/ "test username"; </script> 위 내용에서 내추럴 템플릿을 쓰는 이유가 궁금합니다.1번)처럼 그냥 넣어줘도 userA가 나올텐데, 굳이/* */ 이렇게 사용하고, 뒤에 "test username" 이라는 값을넣어야 하는 이유가 따로 있는지 궁금 합니다.어차피 인라인 자바스크립트이고결과값이 같은 값이 나올텐데..2번처럼 사용하는 때가 따로 있는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC 패턴의 탄생 배경과 RequestDispatcher 의 관계
이전 강의에서 서블릿과 jsp 각각의 비효율적인 부분 때문에 MVC 패턴이 등장하게 된 것으로 이해를 했습니다. MVC 패턴이 동작하기 위해서는 RequestDispatcher 를 통하여 jsp 부분으로 forwarding 해주는 기능이 필수적으로 필요해 보이는데요. 이 기능이 서블릿의 단점을 보완하기 위해 서블릿 버전이 업데이트 되면서 MVC 를 지원하기 위해 나중에 나온 기능인지, 원래 부터 있었던 기능인데, "고대 개발자"들이 모르고 비효율적으로 쓰고 있었던 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
템플릿을 만들 때 태그가 중복되면 어떻게 되나요?
테스트를 해 보니 전체 공통 레이아웃을 만들어서 사용을 할 때 layoutFile.html 파일에서 title, content를 넘기고 받는 페이지에서 <title>, <content> 테그를 사용해서 레이아웃을 페이지별로 랜더링을 하는데.. 만약 받는 파일에서 section 으로 받아서 적용을 시킬 때 받는쪽 html 에서 section이 여러개 있을 경우에는 section을 사용하는 여러 테그영역 모두가 바뀌어 버리는데 여러개의 section을 사용을 할 경우에는 특정 section중 원하는 section을 선택해서 적용을 할 수 있는 방법이 있을까요??? 그리고 사용할 수 있는 테그는 html에 있는 테그들만 사용을 할 수 있나요?? 아니면 <breadcrumb></breadcrumb> 이런식으로 임의로 만들어서 사용을 할 수도 있는건가요?? 만약 임의로 만들어서 사용을 한다면 html표준에 맞지 않는데.. 전체 레이아웃을 유지한 상태에서 군데군데 바꿔야 하는 부분이 여러군데이고, 겹치는 테그들이 있을 경우에는 어떤식으로 사용을 하는것이 가장 좋을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jar 파일 실행하는게 잘 되지 않습니다..
https://www.inflearn.com/questions/53961 이 글을 보고 git bash를 설치해서 인텔리제이에 적용하여 사용중입니다, 윈도우 환경에 자바 버전은 11입니다. java -jar 명령어를 사용해서 .jar 파일을 실행하는 과정이 잘 되지가 않습니다. 파일 이름이 demo-0.0.1-SNAPSHOT.jar 라서 java -jar demo-0.0.1-SNAPSHOT.jar 라는 명령어를 계속 입력했는데 아무 반응도 일어나지 않습니다. 뭐가 잘못된 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드하고 실행하기에서 java -jar로 실행후 실행종료 어떻게 하는건가요?
8080포트의 PID를 킬해서 종료를했는데 그냥 종료하려면 어떤 명령어를 써야하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
intelliJ에서 out폴더가 안보입니다.
out폴더나 build등의 폴더는 안보이고 gradle, src, test폴더만 보이는데 out폴더를 볼려면 어떤 설정을 변경해줘야 보여지나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
한글 깨짐 문제 있습니다
사진처럼 jar로 했을 때는 print에 한글 깨짐이 없었는데 war로 하니까 한글이 깨지네요 어떻게 해결해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
영한님 강의 아래 사용한 단축키에 대한 정보를 나타내는 자막? 같은건 어떻게 할 수 있나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]영한님 강의 아래 사용한 단축키에 대한 정보를 나타내는 자막? 같은건 어떻게 할 수 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
리다이렉트 관련해서 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 잘 듣고 있습니다. HTTP 강의에서 3xx 리다이렉션에서도 HTTP 메서드가 변경되는 경우와 유지되는 경우가 존재하는것으로 학습했습니다. "redirect: ~"처럼 문자열 형식으로 리턴하는 경우, GET방식으로 메서드 변경되는 것이 기본값인건가요? 만약 리다이렉트 시에도 메서드를 유지하고 싶은 경우 spring MVC에서 어떻게 구현하는지 궁금합니다! 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session이 null이 될 수 있나요
위에서 로그인이 된 상태면 세션 값이 있을 텐데 null 체크를 왜 하는건가요? (제 생각에는 세션 시간이 만료되면 저렇게 구현 할 수 있을거 같긴해요. 이 강의에서는 그런 코드는 없구요)
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
파일 이름 인코딩 관련해서 질문 드립니다.
MemberFrontController 에서 맨 처음 request.setCharacterEncoding("UTF-8"); 이렇게 넘어오는 데이터를 utf-8로 인코딩 해주는 거는 POJO에서 하는 filename = URLEncoder.encode(filename, "UTF-8"); 이거 랑 별개인 건가요? 궁금해서 질문 드립니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
한글 인코딩 질문 드립니다.
안녕하세요. 맨처음 FrontController에 모든 로직을 다 집어넣는 부분에서 인코딩 설정을 euc-kr로 하셨는데 그 전에꺼는 보니까 UTF-8로 되어 있더라고요. 회원가입 하는 과정에서 강사님께서 memberRegister,html form 태그의 경로를 MVC03으로 그대로 두셔서 UTF-8로 인코딩이 계속 되신거 같은데 저는 경로를 MVC04로 바꿔서 가입을 진행해보니 한글이 깨져서 나옵니다. 혹시 euc-kr로 인코딩 했을 때 왜 한글이 깨져서 나오는지 알 수 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
객체 vs map
안녕하세요 항상 좋은 강의 감사합니다. 결국에는 ItemSaveForm가 ItemUpdateForm 을 분리하라는 것을 잘 이해했습니다. 그런데 궁금한 점이 있습니다. 실무에서는 이런 객체들(dto)을 사용하지 않고 map하나로 사용하는 경우가 있습니다. 이런 경우에는 @Validated 를 어떻게 적용할 수 있나요? 추가질문) 객체 vs map에서는 결국 객체가 맞을까요? 그럼 그 이유는요? 객체 vs map 에 대한 글을 예전부터 궁금해서 많이 찾아봤었습니다. map은 작업, 유지보수적인 면에서 상대적으로 많이 수월한 장점이 있다고 느꼈고(현직에서 senior 분들과 그렇게 작업하고 있습니다.( @RequestBody Map<String, Object> params, ...) 로 모든 것을 컨트롤러에서 받습니다. 그렇다면 왜 객체를 써야하며 장단점, map은 왜 지양해야 하는지 궁금합니다. 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST API 방식으로 이미지를 보여주는 방법
저장을 하는것은 구현을 하였는데, 사용자가 상품 이미지를 보고싶어 하면, 프론트엔드에서 먼저 서버에, 원하는 상품의 id 값으로 요청을 하면, 서버는 그 상품이 서버에 저장된 이름을 반환해주고, 프론트엔드에서 그 이미지를 가지고, 서버에 저장되어 있는 이미지를 보여주는 방식을 사용하면 될까요..?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
선생님! 질문이 있습니다.
안녕하세요! 현재 컴공 2학년을 마치고 군대를 다녀온 학부생입니다. 질문 남기기 전에 먼저 좋은 강의 남겨주셔서 감사합니다^^ 패x트캠퍼스 강의도 들어보고 여러가지 글도 읽었는데도 스프링 개념에 대해 잘 몰랐는데 강의를 신청하고 들어보니 너무 쉽게 순차적으로 잘 설명해주셔서 어느정도 감이 잡히고 흥미가 생겼습니다. 제가 질문드릴 것은 다음과 같습니다. 로드맵을 따라서 수강을 하고 있는데, mvc2편까지 듣고는 제 개인 프로젝트를 할 수 있는 수준이 될까요? 물론 강의를 다 듣고 복습을 한다는 가정하에서요.. 지금 상태는 강의듣고 복습하고 있는데, 이론적인 부분은 어느정도 이해가 되는데 실무에서는 어떤식으로 사용하고, 실제 프로젝트를 할 때에는 어떤 상황에서 어떤 걸 써야할지는 아직 감이 잘 안 잡힙니다! 혹시 강의를 듣고 추후에는 어떤 식으로 공부해야지 프로젝트도 잘 할 수 있고, 더 바람직한 방법일까요? 물론 공부에 방법은 없다고 다들 그러시지만, 프론트엔드만 공부했던 저로서 어떻게 해야할지 방법이 안 잡힙니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST API 방식에서 국제화 처리
안녕하세요 선생님 항상 강의 잘 보고 있습니다.! 타임리프에서의 국제화 적용은 잘 이해했습니다. 저는 현재 친구들과, 간단한 프로젝트를 진행중인데, 그 프로젝트는 백엔드와 프론트엔드를 나누어서 REST API 방식으로 데이터를 주고받습니다. 공부 목적으로 진행하는 프로젝트라, 국제화 기능을 넣어보려고 하는데 REST API 방식에서는 국제화를 어떻게 적용시켜야 하는지에 대해서는 언급이 없으셔서 혼자 코드를 작성해 보았습니다. 혹시 부족한 부분이 있거나, 잘못된 부분이 있으면 지적해주시면 감사하겠습니다. @Controller@Slf4j@RequiredArgsConstructorpublic class MessageController { private final MessageSource messageSource; @GetMapping("/message") public ResponseEntity<?> message(Locale locale){ String result = messageSource.getMessage("hello",null, checkLocale(locale)); log.info("message = {}" ,result); return new ResponseEntity<>(result, HttpStatus.OK); } private Locale checkLocale(Locale locale){ Locale result = switch (locale.getLanguage()){ case "en" -> Locale.ENGLISH; case "ko" -> Locale.KOREA; default -> Locale.ENGLISH; }; return result; }}