질문 남겨주셔서 감사합니다. 막히면 언제든 무엇이든 자주 질문 던져주세요. 수학/과학이나 알고리즘과는 달리 업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다. 다시 말씀드리지만, 질문을 자주자주 남겨주세요. 저도 최대한 빠르게 회신 드리겠습니다. 당부드릴 두 가지가 있습니다. ① 가급적 구체적으로 설명해주세요. ② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ ==================================== 안녕하세요 일코님~ 블럭처리를 한 상태에서 실행하면 그 블럭의 텍스트를 반환해주는 함수를 쓰고있는데요. def extract_text_from_block(): hwp.InitScan(range=0xff) # 0xff <<선택된 범위 내에서 검색 _, text_blokced = hwp.GetText() # 텍스트만 추출 hwp.ReleaseScan() # 스캔을 해제. return text_blokced # 이경우, 해당 target이 text에 포함되어있으면 True, 아니면 False를 반환. 어떻게 하다보니깐 만들어서 쓰고있는데.. 문제는 이게 para 1개를 넘어가면 \r\n을 반환하고 아무것도 반환하지 않네요.. 단락 하나를 넘어가지 않게 블럭설정하면 잘 작동하는데요. 여러줄에는 먹히지가 않네요.. (1) 일단 블록설정한 text를 변수에 할당할 때 이런식으로 함수를 쓰는게 효율적인 방법인지? (2) 만약 괜찮은 방법이라면, 여러줄을 블록설정한뒤에 변수에 할당하려면 어떻게 해야하는지? 이렇게 두가지가 궁금합니다! 감사합니다!!
cnt =[0]*(n+m+3)로 리스트를 선언하셨는데, 저는 문제 풀때 cnf = list()로 선언했는데 Traceback (most recent call last): File "C:\Users\User\Desktop\파이썬 TEST\ AA.py ", line 38, in <module> cnt[i+j] += 1 IndexError: list index out of range 오류가 나더라고요 해당 선언을 하면 왜 오류가 나는것인가요..? 이렇게 해도 문제는 풀려야하지 않나요..? 의문점이 남아서 질문올립니다
안녕하세요 ! 섹션 8 듣는 중에 질문 드립니다. 제가 Class의 개념이 조금 부족한 것 같아서 이해를 잘 못했을 수 있습니다. Class Method는 instance의 상태를 변화시킨다고 말씀주셨는데, instance가 여러 개인 경우, 특정 instance만 변경하고 싶을 때는 해당 instance를 지정해주면 되는 걸까요 ? Class Method는 주로 어떨 때 사용하나요 ? Class 내에서 이미 선언된 instance 값을 변경시킬 일이 어떤게 있나 궁금합니다.
안녕하세요 강사님 강의 잘 보고 있습니다. spark 관련된 질문을 드려도 될까요..? 도커에 spark 컨테이너를 띄워서 airflow의 bash operator로 spark-submit을 해보려 하는데 로그가 다음과 같이 나오면서 spark-submit이 안됩니다. compose 파일도 network 설정을 다시했고, docker network inspect 로 확인해보니 잘 연결된 것이 확인됐습니다. spark submit도 master container 내부에서 잘 실행이되는 상황입니다. shell 파일을 이런식으로 작성한다고 해서 airflow dags로 spark-submit을 할 수 있는건 아닌가요 ? #!/bin/bash script=$1 echo "${script}" echo "start spark submit with bash operator" spark-submit \ --master spark://spark-master:7077 \ ${script}
백엔드 취준생인데 프론트를 좀 할 일이 있어서 강의 듣고 있는데 Next-Auth 부분이 이해가 쉽지 않네요... 몇 가지 질문 드리고자 합니다. 1. session 객체에 어떤게 담기는건지 잘 모르겠습니다. export default async function Home() { const session = await auth() if (session?.user) { redirect('/home') return null } return ( <Main/> ); } export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ // 개발자가 직접 만든 화면에서 로그인 하도록 진행 pages: { signIn: '/i/flow/login', // 로그인 newUser: '/i/flow/signup' // 회원가입 }, providers: [ CredentialsProvider({ async authorize(credentials) { const authResponse = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/login`, { method: 'POST', headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.usename, password: credentials.password, }) }) if (!authResponse.ok) { return null } const user = await authResponse.json() return { email: user.id, name: user.nickname, image: user.image, ...user } } }) ], }) Home 에서 auth() 를 통해 불러온 session 객체에 CredentialsProvider 가 리턴한 객체가 담기는건가요? 그런데 그렇다고 하기엔 객체에 user 라는 속성이 없어서 아닌 것 같기도 해서 아닌 거 같다는 생각도 듭니다. export default function Login() { const router = useRouter() const { data: session } = useSession(); if (session?.user) { router.replace('/home') return null } router.replace("/i/flow/login") return ( <Main /> ) } 마찬가지로 여기서도 session 에 어떤게 담기는지 잘 모르겠습니다 ㅠㅠ auth() 로 리턴한 세션과 같은 객체가 담기는 것 같긴 한데 도대체 session 에 뭐가 담기는지 파악이 쉽지 않네요 ㅋㅋㅋ 그래서 session 객체의 user 를 클릭해서 들어가보니 다음과 같은 interface 가 나오네요. export interface DefaultSession { user?: User expires: ISODateString } auth/core 에 있는 인터페이스인 것 같은데 이 인터페이스가 어느 시점에 등장(?) 하는 건지 잘 모르겠습니다. 2. 지금 진행하는 로그인 방식은 백엔드에 로그인 관련 API 가 있다고 가정하고 진행하는 것으로 저는 이해를 했는데요 export const handlers = [ http.post(`${baseUrl}/api/login`, () => { console.log('로그인'); return HttpResponse.json(User[1], { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }) }), http.post(`${baseUrl}/api/logout`, () => { console.log('로그아웃'); return new HttpResponse(null, { headers: { 'Set-Cookie': 'connect.sid=;HttpOnly;Path=/;Max-Age=0' } }) }), http.post(`${baseUrl}/api/users`, async ({ request }) => { console.log('회원가입'); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403 // }) return HttpResponse.text(JSON.stringify('ok'), { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }); }) ]; 이게 지금 api 를 mocking 한 건데 여기에 요청을 보내고 있으니까요. 그러면 이 API 에서 리턴한 유저(User[1]) 가 세션에 담기는 것인지 궁금하네요. (이것도 1번 질문하고 좀 연관이 되네요) 그러면 만약에 백엔드 API 가 로그인 성공했을 때 http body 에 별도의 객체를 리턴하지 않으면 어떻게 되나? 이런 궁금증도 생깁니다. 3. 그리고 로그아웃을 할 때는 왜 로그아웃 API 에 따로 요청을 보내지 않고 signOut 함수만 사용하는지 궁금합니다. 이것만 사용해도 쿠키가 삭제가 돼서 그런 것인가요? 그러면 백엔드 서버에 별도의 로그아웃 API 를 만들지 않아도 되는 것인지 궁금합니다. 장문의 질문글이 된 거 같은데, 뭔가 Next-Auth 를 처음 접하다보니 사용법이 좀 익숙치가 않네요. AI 에 물어보거나 구글링을 해 봐도 좀 파악이 쉽지 않아 여기에 질문 남겨봅니다. 감사합니다.
검사를 눌러 개발자도구로 가면 label이 선택되어... .input-checkbox > label 로 잘가져오며 잘 테스트가 됩니다. 따라하다 보니 궁금한점이 있습니다. checkbox에 클릭을 하는게 목적인데 저는 이렇게 한번 시도해 봤습니다. checkboxes = driver.find_elements(By.CSS_SELECTOR, "input[type='checkbox']") # 각 체크박스 클릭 for checkbox in checkboxes: if not checkbox.is _selected(): checkbox.click () time.sleep(0.5) # 잠시 대기 왜 label.click()만 되는지 궁금합니다
선생님 안녕하세요. 우선 오늘 최종 합격하여 소식을 전하게 되었습니다. 다만, 다름이 아니라 점수가 좀 턱걸이인지라.. 담주에 예정된 최종 결과에서 합격예정이 불합격으로 바뀌는 사례가 있는지 궁금합니다. 제가 알기로는 불합격 사례에서 합격 한 사례는 있는 것으로 아는데 반대 사례가 있는지요?? 우선 정말 감사드립니다. 큰 도움이 되었습니다.
금일 빅분기 실기 가체점 결과가 올라와서 확인했는데... 합격했습니다. 1교시가 너무 어렵게 나와서 힘들었었는데... 강사님이 시험전에 2교시->3교시->1교시 순으로 준비를 하라는 글을 보고 많이 도움이 됐습니다. 덕분에 2차시험 2번째에 합격해서 감사드립니다. 회사일 때문에 강사님이 올려주신강의와 모의고사 풀이를 4번이상 반복해서 풀어본거, 마이드 맵을 기반으로 리마인드 해본 것이 많이 도움 됐습니다. 감사합니다.~~
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요~! 잔재미코딩님을 열심히 믿고 따라가고 있는 수강생입니다. 다름이 아니라 함수 사용에서 print와 return의 차이점이 잘 이해가 되지 않아서요. def cal(a, b, c): if c == '+' : return a + b elif c == '*' : return a * b else : return 0 예를 들면 위 함수 코드를 실행하고 data = cal(2, 3, "*") print(data) 를 실행하면 바로 6이 나오지만 위의 코드에서 return대신 print()를 사용하면 data = cal(2, 3, "*") print(data) 를 실행 시 6 None 이 나온다는 차이점은 느꼈습니다. 근데 왜 이런것인지 잘 이해가 안돼요 ㅠㅠ 정확한 둘의 사용상 차이점이 무엇인가요?
지금 강의에서 보여주신게 아직 업데이트가 안 된 것인지 궁금합니다! Auth.js 홈페이지에 있는 문서와 코드가 조금 다른 것 같아서요. next.js 15 버전으로 강의 따라가고 있고 auth.js 설치할 때 auth@5 하니까 설치가 안 돼서 auth@beta 이렇게 설치하고 진행 중 입니다! 제가 본 페이지는 다음과 같습니다. https://authjs.dev/getting-started/authentication/credentials 추가 일단 제로초님이 하신 방법으로 CredentialsProvider 직접 import 하니까 되는 것 같습니다!
안녕하세요. 선생님의 강의로 머신러닝 및 딥러닝에 관심을 갖게 되었습니다. 다름이 아니고, CIFAR100 dataset에 대해서 VGGNet이라는 모델을 이용해 훈련을 시켜보고 있는데, 제가 궁금한 것은 Softmax의 Input의 정밀도를 어디까지 유지하면 모델이 잘 학습될 수 있을까?입니다. 아래의 코드는 training부분입니다. 첫 번째 사진처럼 모델을 훈련시키는데, model(images)를 통해 나온 실제 output을 이용하면 모델이 잘 학습이 되는데 (마지막 epoch의 validation accuracy 55, Top-5 Test Accuracy 80%정도), 이 output을 rounding을 하면 소숫점 아래 20째자리까지 반올림을 해서 높은 정밀도를 유지해도 모델 학습이 아예 되지 않는 (모든 epoch가 끝나도 Validation Accuracy가 1%남짓) 문제가 발생합니다. 이러한 문제가 왜 발생하는지, 어떻게 하면 해결할 수 있을지 또 제가 궁금한 Softmax layer에서 요구하는 최소 Input 정밀도에 대해 다른 방법으로 측정할 수 있을지 궁금합니다 ㅠㅠ 감사합니다
질문 남겨주셔서 감사합니다. 막히면 언제든 무엇이든 자주 질문 던져주세요. 수학/과학이나 알고리즘과는 달리 업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다. 다시 말씀드리지만, 질문을 자주자주 남겨주세요. 저도 최대한 빠르게 회신 드리겠습니다. 당부드릴 두 가지가 있습니다. ① 가급적 구체적으로 설명해주세요. ② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ ==================================== 안녕하세요 일코님 메일드렸는데 많이 바쁘신듯 하네요~ ㅠ.ㅠ 열심히 구현하고 있는데, (1) 블록 설정된 내에서 표가 몇개 있는지 확인 하는것 (2) 표의 갯수를 확인하고 차례로 그 표를 찾아서 진입하는 방법 을 잘 모르겠습니다. (3) 이전에 블록 내에서 텍스트를 검색하는 방법을 알려주셨었는데, 그것을 잘 활용하고 있는데요. def 블록내_텍스트_포함_여부(text): try: hwp.InitScan(Range=0xff) # 0xff <<선택된 범위 내에서 검색 except: hwp.InitScan(range=0xff) _, range_text = hwp.GetText() # 텍스트만 추출 hwp.ReleaseScan() # releaseScan이란 함수는 스캔을 해제. hwp.HAction.Run("MoveParaEnd") return f"{text}" in range_text # 이경우, 해당 target이 text에 포함되어있으면 True, 아니면 False를 반환. python 터미널에서 행별로 코드를 실행할 때, Range=0xff 를 했을때 올바른 파라미터가 아니라고 오류가 뜰때가 많더라구요 근데 또 이걸 py파일을 실행해서 했을떄는 되는거 같구요. 그래서 그냥 try except 구문을 쓰고있는데, 제가 뭔가를 잘못사용하고 있는 걸까요? 감사합니다.
(강의 색션 7_8 - 14:30) 안녕하세요 선생님. 좋은 강의 만들어 공유해 주셔서 진심으로 감사드립니다. Pydantic 모델 초기화 과정에서 아래의 코드처럼 Optional 이 설정하지 않으면 Swagger UI 에서 입력 값이 null 이여서 엔티티 타입 불일치로 422 에러가 발생합니다. 또한, parse_user_form에서 Optional 체크를 하고 Item에서는 별도로 설정하지 않으면 같은 에러가 발생하더군요. Q) FormData 부분은 Optional 체크를 하지 않아도 되고, pydantic model에서는 반드시 Optional 체크를 해야지만 문제 없이 정상 동작하는 이유에 대한 보충 설명 부탁드려도 될까요? 주석한 부분이 기존 코드입니다. 주석한 부분으로 코드를 변경하면 에러가 발생합니다. class Item(BaseModel): name: str = Field(..., min_length=2, max_length=50) # description: str = Field(None, max_length=500) description: Optional[str] = Field(None, max_length=500) price: float = Field(..., ge=0) # tax: float = None tax: Optional[float] = None @model_validator(mode='after') def tax_must_be_less_than_price(cls, values): price = values.price tax = values.tax # if tax > price: # tax가 NoneType이라 에러가 남. if tax is not None and tax > price: raise ValueError("Tax must be less then price") return values 감사합니다.
로그인 방식을 구현하면서, 쿠키로만 개발할 경우 완전히 백엔드에 의존하게 되어 로컬로, 동시에 키고 개발을 하지 않는이상, 도메인간 불일치를 해결 할 방법이 없어, msw를 사용해야 한다고, 이전에 말씀해주셨습니다!! 보통, 회사나, 개인 소프트웨어를 만들 때 어떤 방식으로 로그인을 주로 만드시는지 조금 알고 싶어 궁금하여 질문을 남깁니다!! 로그인 방식 고찰 로그인 성공시, accessToken을 body로 받고, refreshToken은, httpOnly 쿠키로 받는 경우 (서버에서, DB or Redis를 통해 refreshToken 관리) → 인증 필요 요청 (Bearer accessToken), 리프레시 필요 요청 (refreshToken 심긴 쿠키를 바탕으로 요청) - DB에서 관리하는 것 보다, redis를 통해 관리했을 떄 읽기 속도가 빠름을 확인! 응답: accessToken과 refreshToken 모두 body로 클라이언트에게 전달. 인증 필요 요청과, 리프레시 토큰 재발급 요청 모두 헤더의 Bearer에 accessToken이나, refreshToken을 넣어서 전달.) 현재 방식: accessToken, refreshToken 모두 쿠키로 응답받고, 요청또한, 쿠키를 포함하여 전달. 제로초님은, Next.js를 활용하여, 웹 사이트를 만드실 떄, 어떠한 방식으로 로그인을 구현하시는지 궁금하고, 많은 회사에서 사용하는 방식은 보통 어떤 방식인지도 알고싶습니다!
먼저 next와 react의 버전은 각각 15버전과 19버전입니다 next 15 부터는 http.ts 의 코드가 간결하게 바뀌어서 적용해보던 중 세팅 단계에서 해당 오류가 발생하였습니다 TypeError: Cannot read properties of undefined (reading 'url' 구글에 검색해보니 최신버전에서도 발생하는 것 같습니다 ㅠㅠ