본문 바로가기

전체 글138

VSCODE 파일 삭제시 Error: EACCES: permission denied, unlink npx create-react-app 으로 프로젝트 생성시에 sudo 로 생성하다보니 특정폴더 소유권이 root로 생성되면서 발생한것 같다. 해결방법 1. 터미널 이 사용자명은 터미널에 whoami 를 치면 볼 수 있음. sudo chown -R 사용자:그룹 해당디렉터리 2. GUI 환경에서 수정 https://support.apple.com/ko-kr/guide/mac-help/mchlp1203/mac Mac에서 파일, 폴더 또는 디스크의 권한 변경하기 Mac에서 사용자 및 그룹이 파일, 폴더 또는 디스크를 보거나 변경하도록 허용하는 권할을 할당할 수 있습니다. support.apple.com 이후 정상 삭제됨 2023. 9. 4.
역에의한 계산으로 근속년수, 경력 년월일 구하기 JAVA,JAVASCRIPT 역에의한 계산으로 근속년수, 경력 년월일 구하기 JAVA,JAVASCRIPT 근속년수, 근속년한, 경력인정기간, 경력계산, 년월일 구하기. 날짜 이슈 해결하기 시작 정확한 년/월/일 표기 산정기준을 잘 모르겠고, 타 사이트(네이버, 기간계산기, 경력계산기 등..) 다 다름. 2. 민법 제160조 역에 의한 계산 따르기로 함. 3. Java의 LocalDate를 사용하기 위함임. 즉 LocalDate로 계산한 결과에 대한 근거가 민법 제160조 역에 의한 계산방식(약간의 계산 수정은 필요함) 무엇보다도, 계산 결과에 대한 근거를 제시할 수 있다는 점에서 이 방식을 택했다. 시스템 계산과 역에 의한 계산의 차이 1. 시스템계산 CASE 12022.12.30 ~ 2023.02.28 : 1개월 30일 2023... 2023. 8. 3.
FileNotFoundError: [Errno 2] No such file or directory 에러 바로 해결 따로 설정되어있는 작업경로를 기준으로 파일을 찾기 때문에 파일을 못찾는 경우입니다. scriptpath = os.path.dirname(__file__) filename = os.path.join(scriptpath, '파일명') with open(filename) as json_file: json_data = json.load(json_file) 해주면 끝 2022. 3. 31.
React 18 자동 배칭, Automatic batching Automatic batching for fewer renders in React 18 #21 React는 여러 개의 state update를 모아서 한 번에 re-rendering을 진행합니다. function App() { const [count, setCount] = useState(0); const [flag, setFlag] = useState(false); function handleClick() { setCount(c => c + 1); // 아직 리렌더링 안함 setFlag(f => !f); // 아직 리렌더링 안함 // 리액트는 이 함수가 다 끝나면 리렌더링 함 // 이를 batching이라 부름. } return ( Next {count} ); } 이런 처리 방식은 웹페이지의 렌더링 횟.. 2022. 3. 3.
맥북 화면분할, 창 분할 spectacle app 설정하기 단축키로 창 분할 해당 기능은 Window OS에서는 Window 키와 방향키로 기본적으로 지원해주는 기능입니다. 하지만 Mac OS에서는 기본 기능이 아니어서 별도의 SW를 설치해야 합니다. spectacle이라는 앱입니다. https://www.spectacleapp.com/ 💡 라이센스 MIT License이므로 상업/비상업적 사용이 가능하므로 회사에서도 사용이 가능합니다. https://github.com/eczarny/spectacle/blob/master/LICENSE.md 파일을 설치하고 실행시키면 이런 창이 뜹니다. Open System Preferences 버튼을 클릭해줍니다. 창이 뜨지 않는다면 시스템 환경설정 → 보안 및 개인정보 보호 → 개인 정보 보호 에서 설정 가능합니다. 여기서.. 2022. 2. 27.
맥북 한영 설정하는법 (카라비너 설정) Mac은 한/영 키가 Tab밑에, 즉 윈도우의 CapsLock위치에 있기 때문에 윈도우 키배열에 익숙하다면 불편할 수밖에 없습니다 기본 설정으로는 원래의 한/영자리인 스페이스바 오른쪽의 ⌘위치를 한/영 키로 바꿀 수 없기 때문에 karabiner(카라비너) 라는 소프트웨어를 사용합니다. https://karabiner-elements.pqrs.org/ Karabiner-Elements A powerful and stable keyboard customizer for macOS. karabiner-elements.pqrs.org 위의 링크를 통해 접속합니다. Download를 눌러 쉽게 설치할 수 있습니다. macOS 12 Monterey, macOS 11 Big Sur 두 가지 OS 버전과 Intel 프.. 2022. 2. 26.
React18 Suspense SSR 아키텍쳐 용어 성능 TTFB: Time to First Byte (첫 번째 바이트까지의 시간) - 링크를 클릭한 후 처음으로 들어오는 콘텐츠 비트 사이의 시간을 나타냅니다. FP: First Paint - 픽셀이 처음으로 사용자에게 표시되는 시점. FCP: First Contentful Paint - 요청 콘텐츠(기사 본문 등)가 표시되는 시점 TTI: Time To Interactive - 페이지가 상호작용 가능하게 될 때까지의 시간 (이벤트 발생 등). New Suspense SSR Architecture in React 18 #37 리액트 16.6.0 에 React.lazy와 함께 Suspense가 처음 등장했습니다. Suspense는 비동기 로딩의 필요성을 감지하고 대체 로드 UI를 렌더링 하는 것입니다... 2022. 2. 17.
Semantic Versioning, Tilde, Caret Semantic Versioning 소프트웨어 관리를 위해서는 의존성에 유의해야하는데 버전 번호를 어떻게 정하고 올려야 하는지 규칙과 요구사항을 제안 합니다. 버전은 .을 기준으로 3개로 구분합니다. Major . Minor . Patch 기존 버전과 호환되지 않게 API가 바뀌면 Major의 숫자를 올립니다. 기존 버전과 호환되면서 새로운 기능을 추가할 때는 Minor의 숫자를 올립니다. 기존 버전과 호환되면서 버그를 수정한 것이면 Patch의 숫자를 올립니다. 즉 최초 출시로 1.0.0 에서 이전 버전과 호환되는 버그 수정은 Patch를 수정하여 1.0.1로 업데이트 하고, 여기서 이전 버전과 호환되는 새로운 기능을 추가하면 Minor를 증가시키고 Patch를 0으로 (1.1.0) 업데이트 합니다. .. 2022. 2. 15.
[webpack] package.json package-lock.json 차이 package.json package.json 역할 애플리케이션이 필요로하는 패키지 목록 나열 다른 개발자와 같은 빌드환경 구성. (의존성이 달라 발생하는 문제 예방) package.json은 크게 2가지로 나눠집니다. 프로젝트 정보 name, version 등 패키지 정보 어플리케이션 내부에 직접 포함되는 모듈 (dependencies) 개발 과정에 필요한 모듈(devDependencies) 어플리케이션 내부에 직접 포함되는 모듈 (dependencies) 애플리케이션 내부에 직접 포함되는 모듈 정보를 담습니다. 의존성을 규정하는 것은 패키지 이름과 해당 패키지의 범위를 지정한 객체를 통해 이뤄집니다. "dependencies": { "@chakra-ui/react": "^1.7.4", "@emotio.. 2022. 2. 14.
typescript 제네릭 제네릭 정적 타입언어들의 경우 함수 또는 클래스 정의 시점에 매개변수나 반환값의 타입을 선언해야합니다. Typescript 또한 정적 타입언어이기 때문에 함수 또는 클래스를 정의하는 시점에 매개변수나 반환값의 타입을 선언해야합니다. 그러나 이를 정의하는 시점에 타입선언이 어려운 경우가 있습니다. 단일 타입이 아닌 다양한 타입에서 작동하는 컴포넌트를 작성할 때 사용자는 제네릭을 통해 여러 타입의 컴포넌트나 자신만의 타입을 사용할 수 있습니다. 제네릭 사용 identity 함수를 구현해서 제네릭을 사용해 봤습니다. identity함수는 인수로 뭐가 오든 그대로 반환하는 echo 명령 같은 함수입니다. function identity(arg: any): any{ return arg; } any 타입을 쓰면 a.. 2022. 1. 8.
javascript promise 프로미스 프로그램이 간단하고, 이런 코드들이 한 줄 한 줄 실행 되면 크게 어렵지 않겠지만, 자바스크립트에서 함수를 호출했는데 함수가 끝나기 전에도 프로그램이 계속 진행되어야 하는 상황이 많습니다. 이런 상황에서 비동기처리를 위해 하나의 패턴으로 콜백함수를 사용합니다. 😞 하지만 전통적인 콜백 패턴은 콜백 헬로 인해 가독성을 떨어트리고 중간에 발생한 에러처리가 곤란하거나, 여러개의 비동기처리를 한번에 하기도 힘듭니다. 이럴때 프로미스를 이용해서 비동기적인 상황에서 코드를 좀 더 명확하게 표현하고 실행할 수 있습니다. 콜백 헬이 뭐길래 콜백 헬이 나타나게 된 이유로는 비동기 처리모델의 특성 때문입니다. 비동기 처리 모델은 실행이 끝나는 것을 기다리지 않고 바로 다음 task를 실행합니다. 따라서 비동기 함수 내에서.. 2022. 1. 8.
[Typescript] 클래스, 추상클래스, 인터페이스, 그리고 차이 클래스 타입스크립트 클래스 타입 스크립트의 클래스도 ES6의 클래스와 상당히 유사합니다. 클래스도 사실 함수이고 기존 프로토타입 기반 패턴의 syntatic sugar일 뿐입니다. 하지만 몇가지 Typescirpt만의 확장 기능이 있습니다. 정의 타입 스크립트에서는 클래스 몸체에 클래스 프로퍼티를 사전 선언해야합니다. class 클래스 이름 { [private | protected | public] property name[?]: property type[...] } 클래스 선언문의 기본 형태입니다. class Person { name: string; constructor(name: string) { this.name = name; } walk() { console.log(`${this.name} is .. 2021. 12. 9.