
WEB개발이야기/VScode 2023. 2. 7.
VScode의 package.json에서 AWS의 S3로 배포하는 방법
React.js나 Vue.js 등의 Package 프로젝트로 개발을 할 때 쉽게 AWS의 S3로 배포하는 방법에 대해서 공유합니다. 먼저 AWS의 S3의 버킷은 이미 생성되어 있다는 가정입니다. S3 버킷 생성 아래와 같이 버킷이 생성되어 있습니다. 목차는 S3의 버킷입니다. 버킷의 이름이며 잘 기억해 놔야 합니다. 리전, 그러니까 실제로 물리적으로 파일이 저장되는 위치라고 보시면 됩니다. 기억해놔야 합니다. 액세스는 퍼블릭으로 되어 있어야 외부에서 접근이 가능합니다. IAM 권한 부여하기 이제 외부에서 접근하기 위해서 IAM에서 권한을 부여해야 합니다. 좌측 메뉴에서 사용자를 선택합니다. 보안 자격 증명 탭을 선택합니다. 중간쯤에 위치한 액세스 키를 발행합니다. 발행을 하면 Access key ID와 ..
WEB개발이야기/React.js 2022. 7. 14.
React.js에서 JSX사용하기
JSX란? React에서 JSX는 필수 요소는 아니지만 React를 코딩하는데 많은 편리함을 더해주는 확장 문법이라고 보면 됩니다. JSX란? - React 공식웹사이트 React에서는 본질적으로 렌더링 로직이 UI 로직(이벤트가 처리되는 방식, 시간에 따라 state가 변하는 방식, 화면에 표시하기 위해 데이터가 준비되는 방식 등)과 연결된다는 사실을 받아들입니다. React는 별도의 파일에 마크업과 로직을 넣어 기술을 인위적으로 분리하는 대신, 둘 다 포함하는 “컴포넌트”라고 부르는 느슨하게 연결된 유닛으로 관심사를 분리합니다. 이후 섹션에서 다시 컴포넌트로 돌아오겠지만, JS에 마크업을 넣는 게 익숙해지지 않는다면 이 이야기가 확신을 줄 것입니다. React는 JSX 사용이 필수가 아니지만, 대부분..
WEB개발이야기/React.js 2022. 7. 11.
React.js의 아주 기초적인 사용법
React를 공부하기 시작했습니다. 아주 간단한 것부터 알게 된 것을 기록해 볼까 합니다. React는 프레임워크라기보다는 라이브러리라고 할 수 있습니다. 그렇기 때문에 기존의 HTML에 간단하게 React를 적용할 수 있습니다. 먼저 가장 기본적인 HTML은 아래와 같습니다. React.js 적용하기 react.js를 적용하기 위해서 먼저 react.js javascript CDN을 적용해야 합니다. 이제 이 HTML 문서는 React를 실행시킬 수 있습니다. 간단하죠? 한번 간단하게 적용해 보겠습니다. 먼저 react가 발현될 dev를 지정합니다. 보통은 id="root"를 많이 사용하나 바꾸어도 상관없습니다. 그리고 react 문을 작성합니다. react도 javascript이므로 javascrip..
WEB개발이야기/VScode 2022. 2. 21.
[VScode 익스텐션] Visual Studio Code에서 클립보드에 저장된 Image 붙혀넣기 - Paste Image
마크다운(Markdown)으로 글쓰기를 할 때 이미지 붙여넣기에 대해 매우 유용한 익스텐션이 있어서 소개해 드릴게요. 캡처 프로그램으로 캡처를 하고 바로 마크다운 문서에 붙여넣기 하면 바로 이미지가 반영이 되고 이미지는 별도의 폴더에 저장이 되도록 구성되어 있어요. [Extension] Paste Image 이미지를 클립보드에서 마크다운/asciidoc(또는 다른 파일)로 붙여넣기를 할 수 있어요. Paste Image 설정하기 Paste Image를 몇 가지 설정하면 나에게 맞게 커스터 마이징 할 수 있어요. 모든 부분을 설명하기는 어렵고, 간단하게 몇 가지 설정하는 방법입니다. Base Path : 기본이 되는 폴더의 경로입니다. 입력값은 ${currentFileDir} 및 ${projectRoot}..

