본문 바로가기

공부 정리/웹(Web)39

task scheduler로 자동 git push 하기 깃 자동화 한 이유 1일 1커밋할 때 어쩔 수 없이 커밋 할 수 없는 날이 있습니다. 이런날 유용하게 사용할 수 있습니다. 저는 windows를 기준으로 설명하겠습니다. 0. 시작 => 작업 스케쥴러 => 작업 만들기 1. 이름 마음대로 작성하시고 2. 트리거 탭으로가서 원하는 시간을 설정합니다. 3. 그 다음 동작탭으로가서 스크립트 파일을 등록합니다. 4. 저는 다음과 같은 스크립트 파일을 하나 만들었습니다. (commit.sh) cd D:/mygithub/programmers git add . git commit -m"test" git push origin master 5. 그러면 원하는 시간에 스크립트 동작하여 git push가 됩니다 ! 2023. 3. 7.
HTTPS 적용기 (...SSL/TLS) 공부 동기 요즘 어디 웹 사이트를 가나 HTTPS를 적용하지 않은 웹을 보기가 힘들어, 저도 HTTPS를 프로젝트에 적용하면서 좀 더 공부해보았습니다. HTTPS는 HTTP프로토콜과 SSL/TLS의 조합입니다. HTTPS 탄생 배경 인터넷상에서 데이터를 전송하는 방식 중에서 가장 일반적인 방법은 HTTP방식입니다. HTTP방식을 이용해 클라이언트와 서버간의 통신이 이루어지게 되는데, HTTP는 통신에서 데이터를 암호화하지 않기 때문에 제 3자에게 데이터가 노출될 가능성이 있습니다. ex)스니핑, Sniffing 이러한 위험성으로부터 데이터를 보호하기 위해서 HTTPS가 탄생하였습니다. TLS vs SSL HTTPS의 핵심기술인 TLS와 SSL은 모두 데이터 보안을 제공하기 위한 프로토콜입니다. SSL은 .. 2023. 2. 27.
js challenge day 20 Speech Detection Code 배운 점 & 느낀 점 speech api를 이용해 말하는걸 text로 남길 수 있는 과제였습니다. appendchild를 이용해 글자를 붙여주는 방식을 이용합니다. firefox에서는 지원이 안되기 때문에 크롬을 이용해야 합니다. 2023. 2. 20.
Js Array.from은 Shallow-copy인가? 글작성 동기 MDN에 보면, Array.from은 shallow-copied라고 나와있는데, 해당 사진에서보면, false가 나오고, deep copy처럼 동작합니다. shallow copy vs deep copy 같은 메모리를 참조하면 shallow copy, 모든 값을 복사해서 다른 메모리를 참조하면 deep copy인줄 알았으나 한가지 예외가 있었습니다. 첫 한단계만 복사하고 나머지 메모리 주소가 같은 경우도 shallow copy라고 칭하였습니다. 따라서 다음 처럼 작동하는 것을 볼 수 있었습니다. 결론 Array.from은 shallow copy가 맞다 ! 참고 https://velog.io/@lemuel0525/shallow-copy-deep-copy [JS] shallow copy / dee.. 2023. 1. 20.
[typescript] type Vs interface 타입을 지정할 때 사용할 수 있는 방법은 2가지가 있습니다. type과 interface //interface 방법 interface Point{ x:number; y:number; } //type 방법 type Point = { x:number; y:number; } 공식문서의 조언 대부분의 경우 interface와 type을 사용할 수 있습니다만, 잘모르겠다면 interface를 먼저 사용하고 이후 문제가 발생하면 type을 사용하길 권장합니다. 1. 주요한 차이점은 확장하는 방법과 새 필드를 추가하는 법입니다. 확장하는 방법 //interface interface Animal{ name:string } interface Dog extends Animal{ leg:number } //type type.. 2023. 1. 4.
useMemo, useCallback useMemo 값을 캐싱하기 위해 사용합니다. useCallback 함수를 캐싱하기 위해 사용합니다. const Item = ({ item, onClick }) => {item.name}; const Component = ({ data }) => { const value = useMemo(() => (복잡한연산 retrun true or false), [someStateValue]); const onClick = useCallback(() => { console.log(value); }, [value]); return ( {data.map((d) => ( ))} ); }; 해당 코드처럼 복잡한 연산을 다시 하지 않기 위해 결괏값을 저장해놨다가 의존하는 값이 변경될 때에만 재연산하는 것이 useMemo. .. 2023. 1. 2.
반응형