[Daily Post] 230424
[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)
Daily Study
Web (front-end)
window object 이해하기
window.document.getElementBy()에서 window가 무슨 뜻일까?
- w3school 에서는
window가 브라우저의 창을 의미하는 객체(object)라고 설명하고 있다.- 거의 모든 브라우저에서
window를 브라우저의 창으로 지정하고 있다. - BOM: Browser Obejct Model
- modern browsers들은 기본적으로 BOM을 채택하고, BOM은
window를 통해 브라우저의 객체에 접근한다. - 따라서
window은 BOM의 property에 해당한다고 할 수 있다
- modern browsers들은 기본적으로 BOM을 채택하고, BOM은
- 거의 모든 브라우저에서
- JS의 모든 global object는 window object의 원소가 된다
- global variable, global function도 마찬가지로 window object의 원소가 된다
- 그만큼
window는 광범위하게 사용되며, element 접근 방식이 헷갈린다면window부터 접근하고 시작하면 된다
PS
상황정리
- 오랜만에 파이썬을 하니까 입출력부터 어색하다
- 그래서 ps 한다는 느낌보다는 파이썬 공부한다는 생각으로 이번주는 부지런히 해야 할 것 같다.
입출력
-
- “너의 평점은”
- 과목명/학점/평점을 구분하는 데에 시간을 많이 썼는데,
map(str,input().split())으로 간단하게 해결할 수 있었다 - 파이썬을 많이 써보지 않아서 어렵게 느꼈고, 한동안 많이 풀 때는 익숙해졌었지만 요즘 안 푸니까 또 이렇게 헷갈리는 것 같다
- 과목명/학점/평점을 구분하는 데에 시간을 많이 썼는데,
- “너의 평점은”
Shallow copy vs. Deep copy
-
python documentation
- a shallow copy constructs a new compound object and then inserts references into it
- a deep copy constructs a new compound object and then , recursively, inserts copies into it
- shallow copy를 하게 되면 origin에 대한 reference를 추가하기 때문에 origin을 변경하면 복사된 객체 또한 변경된다
- deep copy를 하게 되면 복사본을 붙여넣게 되는데, 이 때 recursive 하게 붙여넣는다
- 따라서 recursive object가 recursive loop를 생성하게 될 수 있다
- too much memory copy
Error
오늘의 에러 00. jekyll
------------------------------------------------
Jekyll 4.2.0 Please append `--trace` to the `serve` command
for any additional information or backtrace.
------------------------------------------------
/Users/snp/.rbenv/versions/3.0.1/lib/ruby/3.0.0/socket.rb:201:in `bind': Address already in use - bind(2) for 127.0.0.1:4000 (Errno::EADDRINUSE)
- 상황: github blog에 작성한 포스팅을 미리보기 하기 위해서, github blog directory에서
bundle exec jekyll serve를 입력했다 - 결과: 위에 보이는 코드처럼, Address가 이미 사용중이라는 에러를 반환했다. 따라 나온 문구까지 확인해보면
127.0.0.1:4000이 이미 사용중이라는 것을 알 수 있다. - 해결방안 00: already in use라고는 하지만 내가 켜 둔 터미널 중 그 어느 것도 jekyll을 쓰고 있지 않았다. 그래도 혹시 몰라 vsc를 포함 모든 터미널을 종료했고, 다시 실행했다
- 결과: 달라지지 않고,
bundle exec jekyll serve를 입력했을 때 위와 똑같은 결과를 반환했다
- 결과: 달라지지 않고,
- 해결방안 01: 시프 시간에 UI에서 보이는 것과 실제 시스템에서 돌아가고 있는 내용은 다르다는 사실을 배운 만큼, 다음과 같이 터미널에 입력했다
- 01-1: 프로세스 중 jekyll을 돌리고 있는 프로세스가 있는지 확인하기 위해 터미널에
ps -a입력 –> jekyll을 실행중인 프로세스가 있었다! - 01-2: 위에서 확인한 프로세스를 종료하기 위해
kill -9 PID를 입력. 예를 들어 jekyll을 실행중인 프로세스의 pid가 12345였다면,kill -9 12345와 같이 입력. –>"PID"는 영문자가 아닌 사용자의 실행환경에 따라 다르게 나타날 프로세스의 Id를 의미한다 - 결과: 프로세스가 정상적으로 종료됐고, 다시
bundle exec jekyll serve를 터미널에 입력해 실행한 결과 정상적으로 로컬 페이지가 실행됐다
- 01-1: 프로세스 중 jekyll을 돌리고 있는 프로세스가 있는지 확인하기 위해 터미널에
오늘의 에러 01. toc:true
- 사실 에러라기보다는 실수다.
- 1월 이후의 포스트 중에서, md 파일 상단에
toc: true가 누락된 포스트들이 있다. - 오프라인에서 접속할 때 다 수정해야겠다.
지금이라도 찾아서 다행인 것 같다!