배경 회원가입을 할 때, 이메일로 인증한 회원만 회원가입이 진행되도록 하는 구현중에 있습니다. 그래서, 이메일로 인증한 회원에 한해서 MAIL_VERIFIED_MEMBER 세션을 만들어서 반환하고, 회원가입할 때 MAIL_VERIFIED_MEMBER 세션이 있는지 확인하고자 합니다. 그래서, 이메일로 인증한 회원에 MAIL_VERIFIED_MEMBER 세션이 잘 들어가는지 Controller 테스트를 진행하고자 하는데, 어려움을 겪어서 질문드립니다. 이메일로 인증한 회원에 MAIL_VERIFIED_MEMBER 세션을 넣어주는 API이며, 이 api 를 테스트 하고자 합니다. @PostMapping("/email/authenticate") public ApiResponse<Void> authenticateEmail(@RequestBody @Valid EmailAuthenticationRequest request, HttpServletRequest servletRequest) { // 메일 인증한 회원에게 세션을 추가한다 if (mailService.isValidMail(request.toServiceRequest())) { HttpSession session = servletRequest.getSession(); session.setAttribute(MAIL_VERIFIED_MEMBER, true); return ApiResponse.ok(); } return ApiResponse.status(HttpStatus.BAD_REQUEST); } 테스트 코드를 아래 사진처럼 짜보았습니다 . 그러자, Response should contain header 'Set-Cookie' 라는 오류와 함께 테스트가 실패하게 됩니다. Postman 으로 api 를 호출하면 Set-Cookie 헤더에 JSESSIONID 값이 잘 들어 오는 것을 확인하였습니다. 그러나, 테스트로 진행하면 JSESSIONID 도 무작위 값이 아닌 1, 2 로 들어오게 되어 'api 호출 후 세션이 생성되어 쿠키에 들어갔는지' 테스트하는데 어려움을 겪어 질문 드립니다...ㅠㅠ api 호출 후, 응답에 세션과 쿠키가 잘 생성 되었는지를 테스트하려면 어떻게 해야할까요..? andDo(print()) 에서 MockHttpServletRequest 의 Session Attrs 에는 세션 값이 왜 들어가 있을까요.. 해당 api 를 호출하면 세션이 아직 생성이 안되었을 것이라 생각했기 때문입니다.. 해당 테스트를 실행할 때의 andDo(print()) 의 결과는 다음과 같습니다. MockHttpServletRequest: HTTP Method = POST Request URI = /member/email/authenticate Parameters = {} Headers = [Content-Type:"application/json;charset=UTF-8", Content-Length:"48"] Body = {"email":"123@naver.com","authCode":"312nj5acz"} Session Attrs = {verified_member=true} MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Type:"application/json"] Content type = application/json Body = {"code":"0200","status":"OK","message":"OK","data":null} Forwarded URL = null Redirected URL = null Cookies = [] 질문이 길어 죄송합니다.. 그리고, 좋은 테스트 강의를 지식 공유 해주셔서 감사드립니다!!
안녕하세요, “Java 언어 기출문제의 변형” 수업 수강 중 이해가지 않는 부분이 있어 질문 드리게 되었습니다. (4:30~) class A { A() { System.out.print(‘A’); } A(char x) { System.out.print(x); } } class B extends A { B() { super(); System.out.print(‘B’); } B(char x) { this(); System.out.print(x); } } public class Test { public static void main(String[] args) { A s1 = new A(‘X’); A s2 = new B(‘Y’); A s2 = new B(‘Y’); 이 부분을 실행할 때 부모생성자를 먼저 실행한 후 B(char x)를 실행하지 않고 B(char x)를 먼저 실행하는 이유가 궁금합니다. 동일 질문에 파라미터가 있는 것을 이미 실행했다면, 기본 생성자는 실행되지 않는다고 답변 주셨는데, 왜 이 코드에서는 파라미터가 있는 것을 실행하기 전에 부모 생성자를 먼저 실행하지 않는 것인지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
안녕하세요, 정말 좋은 강의 감사드립니다. 현재 스트림릿으로 배포하는 단계를 따라해 보고 있는데요. 배포는 잘되는데 이게 외부에서 접근은 안되는 URL인가요? 배포한 깃헙과 연동된 상태로 url클릭하면 정상 접근되는데, 외부에서는 아래와 같은 화면이 뜹니다. 전세계사람들이 볼 수 있는건 또 다른 프로세스가 필요한가요? [ url클릭 ] [배포 계정 말고 다른 계정으로 sign in 후]
안녕하세요! 코딩테스트 첫 입문을 강사님 강의로 기초부터 잘 준비해보려고 열심히 강의 듣고 있는 코린이입니다 :) List부터 차근히 듣고 있는 중인데.. 아직 생소해서 최대한 코딩을 많이 작성해보면서 익숙해지고 문제풀이하고싶은데 강의에서 문제풀이하면서 코딩을 작성하라고 하셨는데 구체적으로 어떤 툴로 사용해야하고(VS Code? 리트코드?) 어떤 식으로 문제풀이(코딩)를 하고 공부 해야 할지 방향을 모르겠어서 여쭤보고 싶어요ㅠㅠ
안녕하세요. 좋은 강의 잘 듣고 있습니다. 프런트와 Pub/Sub연결하기 강의를 듣고 있는데 아래와 같은 문제가 발생하였습니다. 시간 되실 때 확인해 주시면 감사하겠습니다. 빠른 시작 WebSocket API로 서비스에 연결하고 Pub/Sub 시작 -> 2개 새탭 열고 각 url 입력 후 메세지 상호작용 확인. front 소스 코드 적용 후 아래 이미지와 같이 정상적 연결 성공 뜸. front페이지 새로 고침 이 후 url 입력 한 창에서 메세지 입력하여도 front페이지개발자 도구의 console에서는 변화가 없음. data가 있는 json 메세지를 받아야 하는데 변화가 없네요. 유료강의로 상용화 가능한 azure기반 chatbot강의도 해주시면 감사하겠습니다.
강의 내용대로 진행하여 dag파일 수행 시 아래와 같은 오류가 뜹니다.ㅠ 해결방법 알려주세요!! credential 에러인 듯한데, IMAP설정, 앱 비밀번호 설정, yaml파일 수정은 모두 완료했었습니다.! 6645fe320334 *** Found local files: *** /opt/airflow/logs/dag_id=dags_email_operator/run_id=manual__2024-09-01T09:02:54.442821+00:00/task_id=send_email_task/attempt=1.log [2024-09-01, 09:02:58 UTC] {local_task_job_ runner.py:123 } ▶ Pre task execution logs [2024-09-01, 09:02:59 UTC] {warnings.py:112} WARNING - /home/ **/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-09-01, 09:02:59 UTC] {email.py:272} INFO - Email alerting: attempt 1 [2024-09-01, 09:03:00 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in execute task result = execute callable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in execute callable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 282, in send_mime_email smtp_conn.login(smtp_user, smtp_password) File "/usr/local/lib/python3.12/smtplib.py", line 739, in login (code, resp) = self.auth( ^^^^^^^^^^ File "/usr/local/lib/python3.12/smtplib.py", line 641, in auth response = encode_base64(initial_response.encode('ascii'), eol='') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task instance in failure state [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task start:2024-09-01 09:02:59.026829+00:00 end:2024-09-01 09:03:00.894255+00:00 duration:1.867426 [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task:<Task(EmailOperator): send_email_task> dag:<DAG: dags_email_operator> dagrun:<DagRun dags_email_operator @ 2024-09-01 09:02:54.442821+00:00: manual__2024-09-01T09:02:54.442821+00:00, state:running, queued_at: 2024-09-01 09:02:54.472998+00:00. externally triggered: True> [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Failure caused by 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {taskinstance.py:1225} INFO - Marking task as FAILED. dag_id=dags_email_operator, task_id=send_email_task, run_id=manual__2024-09-01T09:02:54.442821+00:00, execution_date=20240901T090254, start_date=20240901T090259, end_date=20240901T090300 [2024-09-01, 09:03:00 UTC] { taskinstance.py:340 } ▶ Post task execution logs
Python Streamlit을 활용한 대시보드 만들기 (feat. 빅데이터 분석기사 실기 준비)
안녕하세요 선생님 생각했던것보다 훨씬 다양한 컨텐츠를 배우다보니 정말 좋은것 같습니다. 다만 세팅 부분에서... 강의에서 진행된 부분대로 동일하게 따라해보았는데 일부 활성화가 안되는 듯하여 문의 드립니다. [강의명 : Github Actions, Python Script 예제] gcp ssh와 깃헙 레포지토리 연동 관련해서... main.py 파일 변경 실습 진행중인데 캡쳐 상태의 에러와 같이 에러가 뜨고 main.py 파일을 읽었을때도 아무런 내용이 읽히지 않아서 혹시 실습중 잘못한 부분이 있나 문의드립니다. "error: The following untracked working tree files would be overwritten by merge: main.py Please move or remove them before you merge." [강의명 : Miniconda 시스템 환경설정, Windows11 ] miniconda 설치후 Powershell에서 "Get-ExecutionPolicy" Unrestricted 로 변경 후 conda activate / conda activate base 명령후 (base)로 변하지 않아서 그 다음 강의 실습인 VSCODE 내 Powershell에서 conda 가 활성화 되지 않는데 혹시 놓친 부분이 없나 궁금합니다.
안녕하세요! 강사님. 저번에 상세하게 답변해주셔서 너무 감사했습니다! 말씀해주신 인수 테스트에 대해서 알아보고, RestAssured를 사용해서 테스트 적용해보았고, 테스트 무사히 성공 했습니다. 감사합니다! 다만, 적용해보면서 또 여러가지 궁금점이 생겼어요. 질문은 총 5가지 입니다! 1. RestAssured를 사용해서 API 테스트를 할 때 DB까지 테스트 하는 테스트를 보통 통합테스트라고 하는건가요? 그렇다면 E2E 테스트는 실무에서 보통 어떻게 수행하는지 궁금합니다. 2.통합 테스트라고 하면 모듈간의 통합을 검증하기 위함이라고 하던데, 개발 환경에서 실행되는 테스트일까요? 아니면 실제 운영환경과 동일한 환경에서 테스트를 수행해야 되는걸까요? 3. 인수테스트도 통합테스트에 속하는 개념인걸까요? 4. 통합테스트(인수테스트)에서 실패 케이스도 작성해야 하는 걸까요? 5. 다들 RestAssured, MockMvc를 사용해서 인수테스트를 하던데, 그럼 통합테스트는 어떤걸 사용하는지 궁금합니다. (찾아보니 @SpringBootTest가 통합 테스트는 아니라고 해서요!)
Mac OS 로 수강 중이며, 썸네일 등록이 정상적으로 되지 않습니다. python 명령어로 썸네일 파일이 정상적으로 적용되고 id 값을 가져와 실행까지는 되었습니다. 다만, 업로드 되어 있는지 사이트에 가서 확인해보면, 포스팅은 되어 있는데 썸네일 이미지는 빠진채로 등록이 됩니다. 혹시 이유가 있을까요?