목록분류 전체보기 (766)
치춘짱베리굿나이스

웹팩과 웹팩 설정하기 웹팩 공식 홈페이지 webpack webpack 웹팩은 모듈 번들러입니다. 주요 목적은 브라우저에서 사용할 수 있도록 JavaScript 파일을 번들로 묶는 것이지만, 리소스나 애셋을 변환하고 번들링 또는 패키징할 수도 있습니다. webpack.kr 웹팩이란? 공홈페이지에서부터 “~~를 번들해 보세요" 라는 캐치프레이즈가 대문짝만하게 출력되는 것에서도 알 수 있듯, 웹팩은 ‘모듈 번들러' 이다 캐치프레이즈가 한 3~5초 간격으로 바뀌는데, {이미지 | 애셋 | 스크립트 | 스타일 …} 을 번들해 보세요 예시 중 하나로 계속 슬라이딩되는 것으로 보아 프로젝트 내의 이미지, 애셋, 스크립트, 스타일도 번들이 가능한 ‘모듈' 이라고 할 수 있음을 예측가능하다 앞서 적었듯 모듈 번들러는 모..

CPP 08 Templated containers, iterators, algorithms 템플릿 컨테이너, 반복자, 알고리즘 stl Standard Template Library 표준 템플릿 라이브러리라는 이름에서 알 수 있듯 세 개의 구성 요소로 이루어진 템플릿들을 제공한다 그것은 반복자 (iterator), 컨테이너 (container), 알고리즘 (algorithm) 스택, 큐, 덱, 맵, 벡터, 리스트 등 한번쯤 들어봤을 법한 자료구조들과 적합한 알고리즘들이 내장되어 있으며, 필요한 자료구조를 꺼내서 사용하면 된다 container http://www.tcpschool.com/cpp/cpp_container_adapter http://www.tcpschool.com/cpp/cpp_containe..
CPP 07 C++ templates C++ 템플릿 템플릿 template T add(T x, T y) { return x + y; } 같은 이름의 함수를 인자 자료형이나 반환값만 다르게 하여 새로 생성하는 것을 오버로딩이라고 했었다 다만 오버로딩은 int, float, double, … 등 모든 자료형에 대해 함수를 따로따로 생성해주어야 한다는 단점이 있다 (귀찮다) 템플릿을 이용하면 자료형에 구애받지 않고 함수를 작성할 수 있으며, 어떤 자료형이든 내부에서 사용하는 연산자나 함수에 대한 오버로딩이 존재한다면 결과값을 얻어낼 수 있다 템플릿은 template라는 키워드 (예약어) 로 정의하고, typename T에서 T는 아무 단어나 넣어도 되지만 보편적으로 T가 많이 사용된다 template temp..
CPP06 C++ casts C++ 캐스팅 strtod std::string tmp = "33 44 55"; char* endptr; double value = strtod(tmp.c_str(), &endptr); // value = 33 // endptr = " 44 55" char* 형식의 문자열을 받아 double 자료형으로 변환한다 이때 두 번째 인자에는 char* 형식의 변수 주소가 들어가게 되는데, strtod는 첫 번째 문자열에서 숫자 (double) 로 추정되는 부분을 변환하고, 문자열 안에서 숫자로 변환된 부분문자열 다음 포인터를 두 번째 인자 주소에 넣어준다 예시에서 “33 44 55”를 인자로 넣으면, 33까지가 숫자이고 공백 문자열은 숫자가 아니므로 strtod는 공백 전까지를 숫자..
https://www.youtube.com/watch?v=yEW2jgQRhMU 운동 나는 어릴 때부터 운동을 유독 싫어했다 초등학교때부터 고등학교때까지 12년 내내 체육시간은 그저 기본점수만 받고 대충 하는 시간이었다 움직이는 걸 싫어하는 건 아니고, 흥미가 당기지 않는 반복행동을 수행해야 하는 시간이 지루해서 더 그런 것 같다 사실 지금도 운동은 별로 좋아하지 않는데 몸이 많이 망가져서 억지로... 하고 있다 대학교 저학년 때, 주변 사람들이 '요즘은 건강 때문에 운동을 억지로 하게 된다' 며 나한테도 그럴 날이 올 것이라고 충고했다 그때까지만 해도 주의깊게 듣지 않았다 건강이 망가져도 먼 미래의 얘기지 당장 빠른 시일 내로는 악화될 것 같지 않다는 근거없는 믿음이 있어서였을까... 그리고 대학교 3학..

MySQL 나의SQL (아님) 오픈소스 라이선스로 무료이고, 다양한 프로그래밍 언어를 지원하며, ANSI SQL을 준수하고 비교적 빠르고 널리 쓰이는 MySQL을 잡수어보세요 이전에 사용했던 sqlite는 한 파일 = 하나의 데이터베이스 였지만 MySQL은 데이터베이스 서버를 사용하기 때문에 사용이 쫌 복잡하다 sqlite는 단순하고 빠른 구축을 원할 때 사용했지만, 데이터베이스 구조가 조금만 복잡해져도 보안상의 이슈나 동시성 문제 때문에 MySQL이 좋은 해결책이 될 수 있다 설치 및 CLI에서 사용해보기 CLI가 어렵고 복잡하다면 워크벤치를 사용하면 좋다 (GUI다!) 0. 로컬 환경에 MySQL 설치 및 설정 $> brew install mysql $> mysql -V // 버전 확인 기존의 nod..

모듈과 모듈 번들러 이 글은 웹팩과 웹팩 설정 관련 정리 포스팅을 적기 위한 빌드업이다 모듈 모듈이란 특정 기능을 가진 작은 코드 단위로, 웹팩에서는 하나의 파일을 하나의 모듈로 부른다 계산기를 만든다고 하면, 덧셈을 담당하는 파일, 뺄셈을 담당하는 파일 등 세부 기능 단위로 파일을 분리해서 그 함수를 다른 파일에서 가져다 쓰게 되는데, 각각의 파일이 모듈이라고 할 수 있다 한 파일 내에는 같은 주제의 함수 여러 개가 존재하고, 이를 내보내면 다른 모듈에서 가져와 사용하는 식으로 큰 기능을 구현한다 자그마한 테스트용 스크립트 파일이나 간단한 파일 입출력 연산 정도면 파일 한개로 구현이 가능하겠지만, 프로젝트 규모가 커지다 보면 절대 하나의 파일에 모든 기능을 몰아넣을 수 없고, 설렁 넣는다 해도 한 파일..

CPP05 Repetition and Exceptions 반복과 예외 예외 클래스 (std::exception) 상속받아 예외 만들기 [Effective Modern C++] 항목 14. 예외를 방출하지 않을 함수는 noexcept로 선언하라 class ExceptionFoo: public std::exception { public: const char* what() const throw(); // C++98까지, 현재는 deprecated const char* what() noexcept override; // C++11부터 추가된 키워드 }; std::exception 클래스 구현체를 보면 C++ 98에서는 throw() 를 사용하고, C++11부터는 noexcept 키워드를 사용한다 throw() ..