본문 바로가기

Dev.World/개발상식&언어

(46)
[개발상식] 23. 프로비저닝 프로비저닝 ( Provisioning ) 무엇인가 여럿 중에 최적인 것을 찾기 위해 필요한 지식을 미리 준비해놓고 요청에 맞게 공급하는 절차와 행위를 말한다. 즉, 미리 정의된 정책이나 서비스를 사용자에게 지원해주는 것을 말한다. IT 인프라 자원을 사용자 또는 비즈니스의 요구사항에 맞게 할당, 배치, 배포해서 시스템을 사용할 수 있도록 만들어 놓는 것이다. 프로비저닝에는 약 다섯 가지의 종류가 존재한다. 서버 자원 프로비저닝 서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치해서 운영할 수 있도록 준비해 놓는 것을 서버 자원 프로비저닝이라 한다. OS 프로비저닝 OS를 서버에 설치하고, 구성 작업을 해서 OS가 기동되도록 준비해 놓는 것을 OS 프로비저닝이라 한다. 소프트웨어 프로비저닝 ..
[개발상식] 22. 모바일 앱(네이티브 앱), 모바일 웹, 웹 앱, 하이브리드 웹 앱, 그리고 프로그레시브 웹 앱 모바일 웹 모바일 환경이 대두되면서 pc용 사이트들을 모바일 환경에 맞춰서 변경한 것이다. m. 으로 시작하는 웹 사이트들이 그 예가 된다. 풀 브라우징 방식으로 페이지를 이동하여 앱의 실행 속도가 느리다. 모바일 환경에 대응하기 위해 각종 방법들이 나타나고 있는데, 대표적인 것이 적응형 웹과 반응형 웹이다. 둘은 같은 목적을 갖고 다른 철학을 지닌다. 애초에 반응형 웹은 데스크탑 환경과 모바일 웹 환경을 완충하기 위해 등장한 것은 아니지만 그렇게 사용되고 있다. 모바일 웹은 모바일 환경에 최적화되어야 한다. 성능 면에서 그 점이 가장 중요하다. 웹 앱 웹을 기반으로 작동하기 때문에, 모바일 웹하고는 근본적인 차이는 없지만 겉모습과 구동 방식을 마치 앱인것처럼 착각하도록 꾸며놓은 것이다. 각종 버튼들을 ..
서버 사이드 렌더링 그리고 클라이언트 사이드 렌더링 클라이언트 사이드 렌더링 & 서버 사이드 렌더링 "렌더링의 현주소 모바일의 시대가 도래하면서, 모바일 환경에 맞춰진 웹 페이지 즉 모바일 웹에 대한 니즈가 폭발적으로 증가했고 그에 따른 성능 이슈도 함께 거론되었다. 데스크탑에 비해 성능이 낮은 모바일, 스마트폰을 통해 웹 페이지를 출력하기 위해서는 기존에 있었던 방식과는 다른 접근이 필요했고 그에 따라서 Singla Page web Application 기법 (SPA)이 등장하게 되었다. SPA는 브라우저에 로드되고 난 뒤에 페이지 전체를 서버에 요청하는 것이 아니라 최초 한번 페이지 전체를 로딩한 이후 부터는 데이터만 변경하여 사용할 수 있는 웹 애플리케이션을 의미한다. 전통적인 웹 방식( 서버 사이드 렌더링 )은 이 SPA 방식에 비해 성능 문제를 ..
크로스 브라우징 이슈에 대응하는 프론트엔드 개발자들의 전략 Cross Browsing 프론트 엔드 개발자를 대상으로 실시한 설문조사 결과 ( 2014 )IE6 때문에 업무량이 얼마나 더 추가되었나요?20~30%!! 대한민국 프론트 개발의 현 주소...안타깝게도 IE 구 버전을 사용하는 고객이 정말 많다... 사실 사용하시면서도 IE 구 버전인지는 모르고 인터넷이라고 알고 계실 것이다.개발자들은 어떻게 해야하는가? 가능만하다면, 직접가서 브라우저를 바꿔주고 싶다.또 모바일 기기들이 등장하면서, 모바일 기기내에 탑재되는 브라우저까지 생각해야 한다. 다행히, ( 다행인지는 모르겠으나... N-Screen... )모바일 기기 내부에 탑재되는 브라우저들은 대체로 HTML5나 ECMAScript5와 같은 최신 기능을 대부분 지원한다.즉, PC보다 라이브러리의 필요성이 상대..
[그들이 쓰는 언어] 12. Convention? Convention인가요?Convention 입니다.컨벤션? 사전에 찾아보니 관습, 관례라고만 나온다. Convention 이란 무엇인가?개발자들이 자주 사용하는 컨벤션은 정확히 말하자면,Convention over Configuration (CoC)를 말한다.직역을 하자면 설정 이상의 관례, 설정을 넘은 관례라고 할 수 있다.CoC는 개발자가 내려야 할 수 많은 결정들을 줄여주어,단순성을 확보하면서 유연성을 잃어버리지 않도록 하기 위한 소프트웨어 디자인 패러다임이다.말만 거창하지, 쉽게 말하면 코드를 작성하는데 있어서,문법 상으로는 어긋나지 않는 선에서,준 문법처럼 서로가 약속한 사항들을 의미한다. 소프트웨어의 수준이 깊어지고 그 분야가 다양해지면서, 혼자서 일하는 시간보다는다른사람과 함께 코드를 작성..
[그들이 쓰는 언어] 11. Scaffolding 현재 프론트엔드 개발의 현황 백엔드 개발만큼 개발환경을 구축하는데 있어서 복잡해진 상황이다.폴더를 새롭게 만들고 자바스크립트 파일을 찾아 복사하고없으면 다시 다운받아 셋팅을 해야 한다. Scaffolding 사전적 정의 건축학 용어로 건물 건축을 위한 비계, 즉 건축자재, 사람들이 이동하도록 만든 틀을 의미한다. 비계(건축 현장에서 임시 가설물)를 설정한다는 의미로 받아들이면 되겠다. 그렇다면 개발의 세계에서는 어떻게 사용되고 있는가?개발 언어에서의 Scaffolding이란 데이터 베이스를 이용한 프로그램에서이를 기반으로 하는 MVC구조의 CRUD 프로그램의 뼈대를 만들어주는 기능을 의미한다. 즉, 개발자가 MVC 모델을 기반으로 어플리케이션을 만들려고 할 때 생산하는 복잡하고 많은 양의 코드를 어플리케..
[개발상식] 19. Sass란, less란, Sass와 less비교 Sass(Syntactically Awesome Style Sheet)직역하면 구문적으로 꽤 괜찮은 스타일시트라는 말이 된다.사전적 정의를 살펴보면 다음과 같이 기술하고 있다.CSS 상위에 있는 meta-language로 CSS에 비해 간결하고 격식을 갖춘 CSS문법을 제공하며,스타일 시트를 쉽게 관리할 수 있는 기능을 제공하는 것이다. 격식을 갖춘다는 말도 와닿지 않고 와닿는 말이라곤 찾아볼 수 없다.Sass는 CSS를 만들어주는 언어로, 자바스크립트 처럼 특정 속성 값(color, margin, width)를 변수로 선언하여,필요한 곳에 선언된 변수를 적용할 수 있고,반복되는 코드를 한번의 선언으로 여러 곳에서 재사용할 수 있도록 해주는 등의 편리한 기능을 갖고 있다, Ruby로 만들어져 있으며, 만..
[개발상식] 18. JSON JSON(JavaScript Object Notation) 기본적으로 프로그래밍 언어가 아니다.속성 - 값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. XML에 비해 경량화된 데이터 교환 포맷이며비동기 브라우저/서버 통신을 위해, XML을 대체할 수 있는 주요 데이터 포맷이다. 자바스크립트 언어로부터 파생되어 자바스크립트 구문형식을 따르지만 언어 독립형 데이터 포맷이다. XML은 모두 String이지만 그에 비해 JSON은 데이터 타입을 갖는다. 어디에 사용하는가?AJAX를 사용해 데이터를 주고 받을 때 그 데이터 포맷으로 JSON을 사용하는 것이다. eval() 함수 하나로 해결되는 것이 JSON이다. 변수를 전달하기 위한 목적의 JSON..