반응형 Programming148 [IntelliJ IDEA] 'Initial heap size set to a larger value than the maximum heap size' 에러 해결기 이 에러는 맥북 프로 M2의 개발 환경을 세팅하면서 겪은 IntelliJ IDEA 관련 에러다. 사실 어제 이 에러를 겪었는데, 처음이 아니라 두 번째였다. 그런데 왜 또다시 몇 시간을 에러 해결에 쓰게 되었냐 하면, 입사 직후 IntelliJ를 처음 설치하면서 겪었을 때 구글링 후 해결한 뒤 제대로 정리해놓지 않았었다 ^^; 스스로에게 너무 화도 나고 짜증스러웠던 기억이라, 앞으로 더욱 정리를 잘 해야겠다는 동기 부여가 확실히 됐다. 사실 매일 업무 일지를 쓰고 있는데도 이렇게 빨리 치워버리고 싶은 마음에 잘 적지 않은 것이 발목을 잡을 줄 몰랐는데, 좋은 사례가 됐다. heap memory란? 사용자에 의해 자원이 할당되고 해제되는 메모리의 부분이다. 스택 메모리와 반대의 역할을 한다고 보면 된다. .. Programming/Java 2023. 7. 31. [JavaScript] .getMonth() 메서드는 왜 zero-base일까? .getMonth() 메서드란 const moonLanding = new Date('July 20, 69 00:20:18'); console.log(moonLanding.getMonth()); // (January gives 0) // Expected output: 6 Date.prototype.getMonth() 메서드는 Date 객체의 월 값을 현지 시간에 맞춰 반환한다. 그런데 이 때 월은 0부터 시작한다. 월만 0부터 시작하는 이유는? 모든 Date관련 get 메서드가 zero-base라면 이상할 게 없다. 하지만 연, 일은 그렇지 않은데 월만 그런 것은 매우 이상하다. 사람에게 자연스럽지 않고 일관성도 없기 때문이다. 호기심이 발동했는데, JS의 아버지인 브랜든 아이크의 예전 트윗에서 답을 발견.. Programming/Javascript, Typescript 2023. 7. 25. SPA(Single Page Application) Single Page Application (단일 페이지 애플리케이션) 현재 페이지를 동적으로 렌더링함으로써 사용자와 소통하는 웹 어플리케이션 단일 페이지로 구성되며 서버로부터 최초에만 페이지를 다운로드하고, 이후에는 동적으로 DOM을 구성 처음 페이지를 받은 이후부터는 서버로부터 새로운 전체 페이지를 불러오는 것이 아닌, 현재 페이지 중 필요한 부분만 동적으로 다시 작성함 연속되는 페이지 간의 사용자 경험(UX)을 향상 모바일 사용량이 증가하고 있는 현재 트래픽의 감소와 속도, 사용성, 반응성의 향상은 매우 중요하기 때문 동작 원리의 일부가 CSR(Client Side Rendering)의 구조를 따름 SPA 등장 배경 과거 웹 사이트들은 요청에 따라 매번 새로운 페이지를 응답하는 방식이었음 MPA(M.. Programming/ETC 2023. 7. 15. [JavaScript] new 연산자 예전에 정리해봐야지~ 했던 new 연산자. 왜 정리하고 싶었는지는 잊어버렸지만, 종종 만나게 되기에 정리해보자. 정의 new 연산자는 '생성자 함수' 앞에 붙여 객체를 만들어주는 연산자라고 할 수 있다. new라는 이름이 암시하듯이 새로운 객체입니다~! 라는 의미로 받아들였다. JavaScript에서 생성자 함수는 객체를 만드는 함수다. 아래에서 Person함수는 생성자 함수이며, 일반 함수와 구분하기 위해 대문자로 시작한다. function Person(name){ this.name = name; this.introduce = function(){ return 'My name is '+this.name; } } var p1 = new Person('river'); document.write(p1.int.. Programming/Javascript, Typescript 2023. 7. 13. [React] 'as' props React 컴포넌트 라이브러리 중 'as'라는 이름의 프로퍼티를 사용하는 경우가 있는 것 같다. (아마 material UI로 추측한다.) as의 역할은 해당 컴포넌트 외부(다른 파일)로부터 HTML을 가져와서 대체할 수 있도록 해주는 것이다. 기본 JSX/HTML 문법은 아니고, 일부 라이브러리에서 사용하는 것으로 보인다. 예시 코드 // class형 컴포넌트 ... return ( ... ) 'studentInputText' 컴포넌트에서는 태그에 전달된 prop들을 그대로 사용할 수 있다. 사용 이유? 정확히 알기 힘들지만(한글 자료 너무 없음!) 코드를 직접 만져 본 입장에서는 유지보수의 의미가 큰 것 같다. 해당 컴포넌트에 조건이 너무 많이 걸려 있거나 내부 작업이 많이 필요하다면 메인 컴포넌트(.. Programming/React 2023. 7. 13. Flyway에 대해 알아보자: 오픈소스 DB migration 툴 DB migration 툴 Flyway에 대해 알아보자. DB migration이라고 하면 싸피에서 처음으로 Django를 배웠을 때 model의 내용을 연결한 DB(당시에는 sqlite)에 적용시켰던 게 기억난다. Flyway도 그러한 DB migration을 해주는 도구다. 하지만 어떤 특정 프레임워크에 의존적이지 않은 '오픈 소스' 툴이다. Flyway를 사용하는 이유 이미 배포된 서비스의 DB가 있다. 스키마도 복잡하고 사용자 데이터도 많이 쌓인 상태다. 이 상태에서 model(entity)에 변화가 생긴다면 어떻게 적용해야 할까? DB에 직접 접속해서 매뉴얼하게 명령어를 칠 수도 있지만, Flyway를 적용하면 로컬에서 변경 사항을 적용하면 알아서 관리해준다. 휴먼 에러를 방지하기 위한 목적이 .. Programming/Database 2023. 7. 11. react-redux 기본 개념 정리 react-redux를 연결해 주는 도구 사용 방법: Provider, useSelector, useDispatch 사용법 Provider 필요한 컴포넌트만 Provider 태그로 감싸준다. useSelector 사용하고자 하는 state를 가져온다(함수를 인자로 받는다.) 예시 // App.js ... import { createStore } from 'redux'; import { Provider, useSelector, useDispatch, connect } from 'react-reducx'; function reducer(currentState, action) { if (currentState === undefined) { return { number: 1, }; } const newState.. Programming/React 2023. 7. 7. 이전 1 2 3 4 5 6 ··· 22 다음