안녕하세요. 강의 정말 잘 듣고 있습니다. 처음에는 단순 게임 서버를 구현하는 강의라고 생각했는데, 이론으로만 보던 CS, 네트워크 지식을 직접 구현해보면서 하니 기본기 다지는데 정말 도움이 되네요. 그리고 꽤나 자바와 같은 모던 언어를 사용하다보니 깊게 생각하지 않던 부분도 고민할 수 있는 최고의 강의인것 같습니다. 질문으로 돌아가서 비트 마스크를 사용하는 이유가 C# 에서 원자적 연산을 제공하는 Interlocked 클래스 함수의 파라미터 때문인가요? 처음에는 writer, reader를 체크할 수 있는 클래스 변수를 따로 만들면 되지 않을까? 라고 생각했는데 그렇게 되면 if, if 이런 조건문이 계속 들어가서 원자적 연산이 어려워 져서 그런가요?(별도로 락이나 모니터로 잡을 수 있지만 가독성 측면에서도 그렇고, Interlocked가 표준화 되어 있기 때문에 저렇게 사용하나? 추측합니다.) 몇개의 질문을 살펴보니 비트마스크와 Interlocked의 CompareExchange의 조합이 강력하네요. 지금 강의는 언어 레벨에서 지원하는 읽기 쓰기 락 동작 원리를 보여주신 것인데 실제 프로덕션 코드에서 사용하려면 락 타임아웃 같은것도 구현해야하나요? 생각해보면 어떠한 경우에 읽기 락이 많이 쌓이고 해제하지 못한 경우일 때 쓰기락에 대기시간이 길어지니 일정 시간 후 락 해소를 시켜줘야 하나 궁금하네요.
마지막 배포시에 Run echo "***" | docker login -u "***" --password-stdin 2 echo "***" | docker login -u "***" --password-stdin 3 shell: /usr/bin/bash -e {0} 4 Error response from daemon: Get " https://registry-1.docker.io/v2/ ": unauthorized: incorrect username or password 5 Error: Process completed with exit code 1. 에러가 지속적으로 발생합니다. 도커 로그인에 사용되는 유저네임과 비밀번호를 그대로 입력하였음에도 계속해서 발생하는 문제입니다.
header .lnb li a span:after {position: absolute; left:0; bottom:0; content:""; display:block; width: 100%; height: 1px; background: #2d5b79;} header .spot li:after {content:""; position: absolute; left: 0; top: 50%; width: 1px; height: 7px; background: #ccc; transform: translateY(-50%); } 1강에서 40분쯤에 이렇게 강의를 해주셨는데 span:after 에는 display:block;을 주셨고 li:after 에는 display:block; 을 안주셨더라고요 둘 다 똑같이 선을 만드는 css인데요 (차이는 좌우에 만드느냐, 아래에 만드느냐) 이 두개의 차이는 뭔지 설명 좀 부탁드리겠습니다 : ) ㅜㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 앞서 수업했던 코드에서 여기서는 파라미터값이 상품명,가격, 수량만 있고 생성자 강의에서는 이름,나이,성적 외에 파라미터값에 MemberInit member가 들어가있는 차이점이 뭔가요? 같은 기능의 코드인거 같은데 이렇게 형태가 달라지는 이유가 궁금합니다. product 객체생성을 메서드 내에서 해주는 것과, member을 파라미터로 불러오는 것의 차이인가요 ..??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예전에 DHCP를 공부하면서 각 네트워크마다 ISP별로 DNS를 관리하고 있고 Host는 DHCP를 통해 해당 DNS의 IP위치를 알게된다고 이해했습니다. 그럼 GSLB를 하려는 업체는 각 ISP업체마다 DNS에 도메인을 올려달라고 요청을 해야하는건가요? 또한 가비아같은 도메인 업체들은 그런 작업을 대리해주는 역할을 하는 건가요? DNS에 찾아보니 꼭 ISP뿐만 아니라 기업이나 개인 또한 DNS서버를 만들 수 있다는데 그럼 DHCP를 통해 DNS서버의 위치는 설정할 수 없어 다른 사람들은 사용 못하는 것 아닌지 궁금합니다.
강의에서 system architecture를 같이 보여주셔서 이해하기도 쉽고, 그동안 다른 architecture를 보면서 이해 못한 것들도 같이 이해할 수 있는데요. 혹시 사진과 같은 architecture를 그리는 tool을 추천해주실 수 있을까요? 저렇게 색깔도 넣고, aws 관련된 이미지들도 넣고 싶은데 어떤걸 사용하시나요? 해당 사진을 만드는데 사용된 tool 도 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] document.getElementById나 document.getElementsByName을 쓰지 않을까 싶은데.. 혹시 다른게 있나요?
안녕하세요 카프카 컨넥트 공부중 schema-registry, debezium 의 존재에 대해서 알게 되었습니다 connect + schema-registry + debezium plugin 을 이용하면 source db에 실시간적으로 등록되는 데이터를 sink db 에 내가 원하는 포맷에 맞게 동기화 시켜주는 것으로 이해하였는데 맞는건가요? 이때 제가 이해한 바로는 카프카 connector, task를 직접 개발해서 jar 파일을 올리지않고 registry schema 에 avro 를 등록해주면 connector 에서 registry 에 등록된 avro 를 읽고 source db 에서 sink db 로 데이터가 동기화 되는건가요? 제가 생각한 예제 (col1, col2,col3 소스테이블에서 from_col1, from_col2 싱크테이블로 동기화) (source) col1[varchar], col2[int], col3[datetime] (sink) from_col1[varchar], from_col2[int] 만약 이게 아니라면 schema-registry 의 용도가 뭔지 알수 있을까요????
[문제점] PostEditView 에서 post 데이터를 수정한 후, PostDetailView 로 이동했을 때, 수정된 데이터가 아닌 이전 데이터가 출력되는 문제 발생. [테스팅] json-server 를 최신 버전으로 업해서 테스트 >> 개선안됨. 다양하게 코드를 변경하며 테스트를 해봤지만 개선안됨. PostDetailView 에서 ref, reactive 를 변경하며 다양하게 시도했지만 개선 안됨. [원인] updatePost 함수가 수행 후 반환 하더라도 json-server 내부적으로 실제 데이터 갱신에 시간이 걸리는 것이 아닌지 의심됨. udatePost 후, getPostById 로 데이터를 가져와 콘솔에 출력하면, 갱신되기 전의 데이터가 출력되는 것으로 보아 vue cache or refresh 문제는 아닐 것으로 생각됨. [임시해결] const onUpdate = async () => { try { await updatePost(props.id, form); nextTick(async ()=> { const { data } = await getPostById(props.id); console.log('After updatePost, data: ', data); // router.push({ name: 'PostDetail', props: {id: props.id} }); router.back(); }); } catch (error) { console.log('onUdate error: ', error); } }; 다음 Tick 에서 getPostById 함수를 이용하여 갱신된 데이터를 조회(시간 지연 및 데이터 확인)하고 PostDetailView 로 이동하면 제대로 출력됨... a. 위 코드에서 출력되는 데이터는 갱신 전의 데이터가 출력됨. b. 위 코드에서 getPostById 로 데이터 조회를 빼면 PostDetailView 에 갱신 이전 데이터가 출력됨. c. 위 코드에서 router push, go, back 함수 무엇을 쓰던 현상은 동일함. 보다 정확한 문제 원인 또는 문제 해결 방법이 있을까요 ??
안녕하세요, jdk 다운로드가 되지 않는 문제가 발생하여 질문 드립니다. 현재 윈도우 사용 중입니다. 인텔리제이 설치 후 새 프로젝트를 생성하여 Oracle openjdk를 설치하려 했을 때 다음과 같은 오류(2번째 사진)가 발생했습니다. 그래서 https://www.oracle.com/java/technologies/downloads/#jdk21-windows 혹은 https://jdk.java.net/21/ 같은 곳에서 직접 다운로드 받으려고 시도해 보았는데, ERR_CONNECTION_TIMED_OUT 오류가 발생했습니다. 처음에 연결했던 와이파이가 아닌 다른 와이파이(개인 핫스팟)를 이용하거나, 구글이 아닌 다른 브라우저(웨일)를 사용했을 때도 동일한 현상이 발생하였습니다. 어떻게 해결할 수 있을까요?
안녕하세요 강사님! 강의 정말 잘 듣고 있습니다. 혹시 강의 자료가 잘못된 건지 아니면 제가 이해를 잘못한 건지 잘 모르겠어서 질문 올립니다. 강의 자료의 해당 강의 부분을 보면 org.springframework.data .repository.Repository 를 구현한 클래스는 스캔 대상 라고 되어있는데, 제가 이해한 바로는 이 부분이 org.springframework.data .jpa.repository.JpaRepository 를 상속받은 인터페이스 는 스캔 대상 이렇게 수정되어야 할 것 같은데 맞을까요..??
def delete_todo(session: Session, todo: ToDo) -> None: session.execute(delete(ToDo).where(ToDo.id == ToDo.id)) session.commit() Delete 부분 구현을 이렇게 하셨는데 session.delete 말고 session.execute 로 구현하신 이유가 있을까요? sqlalchemy documentation에서도 example에는 이런식으로 되어있는데 # mark two objects to be deleted session.delete(obj1) session.delete(obj2) # commit (or flush) session.commit() 혹시 제가 모르는 인사이트가 있으신가 조심스레 여쭤봅니다
안녕하세요. 혹시 저처럼 안되시는 분 참고하시라고 올립니다. 강의시점과 현시점이 차이가 나서 그런지 강사님 화면대로 하는데 에러가 나서 구글링을 해보니, 추가로 해줘야 한다고 해서 하고 나시 성공했네요. [에러화면] [구글링 참고화면 ] https://stackoverflow.com/questions/73961938/flask-sqlalchemy-db-create-all-raises-runtimeerror-working-outside-of-applicat [수정사항] [성공화면] ** 이후 과정에도 from application import app app.app _context()가.push() 가 계속 필요하네요.
안녕하세요. 여러가지를 해보던 중, boston 주택가격 실습에서 MinMaxSclaer를 적용하지 않고, 한번 그대로 값을 넣어 gradient descent를 수행하니, loss function이 발산해버리는 현상을 발견했습니다. 혹시 이러한 결과가 나온 원인이 무었일까요?? 어쨌든 gradient descent는 값의 범위에 상관 없이 항상 loss function의 값이 작아지는 방향으로 이동하는 것으로 이해했는데, feature들 간의 값의 차이가 있어서 loss function의 값이 발산하는것이 왜 그렇게 되는지 이해가 잘 되지 않아 질문 드립니다.!!
제가 이해한 걸로는 두개의 포인터 변수를 이용하여서 반복문을 하나를 가지고 문제를 푸는거라고 이해를 해서 아래와 같이 하나의 반복문으로 풀려고 노력했는데 해당 알고리즘이 제가 이해한 이론이 맞나요? function solution(arr1, arr2) { let answer = []; let sorArr1 = arr1.sort((a, b) => a - b); let sortArr2 = arr2.sort((a, b) => a - b); let n = sorArr1.length; let m = sortArr2.length; let p1 = (p2 = 0); while (p1 < n) { if (sorArr1[p1] === sortArr2[p2]) { answer.push(sorArr1[p1]); } p2++; if (p2 === m - 1) { p1++; p2 = 0; } } return answer; } console.log(solution([1, 3, 9, 5, 2], [3, 2, 5, 7, 8])); 정답은 잘 나옵니다만... 핵심이 두개의 포인터 변수와 하나의 반복문만 사용한다 라고 기억 할려고 하는데 이게 맞을지...