쿠키 강의에서 18:00 부분 질문있습니다 아래 코드에서 처음에는 login으로 들어가서 로그인창이나옵니다 그리고 서버에서는 set cookie로 응답을 보내겠죠? 그러고 끝이 나야하는데 왜 처음 로그인할때는 ~~님 환영합니다 까지 뜨는건가요? 요청은 제가 한번 보낸것 아닌가요? 요청(처음로그인) -> 응답(302,쿠키 보내기) .. 여기서 재 요청을 하면 else if(cookies.name)이 작동해야하지만 왜 한번만 요청을 했는데 login , cookies.name 이렇게 2개가 작동하는건가요? if ( req . url . startsWith ( '/login' )) { const { query } = url . parse ( req . url ); const { name } = qs . parse ( query ); const expires = new Date (); // 쿠키 유효 시간을 현재시간 + 5분으로 설정 expires . setMinutes ( expires . getMinutes () + 5 ); res . writeHead ( 302 , { Location : '/' , 'Set-Cookie' : `name= ${ encodeURIComponent ( name ) } ; Expires= ${ expires . toGMTString () } ; HttpOnly; Path=/` , }); res . end (); // name이라는 쿠키가 있는 경우 } else if ( cookies . name ) { res . writeHead ( 200 , { 'Content-Type' : 'text/plain; charset=utf-8' }); res . end ( ` ${ cookies . name } 님 안녕하세요` ); } else {
MemberUser에서 private는 같은 클래스에서만 접근이 가능한것으로 알고 있습니다. private Member member; this.member = mvo는 Member mvo = Mapper . memLogin ( username )에서 전달받은 Member 객체로 MemberUser 생성자를 만들때 mvo를 전달 받은 것이므로 결국 this.member = mvo 여기서 this.member는 private Member member이고 mvo는 Mapper . memLogin ( username ) 이므로 this.member에는 로그인한 유저의 정보가 저장되어 있는데 Member 클래스를 보면 인스턴스변수가 private로 선언되어있어서 다른클래스에서 접근할때는 member.인스턴스변수명 이런식으로는 접근이 불가능하지 않나요? private로 선언되어있는 변수는 getter setter로만 접근 가능한 것이 아닌가요? 즉 jsp단에서 member 인스턴스 변수에 접근할때 mvo.member.memID 이런 방식은 접근이 불가능해야되는게 아닌가요??? mvo.member.getMemID() 접근 해야되는거 아닌가요??
이 부분에서 오브젝트 타입의 배열에는 왜 값이 null이 찍히는건가요?? 그리고 전체적인 흐름을 질문 드리고 싶은데 enum값을 비교하려고 string타입으로 받아오고 오브젝트 배열을 만든 이유가 타입별로 딕셔너리에 저장을 하려고 만들고, 즉 딕셔너리는 타입 배열을 저장하는게 맞나요? 포문으로 딕셔너리 순회하면서 찾아주는? 전체적인 흐름이 머릿속으로 잘 안 그려지네요
교재 162 페이지에서 페이지 : 가상 메모리 를 사용하는 최소 크기 단위 프레임 : 실제 메모리 를 사용하는 최소 크기 단위 라고 써있는데 교재 163 페이지에서 PFF는 페이지 폴트 빈도를 조절하는 방법으로 상한선과 하한선을 만드는 방법입니다 만약 상한선에 도달한다면 페이지 를 늘리고 하한선에 도달한다면 페이지 를 줄이는 것이죠 라고 되어 있습니다 제가 여러곳에서 검색해본 결과 페이지가 아닌 프레임 이 맞는 말이라고 나오고 제 생각에도 페이지 폴트 빈도를 줄이려면 가상메모리가 아닌 실제 메모리 를 늘려야 할것 같은데 어떤것이 맞는 건가요? 제가 참고한 사이트는 아래와 같습니다 1. 블로그 https://velog.io/@hyeon930/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-8.-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%9D%98-%EA%B4%80%EB%A6%AC 2. 블로그 https://dudumandu0321.tistory.com/3 3. 블로그 https://bubble-dev.tistory.com/entry/OS-%ED%8E%98%EC%9D%B4%EC%A7%80-Thrashing-Working-Set-PFF
쿠키관련해서 Secure, HttpOnly, SameSite에 대해서 질문드립니다. 위에 보안 용어들은 다 서버측에서 'setCookie'에 값으로 넣어주는거 아닌가요? HttpOnly, SameSite는 XSS,XSRF 공격을 방지하기 위해서 존재하는걸로 배웠습니다. XSS,XSRF는 사용자가 특정사이트 들어갈때 당할수 있는 공격인걸로 알고있는데, 그렇다면 HttpOnly와 SameSite같은 쿠키 보안설정은, '서버'측에서 '클라이언트'를 배려하기 위해서 만들어진건가요? 아니면, XSS,XSRF로 인해서, 고객정보가 탈취되면 그걸 악용해서 해커들이 서버를 공격할 수 있을까봐 그런건가요?.. 질문 작성하면서 마지막에 적은 문구가 생각이 났네요..ㅋㅋ 결국 서버가 공격당할까봐 그런건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] MVC 프레임워크 만들기에서 각각의 컨트롤러에 접근하기 위해 컨트롤러를 담고 있는 Map을 만들어서 거기에 Key값으로 URI를 담아줬고, Value값으로 컨트롤러를 담아줘서 매핑을 시켜줬잖아요. 근데 스프링에서는각각의 컨트롤러에 @RequestMapping("주소") 어노테이션을 달아주면 위 과정이 자동으로 이뤄지는 건가요?
안녕하세요 강사님, PasswordChangeForm 을 재정의 하는 부분에서 질문이 있어 글 남깁니다. 1. PasswordChangeForm은 SetPasswordForm을 상속받기 때문에 clean_new_password2를 오버라이딩하여 해당 함수가 기존 대로 실행 될때 단순히 old_password와 같은지 비교하는 로직을 추가한게 맞나요? 2. clean_new_password2를 오버라이딩 할 때, super().clean_new_password2()를 하지 않고 self.cleaned_data.get('new_password2')를 하게 기존의 pw1==pw2 확인하는 로직이 사라져 버리기 때문에 문제가 생기는 것이 맞나요? (실험결과 new_pw1, new_pw2 를 다르게 넣으면 new_pw1 으로 변경이 됩니다). 즉 super()... 를 적어줘야 기존 로직을 지킬 수 있는 것이죠? 3. clean_new_password1은 새로운 함수를 정의한 것인데 clean_ 이 앞에 붙었기 때문에 PasswordChangeForm의 로직이 동작할 때 무조건 해당 함수가 실행이 되는 것이 맞나요? 이 함수가 실행되는 시점이 궁금합니다. 감사합니다.
안녕하세요? 1번 강의 소스파일의 yaml 파일 설정을 그대로 사용하고 있습니다(소스도) 근데, api/v1/members 호출할때마다 INSERT 등의 쿼리 로그가 보이지 않네요. 또 MEMBER 테이블에 호출하면서 저장되는 데이터 확인이 안되는데, yml 파일 설정을 어떻게 변경해야할까요? [현재설정] spring: output: ansi: enabled: always datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: update properties: hibernate: # show_sql: true format_sql: true default_batch_fetch_size: 1000 show-sql: true logging.level: org.springframework: info org.hibeernate.SQL: debug # org.hibernate.type: trace
안녕하세요, 강의 잘 보고 있습니다. 강의 내용에서 궁금한점이 있는데 접두사 부분에서 페이징 정보가 둘 이상일 경우 접두사로 구분한다고 나와있는데, 해당 pageable 인자를 Qualifier어노테이션으로 각각 받은 후, 반환할 때는, 서로 다른 두개의 정보를 한번에 반환해야하나요..? 정확한 예시를 알고싶습니다..
안녕하세요 제로초님 react + spring boot로 팀프로젝트 진행중입니다. 이렇게 cors문제가 나오고 있습니다! 프론트에서 제가 프록시를 이용하지는 않고 있고 제 로컬에서 배포된 서버주소로 요청을 하면 이런식으로 오류가 뜨고 있는데, 혹시 어떻게 해야할지 궁금합니다...react에서 axios.defaults.headers["Access-Control-Allow-Origin"] = "*"; axios.defaults.withCredentials = true; 등 해봤는데 오류는 계속 같습니다. backend에서 cors문제가 정확히 안되어있는 것인지 궁금합니다..!!
다음은 책 148 페이지에 시스템 콜에 대한 설명입니다 시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램 이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 씁니다 유저 프로그램이 I/O 요청으로 트랩을 발동하면 올바른 I/O 요청인지 확인한 후 유저 모드가 시스템콜을 통해 커널 모드로 변환 되어 실행됩니다 다음은 책 149 페이지에 modebit에 대한 설명입니다 modebit의 0은 커널 모드, 1은 유저 모드라고 설정되며, 유저 모드일 경우에는 시스템콜을 못하게 막아서 한정된 일만 가능하게 합니다 두번째 지문에서 유저 모드일 경우 시스템콜을 못하게 막는다 고 했는데 첫번째 지문에서는 유저 프로그램이 시스템콜을 요청한다 고 써있내요 유저 프로그램이 실행되고 있는 모드를 커널 모드로 바꾸고 난뒤 시스템콜을 요청해야 된다는 건가요?? 만약 그렇다면 이 모드는 누가 바꿔주는 거에요??