본문 바로가기

Front_End8

Spring Boot 환경에서 webpack dev server 사용하기 Spring Boot에서 Webpack을 사용하며 script 개발시 webpack --watch를 사용하여 디버깅하였습니다. Boot의 devtool를 설정하여 live reloading이 가능하였지만 watch기능이 bundle파일을 아예 새로 만들어 주는 형식이라 실시간으로 변경을 감지하지 못하였고 그에 따라 디버깅이 굉장히 불편했습니다. 프론트 개발시에도 실시간 디버깅을 위해 webpack-dev-server를 사용하였고 이제는 F5를 손에서 떼버리게 되었습니다. (부끄럽게도 처음에는 Spring 환경에서 webpack-dev-server를 못쓰는줄 알았습니다...) 모든 코드는 github에 있으며 아래는 이에 관한 설정내용입니다.저의 주 개발환경이 freemarker(Server Tmeplat.. 2017. 3. 24.
실서비스에서 CoffeeScript를 ES6로 변환하기 사내의 모바일웹 프로젝트의 프론트 환경이 CoffeeScript로 개발되어 있어 여러가지 불편을 겪었습니다. 이는 오랫동안 풀어야 할 숙원사업(?)이였는데 이를 해결하며 느꼈던 점, 절차, 노하우를 공유하고자 합니다. 제가 느꼈던 CoffeeScript 환경의 문제와 Webpack + ES6 도입 이유를 정리해 보았습니다.CoffeeScript 개발환경 문제전역객체 사용의 남발(CoffeeScript와는 무관합니다)기존 코드가 모듈화 되어 있지 않았습니다.(CoffeeScript와는 무관합니다)그래서 의존 관계 파악이 어려웠고 유지보수, 기능 개발에 제한이 있었습니다.개발 진행중 수정된 사항을 즉시 변환해 주는 컨버팅 도구(Webpack, browsify)를 쓰고 있지 않아 개발진행이 느렸습니다.Coff.. 2017. 3. 22.
이해하기 쉬운 Webpack 가이드 연초 계획으로 실서비스 코드를 개선하는 역할을 맡게 되었습니다. 작년 세미나(JSCON, s67..기타)에서 강력하게 어필되어 써보고 싶었던 ES6 + Webpack 기반의 프론트 엔드 환경을 구성하기로 하였습니다. 그리하여 정리를 시작하게 되었고 제 입장에서 webpack이란 무엇이고 왜 사용해야 되며 어떠한 기능들이 있는지 알기쉽게 풀어쓰도록 노력하였습니다. 모든 자료는 github에 있습니다. 미숙한 부분은 가감없이 댓글 부탁드립니다.1. webpack이란?webpack이란 Module Bundler입니다. webpack으로 들어가시면 심플하게 딱 쓰여있어서 바로 확인하실 수 있습니다. 그럼 bundler란 무엇일까요? wiki에는 다음과 같이 정의하고 있습니다.해석하자면 소프트웨어 및 일부 하드웨.. 2017. 2. 2.
5장. 실행 컨텍스트와 클로저 1. 실행 컨텍스트 개념콜 스택 - 함수를 호출할 때 해당 함수의 호출 정보(지역 변수, 인자값 등)가 차곡차곡 쌓여있는 스택을 의미즉 실행 컨텍스트는 "실행 가능한 자바스크립트 코드 블록이 실행되는 환경"실행 컨텍스트가 형성되는 경우eval()함수로 실행되는 코드함수 안의 코드를 실행할 경우전역 코드"현재 실행되는 컨텍스트에서 이 컨텍스트와 관련 없는 실행 코드가 실행되면, 새로운 컨텍스트가 생성되어 스택에 들어가고 제어권이 그 컨텍스트로 이동한다."제일 위에 위치하는 실행 컨텍스트가 현재 실행되고 있는 컨텍스트2. 실행 컨텍스트 생성 과정function execute(param1, param2) { var a= 1, b = 2; function func() { return a+b; } return p.. 2016. 11. 28.
4장. 함수와 프로토타입 체이닝 1. 함수 생성 방식함수 리터럴function add(x, y) { return x + y: }함수 선언문함수 리터럴 형태와 같다. 반드시 함수명이 정의되어 있어야 한다.함수 표현식함수 리터럴로 하나의 함수를 만들고, 여기서 생성된 함수를 변수에 할당하여 함수를 생성하는 것var add = function (x, y) { //익명 함수 vs 이름이 표현된 함수(기명 함수) return x + y; };Function() 생성자 함수var add = new Fnction('x', 'y', 'return x + y');2. 함수 호이스팅함수 선언문 형태로 정의한 함수의 유효 범위는 코드의 맨 처음부터 시작한다. 즉, 선언위치와 상관없이 사용가능!따라서 더글러스 크락포드는 함수 표현식 사용을 권장한다.(코드 .. 2016. 11. 27.
3장. 데이터 타입과 연산자 1. 리터럴 - 표기법객체 리터럴 - 객체를 생성하는 표기법, 중괄호를 이용해서 객체를 생성({키:값})2. 대괄호 표기법만을 사용해야 하는 경우일반적으로 마침표를 사용하여 객체 프로퍼티에 접근하지만 프로퍼티가 표현식이거나 예약어일 경우 foo['name']으로 대괄호 형식으로 써야 한다.3. 프로토타입자바스크립트의 모든 객체는 자신의 부모역할을 하는 객체와 연결되어 있다. 이러한 부모 객체를 프로토타입 객체라고 부른다.모든 객체는 자신의 프로토타입을 가리키는 [[Prototype]]라는 숨겨진 프로퍼티를 가진다.(proto프로퍼티 by. 크롬)toString(), ValueOf() 등과 같은 모든 객체에서 호출 가능한 자바스크립트 기본 내장 메서드가 포함4. 배열splice(start, deleteCo.. 2016. 11. 27.
인사이드자바스크립트 공부시작! 인사이드자바스크립트 3장부터 요약정리한 부분들을 정리하여 올립니다. 2016. 11. 27.
1주차. 30분만에 보는 ES6 필수 기초 문법 Untitled Document.md 1주차. 30분만에 보는 ES6 필수 기초 문법 요즘 주마다 한번씩 ES6에 관한 세미나를 방문하며 깊이있는 정보를 듣고 있다.(내가 깊이있게 공부한게 아니라…) 때문에 정리할겸 전반적인 ES6에 대한 글을 쓰기로 했다. 타겟은 ES6에 관심이 있으면서 빠르게 훑어보고 싶은 분을 위해서~ 내가 생각하는 ES6의 주제어는 '명확성’이라는 개념에 맞추면 좀 더 이해하기 편해진다. 기존의 자바스크립트에 존재했던 암묵적 지시어나 명확하지 않는 개념, 문법, 함수들을 더 명확하게 바꾸어 개발의 생산성을 높일뿐만 아니라 타언어 개발자들이 접근하기 쉬워졌다. 먼저 기본문법 부터 살펴보자. 1. 기본 ES6 문법 let 기존의 var를 대체하는 키워드 기존의 함수 스코프 변수인 v.. 2016. 10. 3.