본문 바로가기

분류 전체보기233

ios_base::sync_with_stdio(false); cin.tie(null); 구문을 추가해주는 이유 C++로 알고리즘을 풀 때 실행 속도를 높이기 위해 아래 구문을 작성해준다. ios_base::sync_with_stdio(false); cin.tie(NULL); ios_base::sync_with_stdio(false); 의 장점 ios_base::sync_with_stdio 구문은 c의 stdio와 cpp의 iostream을 동기화시켜주는 역할을 한다 이 때 iostream과 stdio의 버퍼를 모두 사용하기 때문에 딜레이가 발생한다. 따라서, ios_base::sync_with_stdio(false);코드를 작성해줌으로써 동기화를 비활성화시켜준다. 이로 인해, c++만의 독립적인 버퍼가 생성되어 c의 버퍼와 병행하여 사용할 수 없게 되지만, 사용하는 버퍼의 수가 줄어들었기 때문에 실행 속도는 빨라.. 2023. 5. 10.
git PR 코드리뷰 코드 리뷰는 왜 하는가? - 내가 이해한 기능에 대해 제대로 구현이 됐는지 - 더 나은 코드나 로직이 있는지 - 이슈 가능성이 있는 코드는 없는지 - 확장 가능하고 유연한 코드인지 - 다른 사람도 알기 쉬운 네이밍을 했는지 - 개발팀에서 정한 코딩스타일을 가졌는지 - develop에 연관된 기능변화에 영향도는 없는지 - 혼자 판단하기 어렵고 팀원들의 확인이 필요하다 코드 리뷰 방법은? - Git Hub Pull request를 통한 방법 리뷰 요청자는 어떻게 요청해야 하나? - 리뷰어가 쉽게 이해 할 수 있도록 코드에 대한 상세한 설명이 필요함 - 코드에 대한 확신이 없는 부분을 중점적으로 작성한다 - 기타 궁금한 점을 적는다 코드 리뷰어는 무엇을 중점으로 리뷰할것인지? - 이미 구현이 되어 있는 로직이.. 2023. 5. 4.
맥에서 bits/stdc++.h 헤더 사용법 bits/stdc++.h - 'bits/stdc++.h' 모든 표준 라이브러리가 포함된 헤더이다. - 이 헤더는 표준 헤더가 아니기에 GCC가 아닌 컴파일러로 컴파일이 되지 않는다. - GCC를 컴파일러로 사용하는 대회에서는 유용하게 사용할 수 있다.(ex 백준 온라인 저지) 맥에서 bits/stdc++.h 헤더 설정법 1. g++ --version 커맨드를 이용하여 installedDir의 설치 경로를 확인해줌 2. cd /Library/Developer/CommandLineTools/usr/ -> include 폴더 열기 3. include 폴더 안에 bits폴더를 만든다. - mkdir bits -> permission denied 시에는 sudo 이용 - cd bits 4. bits 디렉토리에서 .. 2023. 5. 3.
A `Form.Item` with a `name` prop must have a single child element 회사에서 백오피스를 개발하던중 발생 했던 에러 이다. Warning: [antd: Form.Item] A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item 태그 안에 두종류의 태그가 들어가 있을때 발생하는 에러인 것 같다. 나는 태그만 사용하는중이 었으나 간격을 위해 태그도 사용하고 있는것을 모르고 계속 헤맸다. 태그를 지워주니 정상적으로 동작했다. 이러한 에러가 발생한다면 매우간단하게 기본적인 태그를 사용하고 있는지 부터 확인해 보는게 좋을것 같다. antd .. 2023. 4. 28.
Chrome 개발자 도구 Chrome 개발자 도구란? - 웹사이트를 전반적으로 분석하고 시험해 볼 수 있도록 도와주는 도구 *주의: 콘솔 데이터는 저장되지 않음. 새로고침/새 탭 열기를 하면 내용이 날아감 요소 (Elements) - HTML을 분석하고 수정해볼 수 있는 도구 콘솔 (Console) - 현재 로딩된 페이지에서 자바스크립트를 시험하거나 로그/오류 메세지 등을 확인할 수 있는 도구 소스(Source) - 현재 로딩된 페이지에서 사용된 리소스를 열람할 수 있는 도구 네트워크(Network) - 서버와의 통신 내역을 보여주는 도구 성능(Audits) - 웹 어플리케이션의 성능을 향상시킬 방법을 컨설팅해주는 도구 2023. 4. 26.
Next.js Next.js란? - Next.js는 리액트를 위해 만든 오픈소스 자바스크립트 웹 프레임워크로, 리액트에는 없는 서버 사이드 렌더링(server-side rendering)(SSR), 정적 사이트 생성(static site generation) (SSG), 증분 정적 재생성(ISR) 과 같은 다양하고 풍부한 기능을 제공한다. - Next.js는 첫 릴리스부터 리액트가 제공하지 않는 다양한 기능을 제공하면서 리액트 웹 앱 개발 분야의 판도 바꿨다. 그 예시로는 코드 분할(code splitting), 서버 사이드 랜더링, 파일 기반 라우팅, 경로 기반 프리페칭(pre-fetching) Next.js가 제공하는 기능 - 정적 사이트 생성 - 증분 정적 콘텐츠 생성 - 타입스크립트에 대한 기본 지원 - 자동 .. 2023. 4. 18.
가상 클래스(의사 클래스) pseudo-class 가상 클래스(의사 클래스) pseudo-class - css에서 의사 클래스(pseudo-class)는 선택하고자 하는 HTML 요소의 특별한 '상태(state)'를 명시할 때 사용한다. 1. 동적 의사 클래스(dynamic pseudo-classes) - :link = 링크의 기본 상태이며, 사용자가 아직 한 번도 이 링크를 통해 연결된 페이지를 방문하지 않은 상태 - :visted = 사용자가 한 번이라도 이 링크를 통해 연결된 페이지를 방문한 상태 - :hover = 사용자의 마우스 커서가 링크 위에 올라가 있는 상태 - :active = 사용자가 마우스로 링크를 클릭하고 있는 상태 - :focus = 키보드나 마우스의 이벤트 또는 다른 형태로 해당 요소가 포커스(focus)를 가지고 있는 상태 2.. 2023. 4. 14.
Redux 데이터 Flow Redux란? 상태 관리 라이브러리 Props란? - Props(properties의 줄임말) - props는 immutable(변경불가성) - Props 소통하는 방식이 위에서 아래로( 부모components에서 자식으로components로) - 부모가 자식에게 1을 줬으면 1은 바뀔 수 없다. 바꾸고 싶으면 부모가 다시 다른 숫자를 내려줘야함 State란? - 부모 components에서 자식 components로 data를 보내는게 아닌 component 안에서 데이터를 전달하려면 state을 사용 - state는 mutable(변할수있는) - state이 변하면 re-rendering 된다. Action = 무엇이 일어났는지를 설명하는 객체 Reducer = Action으로 인해서 state 상태.. 2023. 4. 5.
NPM( Node package manager) vs NPX NPM이란? npm은 node.js의 자동화 된 의존성과 패키지 관리를 위한 패키지 매니저이다. NPM의 역할 1. library를 담고 있는 역할 2. application을 킬때 start, 또는 배포 할 때 build NPX의 역할 원래 create-react-app을 할때 npm install -g create-react-app을 사용하여 global 디렉토리에 다운을 받았다. -> 이제는 npx를 이용하여 create-react-app을 이용 할 수 있다. -> npx가 npm registry에서 create-react-app을 찾아서 다운로드 없이 실행 시켜준다 NPX의 장점 1. Disk Space를 낭비하지 않을 수 있다. 2. 항상 최신 버전을 사용 할 수 있다. 2023. 4. 5.
Spring AOP 구현 AOP란? AOP는 Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재새용성을 높여주 는 프로그래밍이다. Spring에서는 주로 Logging, Caching, Auditing, Performace monitoring등에 주로 사용되며, 런타임 시에 프록시 객체를 생성하여 공통 기능을 삽입하는 방식으로 동작한다. Spring AOP 구현하기 1. Application 혹은 Config파일에 @EnableAspectJAutoProxy 어노테이션 추가하기 @EnableAspectJAutoProxy @SpringBootApplication public class LogPracApplication { public static void main(S.. 2023. 3. 29.
React 웹사이트를 만들기 위해선, 사실 프론트엔드 라이브러리의 도움 없이도 만들어 낼 수 있다. 그리고 단순히 정적 페이지를 만드는거라면 자바스크립트 없이도, 그냥 HTML과 CSS를 사용해서 만들 수 있다. 그런데 요즘의 웹은 단순히 웹 페이지가 아니라, 웹 애플리케이션 이다. 브라우저 상으로도 정말 자연스러운 흐름으로 매우 많은 것들을 할 수 있다. 하지만 어떠한 유저 인터페이스를 동적으로 나타내기 위해서는 정말 수많은 상태를 관리 해주어야 한다. increase 0 + 우리가, 버튼을 눌러서 0 값을 바꿔주려면 각 DOM 엘리먼트에 대한 레퍼런스를 찾고, 해당 DOM에 접근하여 원하는 작업을 해야한다. var number = 0; var elementNumber = document.getElementByI.. 2023. 3. 20.
프로퍼티 어트리뷰트 const person = { name: 'Lee' } // 프로퍼티 동적 생성 person.age = 20; // 모든 프로퍼티의 프로퍼티 어트리뷰트 정보를 제공(프로퍼티 디스크립터 객체) console.log(Object.getOwnPropertyDescriptors(person)); 내부 슬롯과 내부 메서드 내부 슬롯과 내부 메서드는 ECMAScript 사양에 정의된 대로 구현되어 자바스크립트 엔진에서 실제로 동작 하지만 개발자가 직접 접근할 수 있도록 외부로 공개된 객체의 프로퍼티는 아니다. => 즉, 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 직접 적으로 접근하거나 호출 할 수 있는 방법을 제공하지 않는다. const p =.. 2023. 3. 14.