WEB개발이야기/VScode 2022. 2. 18.
Visual Studio Code에서 코드조각(Snippets)을 슬기롭게 사용하는 방법
Visual Studio Code (이하 VS code) 자체만으로도 매우 훌륭한 툴이지만 코드 조각(Snippets)을 잘 활용한다면 더 쉽고 빠르게 코딩을 할 수 있어요. 코드 조각(Snippets)이라고 하면 핸드폰의 단축키처럼 특정 문자를 입력하면 그에 해당하는 코드가 자동으로 작성이 되는 것을 말해요. 저는 주로 Markdown으로 티스토리나 구글 블로거로 포스팅할 때 주로 사용해요. 기본 구성을 자동으로 해주기 때문에 상당히 편하죠. 내장 코드 조각 (Built-in snippets) 먼저 VS code를 설치하면 기본으로 설치되어 있거나 스니펫 익스텐션을 설치하면 사용할 수 있는 코드 조각들이 있어요. 이것만으로도 상당히 편리한 코드 생활이 가능하죠. 예를 들면 위의 애니메이션 이미지처럼 h..
WEB개발이야기/VScode 2022. 2. 17.
VScode(Visual Studio Code)소개와 설치하기
코딩을 하기 위한 편집기라면 TextEditor과 IDE로 나뉠 수 있을 거예요. 그중에 IDE는 특수한 환경이나 언어에 특화된 에디터라 매우 편리한 점은 있지만 범용적으로 사용할 수는 없는 거예요. 하지만 텍스트 에디터는 html, css, javascript, typescript, python, Markdown, C 등등.. 다양한 환경이나 언어에서 범용적으로 사용할 수 있기 때문에 나름 인기가 높습니다. 라떼~ 개발자라면 울트라 에디터, 에디트 플러스, 노트패드 등등.. 을 아실 텐데요. 이 텍스트 에디터의 현재 버전이 Visual Studio Code라고 할 수 있어요. 윈도의 메모장, 위드 패드 등이 1세대, 울트라 에디터, 에디트 플러스 등이 2세대라면 서브라임텍스트(Sublime Text),..
WEB개발이야기/Git 2022. 2. 11.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining이 발생했을 때 문제해결
git을 이용하여 Clone 하는 도중.. error: RPC failed; curl 18 transfer closed with outstanding read data remaining 에러가 발생했다면 이렇게 한번 해보세요. 문제 원인 error: RPC failed; curl 18 transfer closed with outstanding read data remaining를 해석해 보면 미해결 읽기 데이터가 남아 있는 상태에서 curl 18 전송이 종료되었습니다. 라는 뜻이네요. 문제의 원인은 네트워크의 문제로 인해 연결이 끊기고 git clone 종료된 상황이라고 합니다. 보통 네트워크 상황이 좋지 않고 대량의 파일을 Clone 할 때 발생할 수 있다고 합니다. 해결 방안 한 번에 모든 파일을 g..
WEB개발이야기/Vue.js 2021. 10. 20.
자식 컴포넌트의 CSS(SCSS)를 정의할 수 있는 딥셀렉터(v-deep) 설정하는 방법
Vue 프로젝트를 진행하다 보면 vuetify나 quasar 등 매우 다양한 프레임워크나 컴포넌트를 사용하게 됩니다. 그러면서 그 컴포넌트를 내 Vue 프로젝트의 자식 컴포넌트로 불러와서 사용하는 경우가 있는데 그 컴포넌트를 어떻게 CSS를 적용해서 내 입맛에 맞추어 스타일을 변경하고 싶으나 그게 생각처럼 되지 않는 경우가 있습니다. 그걸 되게 하는 방법을 설명해 보려고 합니다. 자식 컴포넌트의 CSS에 쉽게 접근이 되지 않는 이유 이렇게 되는 이유는 웹 컴포넌트의 중요한 측면인 스타일 캡슐화때문이라고 합니다. 다시말해서 현재 컴포넌트에 적용된 css(scss)가 현재의 컴포넌트에만 적용되고 다른 컴포넌트에는 간섭이 되지 않도록 하기 위함이라고 보시면 됩니다. 그래서 Vue컴포넌트에서 그런데 scoped..
WEB개발이야기 2021. 6. 5.
Docker로 Quasar framework 개발 환경 세팅하기
Docker와 docker-compose를 사용하여 Web 또는 App을 개발하는 환경을 세팅해 보려고 합니다. 이 세팅으로 여러사람, 또는 여러 장소에서 개발, 빌드의 환경을 동일하게 가져갈 수 있습니다. 일단 Windows 환경(WSL2)에서 Docker데스크톱이 설치되어 있다는 전제 입니다. Quasar 프로젝트 초기 파일 생성하기 (스캐폴딩 - Scaffolding) 아무것도 없는 상태에서 Quasar 프로젝트를 시작하려면 먼저 스케폴딩을 파일을 가져와야 합니다. 보통 vue init나 quasar create로 생성해야 하며 이것도 Docker의 기능을 활용해서 가져오면 됩니다. 먼저 CMD창을 열고 프로젝트로 사용할 폴더를 만들고 해당 폴더로 이동합니다. # 프로젝트 폴더 생성 mkdir my..
WEB개발이야기 2021. 2. 17.
headless CMS인 STRAPI 설치하기
이전시간에 프론트앤드 개발자에게 꼭 필요한 백앤드를 책임질 STRAPI 라는 제목으로 소개에 대한 포스팅을 했었습니다. 이번에는 STRAPI를 설치하는 방법에 대해서 포스팅을 하려고 합니다. STRAPI 설치하기 strapi를 설치하기 위해서는 이미 컴퓨터에 npm 5.2.0이상 버전이 설치되어 있거나 yarn이 설치되어 있어야 합니다. 해당 패키지매니저를 설치하는 방법은 따로 설명하지 않겠습니다. Strapi 패키지는 yarn 또는 npx를 통해 설치할 수 있으며 여기서는 yarn으로 설치하는 방법만 작성합니다. 1. 프로젝트 폴더에 설치하기 yarn의 아래 명령어로 Strapi의 프로젝트를 설치합니다. yarn create strapi-app my-project --quickstart create s..
WEB개발이야기 2021. 2. 17.
프론트앤드 개발자에게 꼭 필요한 백앤드를 책임질 STRAPI
예전에는 그냥 퍼블리셔로 통칭 되었을텐데 현재는 프론트앤드 개발자라는 아주 중요한 직업군으로 형성되어 있습니다. Web개발의 패러다임이 javascript와 Node.js로 인해 백앤드에서 프론트앤드쪽으로 넘어오게 되면서 프론트앤드 기술을 구현할 수 있는 개발자의 몸값이 상당히 높아지고 있는 것이 사실입니다. 그래서 많은 사람들이 프론트앤드로 전향을 많이하고 있는 추세인데.. 그런 프론트앤드 개발자에게 한가지 걸림돌이 있습니다. 프론트앤드를 주력으로 하지만 어찌되었든 백앤드도 구비를 하고 있어야 한다는 점입니다. Firebase, Amazon, Express 등등.. 백앤드를 구비하는 여러가지 방법이 있으나 그중에서 아주 쉽고 직관적이며 무료로(유료도 있음) 사용할 수 있는 STRAPI라는 백앤드 툴이 ..
WEB개발이야기/Vue.js 2021. 1. 11.
Vue의 Vuetify로 대규모 프로젝트 SCSS(CSS) 진행하는 방법
안정성이 입증되었는지 요즘에는 Vue로 대규모 프로젝트를 많이 하는 추세인것 같습니다. 저도 대규모 프로젝트에 퍼블리셔로 참여하면서 얻은 경험을 기록 차원에서 포스팅을 해보려고 합니다. Vue는 하나의 파일에 구조(Template)와 구현(javascript), 표현(CSS)을 모두 다 담고 있기 때문에 풀스택(Full Stack) 개발자에게는 더할 나위 없이 편한 구조이지만 대규모 프로젝트 처럼 개발자, 디자이너, 퍼블리셔가 별도로 존재하는 경우에는 상당히 불편할 수 있는 구조를 가지고 있습니다. 개발자가 개발하는 파일을 퍼블리셔도 동일한 파일의 이번 포스팅에서는 Vue로 대규모 프로젝트를 진행할 때 퍼블리셔 관점에서 퍼블리셔와 프론트앤드 개발자와 협업을 원활히 하는 방법에 대해서 기술하려고 합니다. ..
WEB개발이야기/Git 2021. 1. 7.
Git 레파지토리 별로 사용자 지정하기
하나의 PC에서 여러 군데의 Git 레파지토리를 운영할 때 레파지토리 별로 사용자 이름과 이메일을 달리 사용해야 하는 경우가 있습니다. 보통은 글로벌하게 설정하여 사용하기 때문에 모든 레파지토리에서 커밋과 푸시를 하게 되면 동일한 이름이 사용되게 되어 있습니다. 모든 레파지토리에 글로벌하게 적용 아마도 대부분 글로벌하게 적용하는 이 방법은 아시리라 생각됩니다. $ git config --global user.name "이름 1" $ git config --global user.email "이메일주소 1" 하나의 레파지토리에만 적용 하지만 하나의 레파지토리에만 다른 이름과 이메일을 적용하는 방법은 잘 모르시는 경우가 있습니다. 바로 --global 을 --local로만 변경해 주면 됩니다. 원하는 레파지토..
WEB개발이야기/VScode 2020. 9. 7.
[익스텐션] Vscode 에서 태그명 변경 시 자동으로 닫힘 태그명까지 변경 (Auto Rename Tag)
Visual studio code의 확장 프로그램인 Extensions에는 정말 재미있고 유용한 기능들이 너무 많습니다. 그중에서 태그를 수정할 때 자동으로 닫힘 태그까지 수정해 주는 익스텐션이 있습니다. Auto Rename Tag HTML, XML, php 등 태그의 이름을 바꾸면 쌍을 이루는 닫힘 태그의 이름이 자동으로 바뀝니다. 설치하기 아래의 링크를 클릭하거나 익스텐션 메뉴에서 Auto Rename Tag를 검색 후 설치를 하면 됩니다. Auto Rename Tag 바로가기 설정하기 ▲ 먼저 파일 > 기본설정 > 설정 으로 설정창을 열어야 합니다. ▲ 좌측메뉴 중 확장 탭을 선택합니다. Auto Rename Tag configuration을 선택합니다. 이 익스텐션의 설정은 settings.js..
WEB개발이야기/VScode 2020. 9. 4.
세상 편리한 VScode 설정 동기화 하는 방법
제 메인 코딩 에디터는 VScode입니다. 서브라임텍스트, 아톰, 브라켓 등을 써봤는데 저에게는 VSCode가 잘 맞는 것 같습니다. 요즘 재택근무다 뭐다 해서 근무하는 장소나 컴퓨터가 여러 대 일 때가 있고 윈도우 쓰다 맥 쓰다 하는 저에게 코딩 환경의 일관성은 매우 중요한 요소입니다. 그런데 글쎄 VScode에서는 환경설정을 동기화 해주는 기능이 있다고합니다. 예전에는 'Shan Khan'이라는 분이 익스텐션으로 개발한 Settings Sync 를 주로 사용했었는데 언제부터인지 이 기능이 VScode에 기본으로 포함이 되어버렸습니다. VisualStudio Code 에디터의 설치와 유용한 확장프로그램(플러그인) 바로가기 여러곳에서 코딩하는 사람에게는 필수 기능이지 않을까 합니다. 설정 동기화 기능 설..
WEB개발이야기/기타 2020. 8. 11.
PWA(Progressive Web Apps) Manifest 만들기
PWA란 무엇이고 장단점은 무엇인가에 이어 웹앱 매니페스트(Manifest)를 만들고 사용하는 방법입니다. PWA의 핵심은 매니페스트(Manifest)와 서비스워커(service-worker)입니다. 그중에서 매니페스트(Manifest)는 인스톨 배너와 앱 아이콘에 대한 설정을 담당합니다. 웹앱 매니페스트(Manifest)란? 웹앱 매니페스트(Manifest)는 PWA(Progressive Web Apps)의 설치와 앱의 구성 정보를 담고 있는 json 설정파일입니다. 이 설정은 크게 아래와 같은 작업을 합니다. App Icon : 설치 시 앱의 아이콘 이미지와 크기 설정 스플래시((splash screen) 화면 : 로딩화면 설정 Start URL : 웹앱이 실행될 때 가장 처음 보여질 URL 설정 D..
WEB개발이야기/기타 2020. 8. 3.
PWA(Progressive Web Apps)란 무엇이고 장단점은 무엇인가
Google I/O 2016에서 구글은 PWA(Progressive Web Apps)라는 신기술을 소개했습니다. 신기술이라고해서 없던 기능이 나온 것은 아니고 여러가지 있던 기능이나 이론을 조합하여 앱과 웹의 장점을 합친 것이라고 볼 수 있습니다. PWA란 무엇인가? PWA에 대해 이렇다 저렇다 여러 정의들이 있지만 쉽게 생각하면 아래와 같습니다. 인터넷 웹사이트의 파일들(html, javascript, css, images같은..)을 컴퓨터에 잘~ 저장(캐싱)해 놨다가 다시 요청이 올 때 저장(캐싱)된 파일들을 먼저 보여주고 필요할 떄 웹서버에 있는 데이터를 받아서 보여주는 기술과 홈스크린에 바로가기 아이콘을 설치 할 수 있게 하는 기술, 그리고 서버의 소식을 클라이언트에 전하는 Push기술 입니다. ..
WEB개발이야기/기타 2020. 7. 31.
브라우저에서 쿠키를 삭제하는 방법
웹어플리케이션이나 웹사이트를 개발하다 보면 쿠키를 삭제 해야 하는 일이 종종 있습니다. 쿠키는 브라우저를 리로딩하거나 껏다켜더라도 정보가 남아 있기 때문에 사용자의 편의를 위해 웹개발자들이 많이 사용하는 방법입니다. 다만 실제 서비스를 할때는 유용하지만 개발을 할때는 불편한것이 사실입니다. 그래서 간단하게 쿠키를 삭제하는 방법을 포스팅해 볼까합니다. 크롬에서 URL로 삭제하기 먼저 크롬 브라우저에서 아래의 주소로 접근합니다. 주소입력창에 chrome://settings/clearBrowserData 를 입력합니다. 쿠키나 접속기록을 언제까지 삭제할 건지 기간을 선택합니다. 인터넷에 접속한 기록을 삭제할 것인지 체크합니다. 체크하면 접속 기록이 삭제됩니다. 브라우저에 쌓여있는 쿠키같은 데이터를 삭제 합니다..
WEB개발이야기/Vue.js 2020. 7. 27.
Vue에서 왕대접 받고있는 고급 에디터 컴포넌트 tiptap
Angular나 React에도 에디터 컴포넌트가 있겠지만 Vue에도 쓸만한 에디터 컴포넌트가 있습니다. Awesome Vue.js의 Rich Text Editing를 통해 알게된 에디터 컴포넌트입니다. 얼마전까지는 vue-quill-editor가 가장 많은 github Star(현재 5.8k)를 받고 있었지만 언제 부턴가 tiptap에디터가 github Star(현재 7.6k)를 넘어서 현재 1위를 달리고 있습니다. Star가 많다는 것은 그만큼 많은 사람들이 만족하게 사용하고 있다는 뜻이기도 합니다. Prosemirror를 기반으로 한 renderless 에디터라고 하네요. Prosemirror를 이번에 알게 되었지만 Prosemirror github star가 4.5k 정도이니 tiptap이 엄마보다..
WEB개발이야기/Vue.js 2020. 7. 23.
vuex-persistedstate 덕분에 Vue.js 화면을 새로고침 해도 안전해요.
Vue.js로 프로젝트를 개발하는 경우 화면을 이동 할 때 일반 웹페이지처럼 페이지 전체를 새로 고침하는 방식이 아니라 SPA(Single Page Application)와 같이 javascript로 필요한 부분만 교체하는 식으로 개발을 하게 됩니다. 이런 SPA방식의 개발은 모던한 웹사이트 개발에서 많은 잇점을 주고 있는 것이 사실이지만 몇가지 불편한 부분도 있습니다. 지금 소개하려고 하는 vuex-persistedstate는 이러한 불편을 해소해 주는 Vue플러그인이라고 생각하면 됩니다. 보통 모바일 웹이나 앱일 경우는 크게 착각하지 않는데 일반 웹브라우저에서 띄운 경우 습관적으로 뒤로가기 버튼을 클릭 할 때 화면이 새로고침이 되어 버립니다. 또는 기타 다른 이유로 화면을 새로고침하는 경우가 발생하게..
WEB개발이야기/Vue.js 2020. 7. 21.
Vue.js에서 fortawesome아이콘 라이브러리 사용하기
현재 가장 영향력 있는 무료 아이콘 제공처는 Fortawesome일 것입니다. Fortawesome은 초창기 유행하던 Font의 딩벳 형태로 아이콘을 제공하며 많은 개발자들의 사랑을 받았었습니다. Font Awesome 5를 슬기롭게 사용하는 방법 하지만 아이콘을 폰트형태로 만들어서 사용하는 방식에는 한가지 큰 문제가 있었습니다. 아이콘을 하나만 사용하던지, 100개를 사용하던지, 폰트에 포함되어 있는 아이콘을 일단 한번은 모두 다운로드 받아야 한다는 점입니다. 이럴 경우 몇개의 아이콘만 사용하면 되는데 너무 큰 트래픽의 손해를 봐야한다는 점입니다. 트래픽은 바로 비용과 연결이 되기 때문에 규모가 큰 웹사이트는 잘 사용하지 않게 됩니다. 그래서 현재 아이콘을 사용하는 방법의 유행이 fonts방식에서 SV..
WEB개발이야기/웹퍼블리싱 2020. 7. 16.
CSS position:sticky로만 레이아웃 슬기롭게 만들기
프론트엔드 개발을 하다보면 javascript를 많이 사용하게 됩니다. 하지만 javascript를 너무 많이 사용하다 보면 코드가 복잡해 지기도 하고 퍼포먼스도 점점 떨어지는 것을 느끼게 됩니다. Affix 같은 기능을 구현하려면 부트스트랩같은 특정 프레임워크를 사용하거나 별도로 개발을 해야 했으나 CSS의 position:sticky를 이용하면 javascript를 전혀 사용하지 않고도 멋진 기능을 구현해 낼 수 있습니다. sticky란 무엇인가? sticky는 CSS의 Position의 속성으로 사용되어 집니다. Fixed가 브라우저 화면의 절대 위치를 사용하는 반면 Sticky는 부모 태그의 절대위치값을 사용하는 방법입니다. 그래서 반드시 Sticky의 상위에 부모 컨테이너가 존재해야 합니다. p..
WEB개발이야기 2020. 6. 30.
javascript에서 동적으로 변수를 만들 수 있는 eval()
javascript로 프로그래밍을 하다가 보면 변수를 동적으로 생성하거나 변수와 텍스트를 결합해서 다른 변수를 생성해야 할 경우가 있습니다. 그냥 서로 합친다고 새로이 변수가 생성되는 것이 아니고 eval()라는 함수를 이용해야 합니다. eval() 함수 eval()의 괄호 안에 들어 있는 모든 내용을 스크립트로 인식을 합니다. 사용법 var key = "nara"; eval("var haha" + key + "= 100"); console.log(hahanara) => 100 위의 코드 처럼 문자열처럼 변수를 생성할 수 있습니다. hahanara 변수를 확인해 보면 결과 값은 100이 표시됩니다. 객체의 key값을 변수 형태로 사용하기 또하나는 객체를 사용할때 애를 먹었던 건데.. 객체의 key값을 기..
WEB개발이야기/Vue.js 2020. 6. 12.
Vue.js에서 Vue-infinite-loading으로 firebase(firestore) 데이터 불러오기
Vue로 웹페이지나 모바일 페이지를 제작할 때 대부분 데이터베이스를 연동해서 불러와 사용하게 됩니다. 트래픽이 많지 않거나 용량을 많이 사용하지 않을 경우 또는 개발자가 테스트용으로 개발을 할때 Google의 Firebase는 매우 유용한 서비스 입니다. 사용량이 많지 않다면 무료로 사용을 할 수 있으닌까요. 만약 게시판의 리스트 형태로 데이터를 보여 줄 경우 일반적으로 페이지를 나누어서 데이터베이스에서 긁어와서 보여주는 것이 일반적입니다. 하지만 요즘 트랜드나 모바일에서는 옛날처럼 페이지를 나누는 것이 아니라 리스트의 가장 아래쪽으로 이동 했을 때 다음 페이지를 불러와서 보여주는 식으로 많이 구현을 하고 있습니다. 그런 것을 보통 infinite-scroll 또는 infinite-loading 이라고 ..
WEB개발이야기/Vue.js 2020. 6. 11.
vue.js가 객체변수의 변화 감지를 못해 깊은 빡침이 있을 때 해결방법
근래의 javascript가 좋아진 이유 중 하나는 ajax와 더불어 실시간 데이터의 변화를 감지해서 바로바로 적용해 주는 것 입니다. vue.js도 그중에 하나라고 할 수 있습니다. vue.js는 data로 선언된 객체변수를 computed나 getters를 사용해서 조건에 부합하는 데이터를 실시간으로 filtering해서 가져올 수 있습니다. 예를들면 아래와 같습니다. data() { return { todos: [ { id: 1, name: '...', age: '...', sex: '...', done: false}, { id: 2, name: '...', age: '...', sex: '...', done: true} { id: 3, name: '...', age: '...', sex: '.....
WEB개발이야기/Git 2020. 5. 15.
오픈소스인 Gitlab의 가격정책(라이선스 정책)
Gitlab은 설치형 GIt서버로 상당히 유명하고 유용한 도구입니다. Gitlab의 CE(Community Edition)는 오픈소스로 무료로 사용할 수 있지만 EE(Enterprise Edition)는 유료로 구매를 해야 사용할 수 있습니다. Gitlab홈페이지에 접속해 보면 모든 것이 영어로 되어 있어서 한쿡인이 보면 뭐가 뭔지 이해하기 쉽지 않을 것 같아 간단하고 쉽게 전체적인 설명을 요약을 해 볼까 합니다. Gitlab은 서비스형이야? 아니면 설치형이야? 처음 Gitlab 홈페이지에 접속을 하면 프로그램 Download 버튼부터 찾는데, Download 버튼을 클릭해서 들어가 보면 이걸 다운로드 하라는 건지 회원가입을 하라는 건지 헛갈리게 되어 있습니다. 다운로드 화면에 접속을 하면 정말 우리를 ..
WEB개발이야기/Git 2020. 5. 11.
gitlab DATA 저장폴더(git-data)를 다른 위치로 변경하는 방법
Gitlab 서버를 설치하고 바로 DATA저장소 위치를 적절한 곳으로 설정한다면 아주 간단한 문제입니다. 그냥 gitlab.rb에서 git_data_dirs({"default" => { "path" => "/var/opt/gitlab/git-data" }})의 위치만 변경해 주면 되기 때문입니다. 하지만… 큰 문제는 미처 DATA저장소 위치를 변경하지 않고 운영을 하던 중 늦게 실수를 깨닫게 된 경우 입니다. "지금까지 열심히 쌓여있는 DATA는 어떻게 되는거지!!! 아!! 어떡하지.. 어떡하지…" 이런 탄식이 절로 나옵니다. 제가 그랬으닌까요 ㅠㅠ 저는 불행히도 에러를 만나고서야 무언가 잘못되었다는 것을 알게 되었습니다. 클라우드를 사용하고 있었는데 시스템이 설치되어 있는 작은 용량의 드라이브에 많은 ..
WEB개발이야기/Git 2020. 5. 7.
gitlab에서 push오류가 발생할 때 해결하는 방법
gitlab을 사용하다가 회원의 권한을 Developer로 설정했음에도 불구하고 push할 때 git did not exit cleanly (exit code 1)와 같은 오류 메시지를 내뱉을 때가 있습니다. 순간 당황하겠지만 아래의 내용을 보시면 한줄기 빛과 같은 희망을 만날 수 있습니다. gitlab의 권한체계를 보면 Guest, Reporter, Developer, Maintainer, Owner* 의 5개 권한을 운영하고 있고 push는 보통 Developer, Maintainer, Owner*의 권한에 대해서 가능합니다. 그러나 프로젝트에 따라 Developer도 안되는 경우가 있는데 아래의 설정으로 해결을 할 수 있습니다. 프로젝트 Push 설정 설정 > 저장소를 선택합니다. Protected..
WEB개발이야기/Vue.js 2020. 4. 8.
Vue에서 moment사용하기 (feat. vue-moment)
자바스크립트에서 거의 표준으로 사용되고 있는 날짜관련 라이브러리인 Moment를 Vue에서 쉽게 사용할 수 있는 라이브러리가 있습니다. vue-moment는 Vue에서 필터 형식으로 Moment를 사용할 수 있게 해 줍니다. 설치하기 설치는 아래와 같이 패키지 형태로 설치합니다. npm 패키지로 설치할 경우는 아래의 명령어로 설치하세요. $ npm install vue-moment --save 또는 yarn 패키지로 설치할 경우는 아래의 명령어로 설치하시면 됩니다. $ yarn add vue-moment 사용하기 사용하는 법은 간단합니다. 일단 해당 라이브러리를 불러와서 선언해 준다음 HTML에서 필터형태로 사용하면 됩니다. 먼저 아래와 같이 로딩 후 선언을 해 줍니다. import Vue from 'v..
