[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
안녕하세요. start.js에서 변수를 선언하실 때 어떤 변수 ex) const main = document . querySelector ( "#main" ); const qna = document . querySelector ( "#qna" ); 는 start.js 제일 위로 뽑아서 선언을 해주시는데 어떤 변수 ex1) answer . addEventListener ( "click" , function (){ var children = document . querySelectorAll ( '.answerList' ); for ( let i = 0 ; i < children . length ; i ++){ children [ i ]. disabled = true ; children [ i ]. style . display = 'none' ; } goNext (++ qIdx ); }, false ) } 혹은 ex2) function goNext ( qIdx ) { var q = document . querySelector ( '.qBox' ); q . innerHTML = qnaList [ qIdx ]. q ; for ( let i in qnaList [ qIdx ]. a ){ addAnswer ( qnaList [ qIdx ]. a [ i ]. answer , qIdx ); } } goNext함수의 q 혹은 children 같은 변수들은 함수 안에 넣어주시는 것을 봤습니다. 혹시 변수를 선언할 때 규칙(?) 같은 것들이 있는지 알려주시면 감사하겠습니다.
안녕하세요 제로초님! 오늘도 유익한 강의로 공부 잘 하고 있습니다. 제가 헷갈리는 것이 있는데, <LikeButton /> 태그는 <LikeButton></LikeButton> 과 같은 것 맞나요? 태그를 쓰는 해당 방식은 처음 봐서요! jsx 문법 중 하나인지 궁금합니다. 또한 저런 식으로 한다면 <div></div> 또한 <div / >로 대체 가능할까요?? 답변 꼭 부탁드립니다. 감사합니다.
vue/cli 가 아닌 vue create vue-todo로 만들었고 이전 수강자들의 질문에 대한 답변을 확인하고 프로젝트의 루트 레벨에 vue.config.js를 만들고 그 안에 module . exports = { devServer: { overlay: false } } 를 넣었음에도 불구하고 아래와 같은 에러 메세지가 나옵니다 26:40 error 'index' is defined but never used no-unused-vars 해결책 알 수 있을까요? 코드는 그대로 따라쳤습니다
bool TryPop(T& value) { ++_popCount; Node* oldHead = _head; while (oldHead && _head.compare_exchange_weak(oldHead, oldHead->next) == false) { } if (oldHead == nullptr) { --_popCount; return false; } value = oldHead->data; TryDelete(oldHead); return true; } void TryDelete(Node* oldHead) { // 나 외에 누가 있는가? if (_popCount == 1) { // 나 혼자네? // 내 데이터는 삭제 delete oldHead; } else { } } _popCount == 1일 때 추가로 확인을 하지 않아도 delete oldHead를 해도 된다고 설명해주셨는데요. 코드가 TryDelete 함수 호출까지 진행됐으면 CAS를 빠져나오면서 _head = oldHead->next로 _head 값을 바꿔놓게 되고, TryPop에 새로 진입하는 thread는 현재 thread의 oldHead가 참조하고 있는 주소값을 참조할 수 없게 된다. 이렇게 이해하면 될까요?
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
안녕하세요 강사님 강의 잘 듣고있습니다. 질문이 있는데요. chapter3의 Multiprocessing vs Threading vs AsyncIO 강의에서 정리해주신 내용을 보면 AsyncIO는 Slow I/O Bound라고 하셨는데, 이게 Multithreading에서 적용이 되면 Fast I/O Bound도 될 수 있는 거라고 이해해도 될까요?? AsyncIO 는 single thread이고 Slow I/O Bound라고 정리해 주셔서 혼동되어 질문드립니다. AsyncIO는 쉽게 얘기해서 callback이라고만 생각해도 되는거 아닌지요? 감사합니다.
fetch 함수 사용 시 type 에러가 발생합니다. 구글에서 저 함수를 사용했을 때 한국에서는 잘 작동했는데 호주 인터넷 환경에서는 잘 작동하지 않았습니다. 저 URL 이외에도 www.을 붙여 보거나 http://를 쓰기도 했고 주어진 링크인https://jsonplaceholder.typicode.com/todos/1로 했을 때도 같은 에러가 발생했습니다.
download 2-8-2 코드 작성할 때 인프런의 추천강좌의 글 + 그림을 저장하는 코드입니다. for i, e in enumerate(img_list, 1): with open(savePath+"text_"+str(i)+".txt","wt") as f: # 저장할 경로에 "text_순번.txt"의 이름으로 텍스트를 저장한다. 텍스트 쓰기 모드 (wt) f.write(e.select_one("div.card-content > div.course_title").string) fullFileName = os.path.join(savePath, savePath+str(i)+'.png') imgUrl = e.select_one("div.card-image > figure > img")['src'] base = rep.urljoin(imgUrl, "../../../../../") parseUrl = rep.urlparse(imgUrl).path path = rep.quote(parseUrl) fullURL = rep.urljoin(base, path) request_url = req.Request(fullURL, None, headers) response_url = req.urlopen(request_url) f = open(fullFileName, 'wb') f.write(response_url.read()) f.close() #req.urlretrieve(fullURL, fullFileName) 이 코드를 실행할 때 그림을 불러올 때 일부의 그림 주소가 한글로 인코딩 되어 있어서 그냥 단순히 그림의 주소로 urlretrieve를 실행하면 UnicodeEncodeError: 'ascii' codec can't encode characters in position 70-75: ordinal not in range(128) 가 발생합니다. 때문에 한글 인코딩을 바꿔주고자 이미지 주소의 path 부분을 추출해서 path 부분만 인코딩해주고 url을 합쳐주고 retrieve를 실행하면 403 forbidden 에러가 뜹니다. 여기에 헤더를 추가하는 방법을 구글링해서 찾아봐서 저렇게 추가했지만 403 forbidden이 사라지지 않습니다. 문제가 되는 사진의 주소입니다. https://cdn.inflearn.com/public/courses/324995/course_cover/efab1490-0082-446a-b173-52108106bfc1/%EC%9D%B8%ED%94%84%EB%9F%B0-%EA%B5%90%EC%9E%AC%ED%8C%90%EB%A7%A4-%EB%8C%80%EB%AC%B8.jpg https://cdn.inflearn.com/public/courses/324995/course_cover/efab1490-0082-446a-b173-52108106bfc1/%25EC%259D%25B8%25ED%2594%2584%25EB%259F%25B0-%25EA%25B5%2590%25EC%259E%25AC%25ED%258C%2590%25EB%25A7%25A4-%25EB%258C%2580%25EB%25AC%25B8.jpg 위로 접속하면 정상 접속이 됩니다. 아래로 접속하면 (인코딩 후) 엑세스가 거부됩니다. 어떻게 해결할 수 있을까요?
인텔리제이에선 아무런 에러도 없고, 잘 구동되는데, localhost:8080 들어가면, 페이지를 찾을 수 없다고 떠요. 크롬, 사파리, 익스플로어 모두 안되고, 윈도, 맥북 모두 안되요. 집에 인터넷 문제인가 해서 회사에서 했는데도 똑같아요. 인텔리제이에서 뭔가 설정해야 하는 것인가요? 4일째 이것만 해보고 있는데 너무 답답해서 글남깁니다ㅠ https 강제 리다이렉트 되는거라는 글도 있어서 인증서 깔아서 연결하려고 mkcert 설치해서 크롬설정창 인증서 부분에 불러오는 것까지 다 했는데도 안되요ㅠ 포트번호도 바꿔보고, 경로도 이래저래 다 써보고 진짜 할 수 있는건 다 해본듯해요 다들 되는데 저만 안되는거 보면 엄청 기초적인게 빠진거 같은데..알 수가 없네요 이클립스 깔려있어서 그럴까요?ㅠ 뭘까요 진짜
9강에서 router 부분 강의를 듣던 중에 궁금한게 생겨서 질문 드립니다. Hooks로 router 사용시 react를 여러곳에서 import하는 문제 때문에 에러가 발생해서 클래스 컴포넌트를 불러오는 식으로 진행하셨는데 Hooks로 사용하는 방법은 아예 없는건지 궁금합니다.
잘 이해하지 못하였지만 부모 클래스를 상속 받아서 사용하면 굳이 인터페이스 클래스가 필요 없을거라 생각이 드는데 인터페이스의 실무에서 메리트는 무엇인가요? 인터페이스 클래스를 은닉 후 메인클래스에서 원하는 인터페이스의 펑션만 호출 할 수 있는것인가요? 코딩 고수님들 혹시 지나가시다가 이 걸 보게 된다면 쉽게 설명해 주실 수 있나요 ㅠ
안녕하세요. 이도원 선생님 강의 항상 잘 듣고 있습니다. 강의와 연관되어 MapStruct 와 Entity Setter 에 대해 문의드립니다. ------------------------------------------------ 제가 이해한 내용은 두가지 입니다, 1. Entity 에 Setter 는 지양해야한다. 2. MapStruct 는 구현체 자동생성에서 Field mapping에 target의 setter 를 사용한다. ------------------------------------------------ 여기에서 제가 질문드리고 싶은 내용은 한가지입니다. 1. 함수의 사용권한을 특정 클래스객체에 제한할 수 있는가? ( Entity Setter 의 사용권한을 Mapper 에게만 줄 수 있는가? ) ------------------------------------------------ 구현체를 직접 수정하기에는 번거롭고, 필수필드만 setter를 생성하기엔 선택필드가 들어갈 상황을 배제하기에 오류가 예상됩니다. 결국 MapStruct 를 사용할때는 setter를 생성해 두어야 할꺼 같아서 질문드립니다. 감사합니다.
서비스역할의 구현체들은 서비스에 있는 기능을 사용하기 위해 OrderServiceImpl 경우에는 MemoryMemberRepository, FixDiscountPolicy 를 private final 을 붙여서 사용하는데 private는 해당 클래스 밖에서 직접 접근을 하지 못하게 하는것! final은 한번 값을 넣어주면 절대 바뀌지 않는것! 제가 이해 한 것을 토대로 왜 굳이 private final을 붙였나 OrderAPP를 찾아보았습니다. MemberService memberService = new MemberServiceImpl(); OrderService orderService = new OrderServiceImpl(); 두 객체를 생성할 때 두 객체 전부 MemoryMemberRepository를 참조하는 MemberRepository를 생성하기에 겹치는 부분이 생길 가능성이있기때문인가요,,? 어짜피 store는 static 변수이기때문에 객체가 얼마든지 생성된다고 해도 공유하고 있기에 문제가 일어날 것 같지는 않습니다. 뭔가 왜 private final인지 포인트를 잡지못하고 있는거 같아요ㅠ
next.js에 swr, typescript를 이용해 노드버드 실습을 해보다가 서버사이드 렌더링에 대해 궁금한 게 생겼습니다. 사용자가 만약 로그인을 한 상태일 때, 서버사이드 렌더링을 해서 컴포넌트에 사용자 정보를 넣어준 상태로 페이지가 보여지도록 하고 싶은데요. 강의에서는 pages/index.js에서 리덕스를 이용하여 LOAD_MY_REQUEST 액션을 dispatch 한 뒤, components/AppLayout.js 에서 useSelector로 me 값을 가져 오면 사용자 정보가 담겨진 채로 AppLayout.js 컴포넌트가 랜더링 됩니다. swr을 적용해서 동일하게 구현해보려고 하는데요. swr에서는 page/index.js에서 서버사이드에서 로그인한 사용자 정보롤 가지고 오더라도, components/AppLayout.js에서 useSWR을 사용하면 처음 [로그아웃] 상태일 때의 화면이 잠깐 나오고, [로그인]상태일 때의 모습으로 변합니다. 혹시 swr을 이용해서 pages/index.js에서 서버사이드 렌더링으로 가지고 왔던 값을 components/AppLayout.js에도 페이지 렌더링 초기에 값을 함께 전달해주는 방법은 없을까요? 제가swr을 이용해 아래처럼 적용해봤는데, 다른 방법이 있을까요? pages/index.tsx export const getServerSideProps : GetServerSideProps = async function ({ req }) { const cookie : string = req ? req . headers . cookie : '' ; if ( cookie ) { const data = await fetcher . get ( '/user' , { cookie }); if ( data ) { return { props : { userProps : data }, }; } } return { props : { userProps : null }, }; }; function Index ({ userProps }: InferGetServerSidePropsType < typeof getServerSideProps >) { const { data : user } = useSWR < IUser >( '/user' , fetcher . get , { initialData : userProps }); return < AppLayout > { user ? user . nickname : '로그인해주세요' } </ AppLayout > ; } components/AppLayout.tsx function AppLayout () { const { data : user } = useSWR < IUser >( '/user' , fetcher . get ); return ( < div css = { userNavStyle } > { user ? ( <> < Profile image = { user . profile } size = '40px' /> </> ) : ( < Link href = '/login' > < a href = '' className = 'login' > 로그인 </ a > </ Link > ) } </ div > ); }