본문 바로가기
반응형

IT314

안드로이드 OS 사용률 안드로이도 OS 버전 사용비율 안드로이드 10 0% 9.0 파이 62% 8.0 오레오 16% 7.0 누가 10% 6.0 마시멜로 4% 5.0 롤리팝 2% 4.4 킷캣 1% 2019년 8월 ~ 2019년 10월 까지 3개월 간의 우리 APP 을 이용하신 분들의 사용비율이다 역시나 안드로이드 10 은 아직 범용적이지 않아서 0.01% 정도 밖에 없으시고 안드로이드 9.0 파이를 가장 많이 사용하고 있다 문제는 6.0 이하의 OS 를 사용하는 분들이 7% 정도 있기에 테스트 할 때도 핸드폰 자원부족으로 인한 문제가 발생되지 않는지 확인해 봐야 하겠다 안드로이드 OS 는 종료 정책이 잘 없는 것 같다. 구글이 OS 를 뿌렸으면 관리 정책도 선도적으로 해주면 좋겠다 2019. 10. 29.
PC Windows OS 버전별 사용현황 OS 버전 사용기간 사용자비율 (2019년) 윈도우 XP 2001년 ~ 2014년 0% 윈도우 비스타 2007년 ~ 2017년 0% 윈도우 7 2009년 ~ 2020년 1월 20% 윈도우 8 2012년 54% 윈도우 10 2015년 25% 2019년 8월~10월 3개월간의 고객 PC OS 를 확인해보니 윈도우 8 이 아직까지 54% 로 생각보다 굉장히 높았다 주변에 윈도우 8 을 사용하는 사람이 없어서 별로 이용하지 않고 있겠지 생각했었는데 의외이다 2019. 10. 29.
개발자 필수 기술 개발자 라면 반드시 영상을 보세요 아주아주아주 도움이 되는 이야기 이니 꼭 보시기 바랍니다 Hard Skills 1. Basic Knowledge (Java, OS, Python 등) Mathematics, Physics Programming Language (C++, C#, Python) Algorithm, Data Structure, Design Patterns Graphics, Database, Networking, AI OS (Windows, Mac, iOS, Android) Tools (Source control, Visual Studio) 2. Understanding for product Product Analysis Three types of restaurants 3. Development.. 2019. 10. 23.
개발자가 명심해야 할 사항 기사를 읽어보고 20년간 IT 개발 실무를 하면서 유사하게 느낀 점이 있어서 정리해봅니다 Step 1. 불필요한 개발을 하지 말 것 Step 2. 테스트를 자동화 할 것 Step 3. 설정 정보는 코드에서 분리 할 것 Step 4. 코드 가독성을 확보 할 것 Step 5. 동료 코드와 충돌나지 않게 자주 체크인 할 것 Step 1. 불필요한 개발을 하지 말 것 개발한 코드가 많아진 다는 건 관리해야 할 대상이 많아지는 것입니다 재사용이 가능한 기능이 조직내에 있는지 확인해서 있다면 보강해서 사용할 것 아무리 오픈소스를 사용한다고 해도 쉴새없이 버전업 되는 라이브러리를 관리할 수는 없으니 개발은 최소한으로 해야 나중에 고생하지 않습니다 Step 2. 테스트를 자동화 할 것 복잡한 요구사항을 해결하기 위해서.. 2019. 10. 23.
git 줄바꿈 문제 (warning: CRLF will be replaced by LF in .gitignore) 현상 git 명령 실행시에 경고 문구가 나타난다 (CRLF will be replaced by LF ) 원인 줄바꿈 처리 방법이 Windows OS 와 Mac/Linux OS 가 상이해서 그렇다 OS Windows Mac / Linux 줄바꿈처리 방법 CR (Carriage-Return) LF (Line Feed) LF (Line Feed) 해결방법 Windows OS 사용자는 git 에 적용시에 줄바꿈을 LF 로 변환시켜서 저장한다 적용방법 방법 1 git config --global core.autocrlf true git 전역설정의 autocrlf 를 true 로 설정한다 git commit 시에 자동으로 CRLF => LF 로 전환해주고 git checkout 시에 자동으로 LF => CRLF 로.. 2019. 10. 17.
Node.js (쿠키와 세션 처리) 쿠키 저장 app.get("/savecookie", function(req, res){ let option ={ maxAge : 365 * 24 * 60 * 60 }; //save cookie res.cookie("cookiename", "cookievalue", option); res.render("savecookie.ejs"); }); 쿠키 호출 app.get("/loadcookie", function(req, res){ let req_data = { cookie1 : req.cookies.cookiename }; //load cookie res.render("loadcookie.ejs", req_data); }); 세션 저장 app.get("/savesession", function(req, res.. 2019. 10. 17.
Node.js express (게시판 기본구조) 가장 기본이 되는 게시판을 만들면 아래와 같이 프로세스 처리와 화면 분기를 시켜주는 js 파일과 UI 영역을 담당하는 ejs 파일로 구분된다 //main.js var express = require("express"); var ejs = require("ejs"); var app = express(); app.set("views", __dirname + "/views"); app.set("view engine", "ejs"); app.engine("ejs", ejs.renderFile); app.use(express.static("public")); var controller1 = require("./router/root")(app); var controller2 = require("./router/bb.. 2019. 10. 17.
Node.js express (Html 탬플릿 ejs) HTML 을 별도의 파일로 빼어서 관리하기 위해서 ejs 모듈을 사용합니다 EJS ( Embedded JavaScript templates ) 설치방법 npm install ejs package.json 파일에 ejs 모듈이 추가 되어있는 걸 확인할 수 있습니다 { "name": "nodebasic", "version": "1.0.0", "description": "", "main": "main.js", "dependencies": { "ejs": "^2.7.1", "express": "^4.17.1" }, "devDependencies": { "eslint": "^6.5.1" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }.. 2019. 10. 15.
Node.js express 모듈 (Node 웹 프레임워크) express 모듈이란? http 모듈의 업그레이드 판 이라고 생각하면 됩니다 weekly 다운로드가 1천만이 넘는 가장 범용적인 web framework 입니다 nodejs URL : https://www.npmjs.com/package/express 설치방법 npm install express 사용방법 get : get 방식으로 요청이 발생했을 때 호출될 함수를 등록 post : post 방식으로 요청이 발생했을 때 호출될 함수를 등록 listen : 서버를 가동 라우팅처리 쇼핑몰의 경우 200개가 넘는 페이지가 있어야 하고 수많은 페이지를 한 파일안에서 표현하면 유지보수가 어려우니 파일을 분리해서 처리해준다 서버가 실행되면 node_router.js 에서 express 가 실행상태가 되고 root... 2019. 10. 14.
Node.js NPX 패키지 실행 NPM 5.2 버전 이상에서 npx 커맨드가 추가 되어있다 용도는 패키지를 설치하지 않고 실행하는 커맨드 이다 npx 를 사용할 때 npx create-react-app react-todo npx 를 사용하지 않을 때 npm install -g create-react-app create-react-app react-todo NOTE : npx 를 사용하면 create-react-app 패키지를 글로벌로 설치하지 않아도 실행시킬 수 있다 1회성으로 실행할 패키지들은 설치하지 않고 npx 로 실행하면 좋다 2019. 10. 14.
Node.js NPM 패키지 관리하기 Node 프로젝트 생성 npm init 커맨드를 사용해서 프로젝트 설정을 합니다. package name version description git repository keywords license package.json 파일이 생성됩니다 패키지 일괄 설치 package.json 파일을 수정하고 npm install 커맨드를 실행하면 package.json 파일에 등록된 패키지를 설치해줍니다 신규 패키지 설치 런타임시에 사용하는 패키지 설치 npm install 패키지명 커맨드를 사용하여 원하는 패키지를 설치 합니다 옵션없이 설치하면 런타임시에 사용하는 패키지로 설치됩니다 예 : moment, moment-timezone 프로젝트 디렉토리 아래 node_modules 에 설치됩니다 개발할 때만 사용하는 .. 2019. 10. 14.
Node.js 패키지 관리 Node 를 설치하면 모듈을 관리하는 NPM (Node Package Manager) 과 NPX 가 기본으로 설치되어 있습니다 명칭 설명 NPM Node Package Manager 의 약자로 Nodejs 를 설치하면 자동으로 설치된다 NVM Node Version Manager 의 약자로 여러 버전의 Nodejs 를 설치하고 사용할 수 있게 해준다 NPX Npm Package Runner 로 npm , yarn 으로 글로벌 패키지를 설치하지 않고도 명령을 사용할 수 있게 해준다 YARN Facebook 이 만든 JavaScript Package Manger 입니다. NPM 보다 빠르고 좋다 라고 Facebook 이 이야기 합니다 여러가지 Node 버전을 사용하기 위해서는 OS 별로 아래의 프로그램을 설.. 2019. 10. 14.
Node.js 모듈 Node.js 의 버전이 빠르게 변하면서 버전별로 함수들이 deprecated 되는 경우가 있으니 항상 확인해서 사용하셔야 합니다. Nodejs 공식문서의 document 를 보면 여러가지 다른 모듈명이 있으나 Stability: 2 - Stable. 안정적인 모듈을 사용해야 합니다. Nodejs 기본모듈 리스트 모듈명 설명 공식설명예제 assert 표현식이나 값을 테스트한다 LINK buffer 바이너리 데이터를 처리한다 LINK cluster 단일 스레드를 멀티 프로세스로 분할한다 LINK crypto 암호화 처리를 한다 LINK dns DNS 조회 및 이름 확인을 한다 LINK events 이벤트를 처리한다 LINK fs 파일 시스템을 처리한다 LINK globals 모듈 생성하지 않고 사용할 수 .. 2019. 10. 14.
Node.js 기본 프로그래밍 Step 1. Nodejs 개요 Step 2. 개발환경 만들기 Step 3. 기본기능 Step 1. Nodejs 개요 Nodejs.org의 Node.js에 대해서 : LINK wiki 의 Node.js 란 : LINK Chrome V8 (자바스크립트 엔진) 으로 빌드 된 이벤트 기반 자바스크립트 런타임 환경 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다 특징 Non-blocking I/O : 비동기적 처리를 한다 단일 스레드 : 한번에 한가지 일만 처리한다 이벤트 기반 : 이벤트가 일어나면 큐에 쌓이고 이벤트 루프가 큐에 쌓인 이벤트를 가져다가 스택에서 처리 Step 2. 개발환경 만들기 Nodejs.org 에서 Nodejs 를 다운받아서 설치합니다 : Nodejs 다운로드 URL 짝수 .. 2019. 10. 11.
JAM Stack JAM Stack 이라고 해봐야 백엔드의 극단적인 간소화로 표시한 Stack 이라고 생각된다 DATA 와 비즈니스 로직이 적은 블로그나 정보성 사이트들은 충분히 JAM Stack 으로 구현해도 될 듯 하다 최근 몇년간 Frontend 기술이 빠르게 발전하면서 Frontend 기술들만 표현되고 Backend 가 너무 축약되어 표현되는 것 같다 사진을 봐도 Backend 는 APOLLO, GraphQL 이면 다 되는 것 같이 그림을 그려버렸다 백엔드의 프로세스를 서비스 형태로 지원 받을 수 있다면 맞지만 일반적인 비즈니스 로직을 만들어서 운영하는 곳에서는 저렇게 단순하게 표현하지 못할 것 이다 그냥 JAM Stack 이란 것도 있다 정도만 알고 지나가면 될 듯 하다. 2019. 10. 2.
마크다운 문법 Markdown 소스를 작성하고 설명문서를 만들 때 마크다운 문법을 사용해서 Readme 파일을 작성한다 기본적인 문법 6가지 표현방식만 알면 사용하는 데 문제 없다 헤더 목록 링크 강조 이미지 인용/코드 Step 1. 헤더는 큰제목, 작은제목, 글머리 1~6 으로 표현한다 큰제목은 ====================== 작은제목은 ----------------------------------- 글머리는 # 을 ## ### #### ##### ###### Step 2. 목록은 순서있는 목록과 순서없는 목록으로 표현한다 순서있는 목록은 1. 2. 3. 순서없는 목록은 * , + , - Step 3. 링크 [Title](link) 로 표현한다 Step 4. 강조 *single asterisks* _single unders.. 2019. 10. 2.
무료 HTML5 Video Players 모바일 방송 서비스를 AWS MediaLive 로 변경하는 작업을 하고 있는데 웹브라우저에서 HLS 파일을 볼 수 있는 무료 Video Players 를 찾아보고 있다 무료 HTML5 Video Players 1. VideoJS (https://videojs.com) 제일 많이들 사용하는 videojs 이고 우리도 이걸로 전환하고 있다 plugin 도 양호하고 오픈소스에 사용 예제도 많이 찾아볼 수 있다 네이버 클라우드에서 video Player 사용 가이드도 배포 중이다 (https://docs.ncloud.com/ko/media/media-4-1.html) 2. afterglow ( http://afterglowplayer.com/ ) PRICING 이라고 표시되어있으나 누르면 No Pricing 이.. 2019. 9. 19.
팀원 채용합니다 왜 이리 사람 뽑기 힘든지 (유통 개발자) 직무 : DevOps 엔지니어 주요업무 - AWS 퍼블릭 클라우드와 기존 IDC 서버 시스템이 하이브리드로 구축된 인프라를 개선 - DevOps의 보편화를 위해 기술전파와 운영 프로세스 개선 - 어플리케이션 서비스 모니터링, 로깅 및 알람 구성 자격요건 - 총 경력 8년 이상 (AWS 경험 2년 이상) - 퍼블릭 클라우드 구축 경험 - 다음 중 하나의 언어를 이용한 업무 자동화 가능 : Python, Node.js, Go - 클라우드 기반 시스템 구축 & 운영 자동화 경험 (Ansible, Chef, AWS cloudFormation, AWS SAM 등) - 마이크로서비스 아키텍처에 대한 이해와 경험 - CI/CD 구축 & 운영 경험 우대사항 - AWS Solu.. 2019. 9. 3.
CIDR IPv4 변환 이젠 당연히 CIDR 로 표기 하는데 IP 대역 확인할 때 마다 변환하기 귀찮다 사이트에서 변환해서 확인하면 편하니 여기서 변환하시면 됩니다 CIDR 변환 URL : https://www.ipaddressguide.com/cidr CIDR to IPv4 Address Range Utility Tool | IPAddressGuide Free IP address tool to translate IPv4 address range into CIDR (Classless Inter-Domain Routing) format and vice-versa. www.ipaddressguide.com 2019. 8. 19.
웹 개발 프레임워크 홍수 웹개발을 하면서 점점 생산성을 높여주는 프레임워크들이 쏟아져 나오고 있는데 프레임워크들을 너무 무분별하게 사용하면 안된다는 경각심을 이야기 하는 사진이다 대다수의 프레임워크나 라이브러리들이 의존성을 가지고 있는데 나중에는 의존성 지옥에 빠질 가능성이 굉장히 높다 라이브러리 한개 깔아보면 생각지도 못한 의존성 파일들이 무진장 깔리는 모습을 쉽게 발견할 수 있다 npm 설치시에 의존성 파일의 수와 어떤 것들이 깔려야 하는 지 확인하는 습관을 들이자 2019. 8. 16.
Frontend 웹개발 연습환경 관련사이트 CODEPEN : 온라인 코딩 사이트 Emmet Documentation : HTML, CSS 작성 툴킷 문법 HTML Cheatsheet : HTML 문법 요약 파일 codepen 사이트에서 코딩을 하면 바로 결과를 볼 수 있습니다 codepen 사이트에 emmet 적용이 되어 있어서 html 작성시에 반복적인 코딩을 줄 일 수 있습니다 NOTE : emmet 문법 입력 후에 TAB 키를 누르면 html 로 변환됩니다 html 에 아예 모르신다면 html cheatsheet 를 출력해서 참고하시면 편합니다 2019. 8. 16.
OOP 프로그래밍의 함정 일반적인 프로그래머들의 한계를 넘는 OOP 로 인해서 오히려 더 코드가 똥이 된다는 이야기 엄청나게 공감이 된다 2019. 8. 16.
서버리스 api gateway 도메인 적용 목표시스템 AWS api gateway 에 도메인을 적용해서 사용하자 사용기술 serverless framework : 서버리스 개발 프레임워크 serverless-domain-manager : serverless framework 의 도메인 관리 플러그인 api gateway : AWS API gateway 서비스 lambda : AWS 서버리스 서비스 도메인적용방법 Step 1. 도메인 관리 플러그인 설치 (serverless-domain-manager) Step 2. 서버리스 프레임워크의 환경설정에 도메인 설정 추가 Step 3. 커스텀 도메인 생성 Step 4. 서버리스 배포 Step 5. 커스텀 도메인 삭제 Step 1. 도메인 관리 플러그인 설치 (serverless-domain-manager.. 2019. 8. 14.
소스코드를 이미지로 만들기 polacode 매뉴얼을 작성한다던지 블로그를 쓴다던지 github 의 readme 를 만들때 소스코드를 이미지로 만들어야 하는 경우가 생기는데 vscode 의 plugin 인 polacode 를 사용하면 정말 깔끔하고 쉽게 이미지로 만들 수 있습니다 Polacode 사용법 Polacode 를 실행하고 소스코드만 드래그 하면 자동으로 이미지 형태로 만들어 진다 이미지를 저장해서 어디서든 사용하면 된다 2019. 8. 13.
티스토리 소스코드 꾸미기 티스토리에 소스코드를 추가하면 가독성이 떨어지게 보인다 가독성을 높이는 방법을 정리해보자 첫번째. gist 추가하기 티스토리 에디터의 코드블럭 대신에 깃허브의 gist 서비스를 사용합니다 단점 : 일일이 gist 를 만들고 html 모드로 추가해야 해서 번거롭다 장점 : gist 로 만들어 놓으면 여러 곳에 재사용이 가능하다 작성한 gist 는 embed 로 복사해서 티스토리 에디터의 HTML 모드에 소스를 넣습니다 두번째. 코드블럭 테마 적용하기 highlight.js 테마를 적용합니다. 티스토리 관리 > 꾸미기 > 스킨편집 > html 편집 메뉴에서 head 태그 사이에 css 와 js , 그리고 실행 메소드를 넣습니다 테마를 변경하고 싶으면 https://highlightjs.org/static/d.. 2019. 8. 12.
서버리스 사이트 스크린샷 찍기 (예전방식) 초기에 서버리스 개발방법 배우면서 참고했던 내용입니다 ​방식은 phantomjs 사용해서 URL 변수로 받는 도메인에 접근해서 스크린 샷을 찍고 사이즈 별로 썸네일을 만드는 서버리스 함수 입니다 https://svdgraaf.nl/2016/09/28/Serverless-Screenshot-Service-With-Lambda.html 최근에는 Phantomjs 가 puppeteer 프로젝트 때문에 문 닫았고 썸네일 같은 경우는 미리 만들지 말고 람다 엣지를 이용해서 sharp 모듈로 고객의 웹브라우저에 맞게 webp 형태의 이미지로 제공하는 게 효율적입니다 cloud-front 가 알아서 캐쉬하게 만들면 썸네일을 미리 안만들고도 좋은 성능을 낼 수 있습니다 ​ 요즘 사용하는 방식은 나중에 포스팅 할 예정입.. 2019. 8. 12.
서버리스 웹브라우저 한글폰트 적용하기 문제점 한중일 3개 국가는 프로그래밍 할 때 항상 폰트가 문제 됩니다 puppeteer 을 사용하면서 크로미움을 쓰는데 한글이 지원되지 않습니다 (로컬 윈도우에서 실행시에 로컬PC에 이미 한글폰트가 깔려있어서 한글이 제대로 나옵니다) ​서버리스로 함수 배포하면 한글폰트가 없는 크로미움 웹브라우저가 배포 되기 때문에 한국어 사이트 접속시 한글이 다 깨집니다 한글폰트적용법 한글폰트를 적용하는 두가지 방법이 있습니다 첫번째. 웹폰트를 적용한다 두번째. 크로미움 브라우저를 만들고 한글폰트까지 묶어서 배포 한다 ​ 첫번째 방법. 웹폰트로 한글폰트 적용하기 Step 1. 한글폰트를 다운받기 Step 2. S3 에 한글폰트를 업로드 합니다 Step 3. chrome-aws-lambda 모듈을 사용해서 S3 에 올린 .. 2019. 8. 12.
넷플릭스 시청중인 콘텐츠 삭제 방법 넷플릭스에서 영화를 실행하면 시청 중인 콘텐츠로 등록이 됩니다 문제는 영화를 다 보면 없어지는데 리뷰를 쓰려고 다시 클릭을 하거나 조금 보니 정말 재미 없는 경우 (특히 시리즈 물들) 시청 중인 콘텐츠 리스트를 차지 하게 됩니다 삭제 방법 Step 1. 계정 정보를 클릭합니다 Step 2. 시청 기록을 클릭한다 Step 3. 시청기록에서 시청기록 숨기기를 누른다 NOTE : 모바일도 동일하게 더보기 메뉴에서 계정 > 시청기록 > 시청기록 숨기기 하시면 됩니다 Step 1. 계정 정보를 클릭합니다 Step 2. 시청 기록을 클릭한다 Step 3. 시청기록에서 시청기록 숨기기를 누른다 2019. 8. 11.
서버리스 네이버 검색어 가져오기 (serverless) 목표시스템 네이버의 급상승검색어에 접속하여 전체연령대의 실시간 랭킹 검색어를 가져와서 메신저로 공유하는 시스템을 만든다 (두레이) ​ 결과물 네이버 급상승검색어 검색어내용을 두레이 메신저로 전달 ​ 개발환경 설정하기 서버리스 개발환경 설정은 이전의 포스팅 참고해주세요 package.json node 8.10 을 사용하는 이유는 chrome-aws-lambda 가 아직 node 8.10 버전까지만 지원하기 때문입니다 node 버전 제한이 빠져있지만 node 8.10 버전을 사용해주세요 ​ 운영시 사용하는 모듈 · puppeteer : 구글의 크롬 핸들링 모듈 · chrome-aws-lambda : 람다가 사용할 크로미움 브라우저 모듈 (puppeteer 은 웹브라우저가 반드시 필요하다) · request .. 2019. 8. 9.
서버리스 AWS IAM Key 수명관리 목표시스템 AWS 계정관리에서 Access key 를 90일만 사용하도록 권장하고 있다 보안 때문이라도 90일 넘는 Access key 는 삭제하고 다시 새로운 Access key 를 만들어서 사용해야 한다 하지만, 사용자들은 Cli 로만 접근해서 사용한다면 90일 지났는지 알 수 없다 (AWS 콘솔로 들어가야지 확인가능하다) ​ 그래서 람다로 스케쥴을 걸어서 매일 Access key 가 90일이 지난 사용자들이 있는 지 확인해서 90일이 지난 Access key 를 가지오 있는 사용자들에게 메시지를 보내서 알 수 있게 하려고 한다 ​ 사용하는기술 Javascript : 그냥 요즘 javascript 를 많이 쓰고 있어서 serverless framework : 서버리스 프레임워크 중에서 제일 맘에 들어.. 2019. 8. 7.
반응형