묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
프로젝트 의존성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle 에서 implementation 'org.springframework.boot:spring-boot-starter-web' 를 넣고 실행 했을 때는 오류가 나고 지우고 실행하니깐 정상적으로 작동하는데 그 이유가 뭔가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 jdbc h2Database와 연동
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Wrong user name or password에러가 뜨는데 어떻게 해야되나요?org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]이 오류가 떠요
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
런타임 예외를 사용해야 하는 이유에 대해
체크예외보다는 런타임 예외를 사용해야 하는 이유에 대해 다음과 같이 정리해봤는데, 잘 이해하고 있는 게 맞을까요?체크예외든, 언체크예외든 대부분의 예외는 컨트롤러나 서비스 계층에서 복구가 불가능한 예외이다.하지만 이 중에서 언체크예외를 사용한다면, 컨트롤러와 서비스 계층에서 디테일한 예외까지 의존하고 알 필요가 없어진다. 이러한 한 가지의 이유로 언체크예외를 사용하는 것이 더 좋다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
로그 관련 질문
예외와 관련된 로그를 찍는데 로그 레벨을 log.error가 아닌 info로 두는 이유가 있나요?System.out.print()보다 log를 남기는 방법이 더 선호되는 이유가 있나요?에러라는 표현과 예외라는 표현은 같다고 봐도 무방할까요?감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2Database 로컬 호스트에서 거부
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이렇게 해서 접속을 했는데거부합니다.홈화면에 test.mv.db까지 완성한 단계입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빌드하고 실행하기 부분에서 명령프롬프터를 사용하신것 같은데 윈도우 파워쉘로 사용해도 되나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원목록 번호
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원을 등록하고 조회하면 1 ~2 ~ 이렇게 번호가 매겨지는 게 어떻게 되는 건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메세지 설정 파일 라이브러리 아이디어 질문
메세지 국제화 수업을 들으며 생각한 것이 있습니다. 만약 messages_en.properties를 작성한다면 간편한 설정으로 하여금 기준 메세지 설정 파일을 기준으로 messages_ko 등 messages_XxXx.properties를 자동으로 만들어주는 라이브러리같은 것이 있을까요? 직접 구현하려면 매우 어려운 작업일까요?지금 생각으로는 구글 번역기 API 정도를 활용해서 (번역이 완벽히 정확하진 않겠지만) 내가 원하는 messages_XxXx.properties를 자동 생성해주는 라이브러리를 만들기를 시도해볼까 생각입니다. 이미 있는 기능일까봐요. 검색도 해보고 chatGPT에도 물어봤는데 있는 것 같지는 않더라구요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문 콘솔 warn 표시
MVC와 템플릿 엔진 강의 06:51실행하여도 INFO문만 찍히고 강의와 달리 WARN은 발생하지 않습니다. 콘솔에 찍힌 값은 다음과 같습니다.2024-07-30T10:30:55.095+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : Starting HelloSpringApplication using Java 17.0.11 with PID 33580 (C:\Users\user\IdeaProjects\hello-spring\build\classes\java\main started by user in C:\Users\user\IdeaProjects\hello-spring)2024-07-30T10:30:55.115+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default"2024-07-30T10:30:57.606+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)2024-07-30T10:30:57.631+09:00 INFO 33580 --- [hello-spring] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2024-07-30T10:30:57.631+09:00 INFO 33580 --- [hello-spring] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.26]2024-07-30T10:30:57.775+09:00 INFO 33580 --- [hello-spring] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2024-07-30T10:30:57.776+09:00 INFO 33580 --- [hello-spring] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2539 ms2024-07-30T10:30:58.049+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2024-07-30T10:30:58.643+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'2024-07-30T10:30:58.663+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : Started HelloSpringApplication in 4.99 seconds (process running for 7.892)2024-07-30T10:31:29.971+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2024-07-30T10:31:29.972+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2024-07-30T10:31:29.975+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms제 코드는 다음과 같습니다.package hello.hello_spring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hell-mvc") public String hellmvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } }
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
H2 v2.2.4와 실행모드 관련 질문
안녕하세요현재 강의 한참 초반부라고 할 수 있는 "데이터베이스 연결"부분을 보고 있는데요,강사님께서 사용하는 H2 모드가 임베디드 모드인가요 서버모드인가요?강의 1:09초 즈음 노출되는 화면을 보면 모드는 임베디드 모드이고, JDBC URL은 jdbc:h2:tcp://localhost/~/test 로 보이는데요저는 h2 버전 2.2.4를 이용 중인데 서버 모드일 때는 JDBC URL이 jdbc:h2:tcp://localhost/~/test 형태이지만, 임베디드 모드일 때는 jdbc:h2:~/test 입니다.DBConnectionUtilTest 가 자꾸 실패하여, JDBC URL을 임베디드 모드일 때의 url로 변경하고 서버를 내리면(= ./bin/h2 실행 종료)하면 테스트 코드가 성공하는데요,서버 모드의 url로 변경하면 테스트 코드 실패는 둘째치고 웹 콘솔에서 h2를 실행하려 할 때 아래와 같이 에러가 발생합니다.찾아보니 h2의 임베디드 모드 자체가, 여러 클라이언트가 접근 불가능한 모드이고 하나의 jvm 인스턴스만 접근 가능하다고 되어 있기 때문에, h2 실행파일을 종료하고 테스트코드가 성공하는게 자명하다고 느껴지긴 하는데요.. 영상에서 강사님이 진행하는 과정과 너무 달라지기도 하고, h2 서버모드 실행 시 sonarqube 관련 에러가 발생하는게 의아해서 질문 남깁니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
test 메서드 작성 시 질문
보통 저는 모든 메서드 명에 대해서 camel case로 작성을 합니다. 혹시, 강의 영상에서 테스트 메서드 명에 대해서 snake case로 작성하시는 이유가 있나요? 테스트 메서드 명에 대한 규약인가 싶어서 질문 드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 목록 조회가 안됩니다.
회원가입에서 회원가입 등록후 회원 목록에서 조회가 안됩니다. 콘솔에 찍어보니 회원 등록은 정상적으로 잘 되는 것 같은데 목록 조회가 안됩니다. 파일 첨부하겠습니다! 감사합니다 :)https://drive.google.com/file/d/1W7jN-wppJGC_hbWtQoa4PBvN0LRa41X9/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
홈 화면 추가 home 안뜸
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님이 하는대로 했는데 home이 안뜹니다..ㅜㅜhttps://drive.google.com/file/d/1tqcBanSLXaCbKdE1dPP1g6P_sR3dc-2h/view?usp=sharing입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
6:58초에 있는 stream에 관한 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 질문이 있어 작성합니다.일딴 filter 함수로 같은 이름이 있는지 확인 후 findAny() 함수를 사용했을때 한개만 반환하는데 만약 동명이인이 있을 겨우에는 어떻게 처리해야하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ArgumentResolver와 컨버터 로직순서와 정리에 괂해 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 스프링은 다양한 파라미터 타입을 허용함따라서 컨트롤러에 매핑된 매서드의 파라미터의 타입에 따라@ResponseBody로 뷰없이 다이랙트로 쓸 경우0 = ByteArrayHttpMessageConverter1 = StringHttpMessageConverter2 = MappingJackson2HttpMessageConverter중에 선택 (선택 안될수도있음) 이해한게 맞는건지 확인하기 위해서 예시로 이런 코드(클라이언트가 입력한값을 다시 그대로 돌려주었을때) 를 볼때 @ResponseBody @RequestMapping("/model-attribute-v1") public HelloData modelAttributeV1( HelloData data) { log.info("username={} age={}", data.getUsername(), data.getAge()); return data; } 일경우1클라이언트 요청을 DispatcherServlet이 받음.2Handler Mapping이 URL과 매핑된 핸들러 메서드를 찾음=modelAttributeV13Handler Adapter가 핸들러 메서드를 실행.4실행할려고보니 파라미터타입이 HelloData 이네 따라서 Argument Resover 가요청 파라미터값을 data 객체에 바인딩함.5핸들러 메서드가 실행되고 로그 기록.7반환타입이 HelloData네 그러면 ReturnValueHandler 가 MappingJackson2HttpMessageConverter을 통해data 객체의 필드값을 이용하여 자동으로 json 형태를 만듬8 json을 클라이언트에게 최종 응답 전송. @RequestParam,@ModelAttribute 있을경우나 파라미터로 Model,HttpEntity 등이 있을경우 get 쿼리로 값이 들어오든 html form 으로 들어오든 바디message 로 들어오든 그걸 잘 해석해서 적절한 파라미터 객체에 바인딩해서 만들어주는게 ArgumentResolver 이고@RequestBody 인경우나 HttpEntity가 파라미터로 있는경우 그리고 @ResponseBody경우는 ArgumentResolver가 바디message를 처리할 경우에 한해서 메세지컨버트를 사용해서 처리한다 이렇게 생긱한게 맞을까요 ?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 윈도우에선 어떻게하나요?? ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 ㅠㅠ 완전 비전공자라 콘솔이 윈도우에선 cmd인지도 몰라서 헤맸네요 .. spring 폴더까지 들어가서 ./gradlew build 이렇게 치면 계속 이렇게만 나오는데 어떻게 해야하나요 ..?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
localhost:8080 접속 불가
안녕하세요 선생님리액트 프로젝트를 본격적으로 하기 위해 npm i -> npm start로 localhost:8080에 접속해야 하는데 자꾸 오류가 나오네요 제가 군대에서 수업 듣고 있어서 vscode는 설치를 못하고 대안으로 무료클라우딩 사이트 replit을 이용중입니다. 폴더구조 정확히 맞게 했고 100%그대로 따라 옮겼는데 왜 이런 오류가 나오는지 모르겠습니다.어떻게 해결해야 될까요? 공부해야 하는데 여기에 막혀서 하루종일 시간 썼네요 ㅠ 답변주시면 감사하겠습니다!!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Model 과 ModelAndView
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Model , ModelAndView 쓰임새 똑같은건가요 ? 정확한 차이점을 모르겠습니다 Model 객체는 인터페이스로 직접 인스턴스 생성은 못하고 파라미터로 구성했을때 스프링 빈에서 자동 주입받는 방식을쓰고ModelAndView는 클래스로 직접 인스턴스 생성하던가 파라미터로 구성해서 자동으로 주입 받을수있다이 정도 말고 각각 언제 써야하는지 이런게 와닿지가 않아서 질문드립니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
preHandle에서 session비교
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Slf4j public class LoginCheckInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); HttpSession session = request.getSession(); if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null) { log.info("미인증 사용자 요청"); //로그인으로 리다이렉트 response.sendRedirect("/login?redirectURL=" + requestURI); return false; } return true; } }session 비교부분에서 제가 생각하는게 맞는지 질문 요청합니다!if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null) 코드 부분에서 처음 제가 생각할때는 session == null 비교만 해주면 되지 않나? 라고 생각했습니다.생각을 해보니 사용자 아이디 세션 외 다른 세션값이 들어갈 수도 있기 때문에 한번 더 session.getAttribute(SessionConst.LOGIN_MEMBER) == null 코드를 통해 사용자아이디 세션까지 비교해서 로직을 수행하는것으로 보입니다. 또한 그냥 처음부터 if(session.getAttribute(SessionConst.LOGIN_MEMBER) == null) 로 코드를 작성하면 session이 아예없을 시 코드 참조가 아예 안돼서 사용을 못하는 것일까요?제가 생각한게 맞을까요?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
최근검색어 3 풀이에서
안녕하세요 선생님 수업 잘듣고 있습니다.다소 수준이 높은 수업이라 조금 헤매고 있지만요..최근 검색어 3에서 2분 41초 경에store js에서 15번째 줄 search(keyword) { this.addHistory(keyword); return this.storage.productData.filter((product) => product.name.includes(keyword) ); }이 부분이 있는데요. 이 부분때문에 store의 search가 addHistory를 호출하고 상태변화가 이루어질 수 있는데 (addhistory 내용만 수정하면 main.js의 코드를 수정안해도 목표로 하는 최근 검색어에 목록 추가를 할 수 있어서요)굳이 4분 1초 경에 main.js의 search에서 setstate를 건드리시는 이유가 무엇인가요?이미 상태변화가 store.js에서 작성한 코드 때문에 이루어지고 있기때문에 다소 역할이 중복된 코드가 아닌가해서요답변주시면 감사하겠습니다