묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Do it! Node.js 프로그래밍 입문
function1, 2에 대한 질문
안녕하세요 자바 개발만 하다가 노드에 관심이 있어 공부하러 온 학생입니다.영상을 보다가 궁금한 점이 있어 질문 드리는데요.case 1 : function greeting(name){ console.log(`${name}님 안녕하세요.`);}case 2 : let greeting = function(name){ console.log(`${name}님 안녕하세요.`);}두 방법 동일하게 동작하는 것은 알겠는데case 1이 아닌 2번을 굳이 사용하는 이유를 잘 모르겠습니다.결국 선언된 함수의 호출은 동일하게 하는데let으로 함수를 선언하는 이유가 궁급합니다!!
-
해결됨블록체인 채굴 모듈 만들어보기
아 갑자기 코드가 바껴서 한참 헤맸습니다
wallet repository에서 repository struct 관련 에러가 생기길래 찾아봤더니app.go NewService 호출하는 부분에 매개변수나 이런게 바뀌어서 문제였네요한참 헤맸습니다,, 갑자기 강의가 확 뛰어버리네요 코드가 바뀌어요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
need more stock
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문 test에서 코드를 똑같이 따라 쳤는데 need more stock exception이 나요그리고 그 아래 상품주문_재고수량초과 테스트를 적을 때 @Test 에 expected를 적는데 expected라는 메소드를 해결할 수 없다고 빨간줄이 떠요링크 공유합니다https://drive.google.com/file/d/1Yr0w6SZWSH3Usqd8Gbx8bhQTcfRmmWHz/view?usp=sharing
-
미해결실습으로 배우는 선착순 이벤트 시스템
DB Lock 대신 Redis를 이용하는 이유
DB Lock을 이용하면 시간이 오래 걸린다는 성능 저하 문제가 발생하기 때문에 Redis를 써야 한다고 이해하였습니다. 하지만 강의 영상에서는 Redis가 싱글스레드를 이용한다고 하셨는데 그럼 똑같이 DB Lock과 마찬가지로 시간이 오래걸리는 것이 아닌가요..?
-
미해결
새로운 Authentication 객체 생성 코드 작성 시 error
안녕하세요.spring security 를 이용하여 회원가입을 하고 회원수정부분을 하고 있는 중입니다.문제는 UserController.java 에서Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(userDto.getUsername(), userDto.getPassword()));SecurityContextHolder.getContext().setAuthentication(authentication);이 코드를 작성하면error 메세지가 아래와 같이 뜹니다;;2024-02-27T15:58:28.207+09:00 WARN 85046 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' is not supported]수정페이지에서 버튼을 눌렀을 경우 js에서 put으로 잘보낸것같고 @PutMapping으로 잘 받은것 같은데 뭐가 문제일까요..? UserController에서 위의 코드를 지우면 error메세지는 나오지않지만 authentication 객체정보가 변경되지않아 update.html에 변경된 정보로 나오지않고 있습니다.;; update.html<div class="row justify-content-center" sec:authorize="isAuthenticated()"><section><div class="col-12 mb-30 text-center"><h3>회원수정</h3></div><div class="col-12 mb-15"><form><input type="text" name="id" Id="id" placeholder="id" th:value="${#authentication.principal.id}" ><input type="text" name="role" Id="role" placeholder="role" th:value="${#authentication.principal.role}" ><input type="text" name="provider" Id="provider" placeholder="provider" th:value="${#authentication.principal.provider}" ><input type="text" name="providerId" Id="providerId" placeholder="providerId" th:value="${#authentication.principal.providerId}" ><div class="form-group"><label for="username">아이디</label><input type="text" name="username" Id="username" placeholder="id" th:value="${#authentication.principal.username}" pattern="[A-Za-z]+" ></div><div class="form-group"><label for="password">비밀번호</label><input type="password" name="password" id="password" placeholder="password" onkeyup="pwCheck()"><div id="pw-result">5자 이상이어야합니다.</div></div><div class="form-group"><label for="email">이메일</label><input type="email" name="email" id="email" placeholder="email" th:value="${#authentication.principal.emial}" readonly></div><div class="form-group"><label for="email">닉네임</label><input type="text" name="nickname" id="nickname" placeholder="nickname" th:value="${#authentication.principal.nickname}" onkeyup="nicknameCheck()" required><div id="nickname-result">3~8글자여야합니다.</div></div></form><div class="text-center"><button class="btn bg_03A3F1 color-fff" id="btn-update">회원수정</button></div></div></section></div> update.jslet index = {init: function(){$("#btn-update").on("click", ()=>{ // function(){} , ()=>{} this를 바인딩하기 위해서!!this.update();});},update: function(){//alert('user의 save함수 호출됨');let data = {id: $("#id").val(),username: $("#username").val(),password: $("#password").val(),email: $("#email").val(),nickname: $("#nickname").val(),role: $("#role").val(),provider: $("#provider").val(),providerid: $("#providerid").val()};$.ajax({type: "PUT",url: "/update",data: JSON.stringify(data), // http body데이터contentType: "application/json; charset=utf-8",// body데이터가 어떤 타입인지(MIME)dataType: "json" // 요청을 서버로해서 응답이 왔을 때 기본적으로 모든 것이 문자열 (생긴게 json이라면) => javascript오브젝트로 변경}).done(function(resp){alert("회원수정이 완료되었습니다.");//console.log(resp);location.href = "/";}).fail(function(error){alert(JSON.stringify(error));});},}index.init(); UserController.java@RestControllerpublic class UserController {@Autowired private UserService userService;@Autowired private BCryptPasswordEncoder bCryptPasswordEncoder;@Autowired private AuthenticationManager authenticationManager;@PutMapping("/update")public ResponseDto<Integer> update(@RequestBody UserDto userDto){System.out.println(userDto);String rawPW = userDto.getPassword();String encPW = bCryptPasswordEncoder.encode(rawPW);System.out.println("1");userDto.setPassword(encPW);userService.update(userDto);System.out.println("2");Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(userDto.getUsername(), userDto.getPassword()));SecurityContextHolder.getContext().setAuthentication(authentication);// System.out.println("authentication 정보 : "+authentication); System.out.println("3");return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);//자바오브젝트를 JSON으로 변환해서 리턴 }} SecurityConfig.java@Configuration //@EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록//@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true)@EnableMethodSecurity(securedEnabled = true)public class SecurityConfig{@Autowiredprivate PrincipalOauth2UserService principalOauth2UserService;private final PrincipalDetailsService userDetailsService;public SecurityConfig(PrincipalDetailsService userDetailsService) {this.userDetailsService = userDetailsService;}@Beanpublic AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration)throws Exception {return authenticationConfiguration.getAuthenticationManager();}protected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService).passwordEncoder(encodePwd());}@Beanpublic BCryptPasswordEncoder encodePwd() {return new BCryptPasswordEncoder();}@Bean public LoginSuccessHandler loginSuccessHandler(){return new LoginSuccessHandler();}@Beanpublic LoginFailureHandler loginFailureHandler(){return new LoginFailureHandler();}@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception{http.csrf(CsrfConfigurer::disable).cors(Customizer.withDefaults());http.formLogin((formLogin) ->formLogin.loginPage("/loginForm").loginProcessingUrl("/login").successHandler(loginSuccessHandler()).failureHandler(loginFailureHandler())).authorizeHttpRequests(authorize ->authorize.requestMatchers("/admin/**").hasAnyRole("ADMIN") // /center/** url => admin 권한이 있는 사용자만 접근 가능.anyRequest().permitAll() // 권한을 주지않은 url 이 아니면 접근 허용).oauth2Login((oauth2) -> oauth2.loginPage("/loginForm").userInfoEndpoint(userInfoEndpoint -> userInfoEndpoint.userService(principalOauth2UserService)).successHandler(loginSuccessHandler()).failureHandler(loginFailureHandler())) ;return http.build();}}이렇게 작성이 되어있는 상태인데요.
-
미해결파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편
결제창 출력이 되지 않습니다.
<script src="">https://cdn.iamport.kr/v1/iamport.js"></script> <script>(function(){const IMP = window.IMP;const code = "iamport";IMP.init(code);const merchant_uid = "merchant_" + new Date().getTime();IMP.request_pay({merchant_uid: merchant_uid,name: "주문 테스트",amount: 100, }, function(response){// 결제 끝났을 때console.log(response); }); })();</script> KGINICIS Standard Pay Call FailedV901 : 잘못된 접근 방식입니다. 잠시 후 다시 시도해주세요.=> 영상과 동일하게 진행하였지만 잘못된 접근이라며 결제창이 뜨지 않습니다.영상 시점과 지금 시점의 api 링크나 접근 방법이 달라진 것일까요?
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
칩에 대해서 공부해봅시다 1분 41초 질문
'자원이 풍부한편'이라고 되어있는데여기서 자원이 어떤 의미인지 궁금합니다.
-
미해결CloudNet@ - Amazon EKS 기본 강의
amazon EKS 원클릭 배포 및 기본 스토리지 실습 문의.
https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=myeks&templateURL=https:%2F%2Finflearnaeb.s3.ap-northeast-2.amazonaws.com%2Feks-oneclick2.yaml해당 파일을 다운로드 받아 region만 수정하여 CloudForatmation을 실행하면 다음과 같은 Stack만 생성되고 다른 stack이 생성되지 않습니다.앞선 실습에선 node도 생성이 되고 했는데요...지금은 저것만 생성이 되고 다른건 생성이 안됩니다.
-
해결됨비전공자의 전공자 따라잡기 - 데이터베이스,SQL
외래키 On Delete SET NULL 관련
안녕하세요~ 타임어택 2주차 수강하고 있습니다~"섹션2의 처음 만나는 DDL" 강의 9분 32초에서employee 테이블에서 외래키 생성에 필요한role_id 컬럼 만드실 때 NOT NULL을 체크하셨는데요~그 다음 강의(on update, on delete)에서는 이게 해제되었더라구요.외래키 설정에서 On Delete - SET NULL을 하면NOT NULL 속성이 문제가 되는데 강의에서는 그 설명이 없어 보이더라구요.아마 강의 편집 과정에서 NOT NULL을 적용하면 중간에 서로 모순되어 에러가 나는 부분을 덜어낸 것으로 보여집니다.SET NULL을 하면 employee.role_id의 값만 지워지는 점을 강의시간 때 설명 해주셨기 때문에 NOT NULL을 선택하면 안되는 게 맞을거라 생각합니다.제가 맞게 알고 있는지 궁금해서 질문 드립니다. 감사합니다!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
키보드 소리가 너무커요
강의인데키보드 소리가 너무 커서거슬려요조용한 키보드좀 써서 찍으면 안될까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mariadb 접속 관련해서 질문 있습니다.
강의에서 권한을 주는 부분을 보기 전에 작성해주신 아래와 같은 Dockerfile을 사용하였을 경우 실행이 되지 않았습니다.1번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306그래서 저는 복사하는 폴더가 문제인가 해서 COPY부분을 아래와 같이 바꿔서 mydb만을 복사하도록 하였습니다.2번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql/mydb /var/lib/mysql EXPOSE 3306이렇게 하였더니 db가 제대로 복사가 되지는 않았지만 로컬에서 접속이 가능하였습니다.그래서 왜 복사가 안되는거지.. 고민하다가 나머지 강의를 듣고 다시 1번으로 빌드 후 실행한 뒤에는 복사도 잘 되었음을 확인하였습니다.궁금한 점은 다음과 같습니다.왜 2번 Dockerfile의 경우 복사는 제대로 되지 않았는데 로컬호스트에서 DB에 접속이 가능했었던 건지 궁금합니다.만약 COPY가 아니라 VOLUME을 적용해서 한 과거 기억을 되살려보면 권한은 문제가 없었던 것 같은데 권한은 해당 Docker Container에 어떤 이유때문에 적용해야하는 것인지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
[질문 내용]위와 같이 application.properties도 공백없이, 빠짐없이 작성하고 나머지 코드도 강의교재 복붙해서 넣었는데 이름 등록 버튼 누르면 다음과 같은 에러가 뜹니다...도움 부탁드립니다! 2024-02-27T15:02:44.697+09:00 INFO 10564 --- [nio-8080-exec-7] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-02-27T15:02:46.290+09:00 ERROR 10564 --- [nio-8080-exec-7] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 2024-02-27T15:02:46.293+09:00 ERROR 10564 --- [nio-8080-exec-7] 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 causeorg.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
-
미해결
graphQL 오류 질문
요청하기 버튼을 클릭하면 이와 같이 오류가 계속 뜹니다. 강의와 똑같이 코드를 입력했는데도 계속 오류가 발생되는 이유가 뭘까요? ㅜㅜ 오타를 발견해 오타를 모두 수정했는데도 똑같은 오류가 생깁니다.혹시 제가 발견 못한 오타라도 있을까요?ㅜㅜ
-
미해결프로덕트 디자이너를 위한 UX Writing
페르소나 사례 anslytics ㅅㅏ이트 링크 ㅈ
궁금합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
이게 될지 잘 모르겠어서 질문드립니다.
안녕하세요일코님 덕분에 많이 해결되고 있는 작업들이 기쁩니다.다름이 아니라 누름틀에 SetTextFile를 통해 작업을 하고 있습니다.그러다보니 [누름틀 시작]과 [누름틀 끝] 사이에 페이지가 바뀌는 경우가 생기는데 이 경우 [누름틀 시작] 부분도 다음 페이지로 넘어가도록 설정하고 싶은 경우가 생기게 되었습니다.혹시 이 같은 경우도 좋은 방법이 있을지 의견을 구해봅니다.
-
해결됨포트폴리오 초간단 배포하기
안녕하세요! 강의를 듣다 궁금한 점이 생겨 질문드립니다!
nginx 실습 중, 방화벽으로 포트번호가 막혀있어 직접 포트를 열어주는 작업을 하게되는데요. 이 부분이 혹시 aws 에서 인바운드 규칙을 설정해주는 작업과 동일한 부분인지 궁금합니다!
-
해결됨시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의하신 강의자료
안녕하세요 해당 강의들에 대한 강의자료는 강사님께서 언제쯤 올려주시는지 여쭤봅니다~~!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
환경구축
안녕하세요 선생님.이전에 학교 수업때문에 visual studio 만 써왔고 이번에 visual stduio code를 사용하고 싶어서 인터넷에서 gcc도 다운하고 구글링과 youtube보면서 이것저것해서 했는데 가끔 오류가 뜨더라구요.. 혹시 window에서 vs code 환경 구축하는 방법 알려주실 수 있으신가요? 교안에는 mac에서만 하는 방법이 있어서..그리고 dev++ 대신 visual studio 로 하면 환경이 달라서 안될까요??코테는 주로 dev++로 진행되나요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 db 끄기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 선생님이 db끄면 실행안된다면서 보여주셨는데, 윈도우에서는 db 끄는 명령어가 뭔가요?
-
해결됨초보자도 쉽게 따라하는 블록체인 프로그래밍(코인제작포함)
unit count 초기화 관련 질문있습니다.
안녕하세요!컨트랙트 개발 쪽에 관심이 생겨서 어제부터 수업 수강하고 있는데 너무 잘 듣고 있습니다:) 좋은 수업 감사합니다.'카운터 컨트랙트를 통해서 블록체인 기록여부 확인하기' 강의의 코드에 대해 궁금한 점이 있어 글 남깁니다. unit count; 이렇게 작성하면 저절로 count 변수에 0이 할당되는 걸까요? 따로 0 초기화를 안 해줘도 상관없는 건지 궁금합니다!getCount 함수에서 view 키워드를 반드시 적어줘야 하는 건가요? 감사합니다.