tag: outdated

교통사고 과실 비율 손해액 계산 구글시트

2 Apr, 2022 - 2 minutes
최근에 교통사고가 발생했습니다.교차로에서 발생한 사고인데요, 작은 도로에서 우회전으로 나가려는 중이었고, 상대는 큰 도로에서 좌회전으로 제가 있던 도로로 들어오려는 상황에 두 차의 정면의 구석부분이 부딪쳤습니다. 동네에서 벌어진, 작은 사고 였습니다. 찾아보니 비슷한 상황은 비정형으로 분류되어 있습니다. https://accident.knia.or.kr/special-content?chartNo=C6 과실 비율을 따지는 일은 서로 의견이 다른 상황입니다.저는 제가 먼저 들어와 있는 상황에 중앙선을 물고 들어왔으니 중앙선 침범 또는 […]

AWS Certified Solutions Architect – Associate 자격 취득

16 Jan, 2021 - 2 minutes
꾸준히 AWS관련 업무를 맡아왔다. 업무로 다뤄 본 영역은 잘 알지만 다른 영역들은 전혀 모르는 부분들이 많았다. 매뉴얼을 읽을 때마다 전체를 조망하는데 어려움을 느꼈고 한번쯤은 몰입해 살펴봐야겠다고 생각해왔다. 2020년 11월 쯤 되니 한 해가 가는 것에 대한 조바심이 들었다. 가시적인, 스스로를 위한 성과가 필요하다고 생각했다. 그래서 미뤄뒀던 AWS SAA자격 취득을 준비했다. 학습자료 우선 예전 할인 때 사놓은 Udemy의 관련강의를 […]

ECS – API애플리케이션 – S3 웹리소스 고정아이피 구성

30 Jun, 2020 - 2 minutes
ECS로 구성된 애플리케이션의 웹 리소스의 고정아이피 구성이 필요했다. 가끔 유용하게 활용할 수 있는 사례라 구성도를 따로 그려봤다. 문제정의 애플리케이션 서버는 ECS – Fargate – ALB 환경으로 구축 S3에 웹 리소스가 배포됨. 애플리케이션 서버와 웹리소스에 고정아이피 주소 필요 백엔드와의 연결은 HTTP만 사용해도 됨. 해결 Network Load Balancer에 고정아이피를 설정 NLB는 포트라우팅만 지원하므로 Nginx의 virtual server 설정으로 […]

AWS ALB Target Group의 Draining 이 너무 길다면

11 May, 2020 - 1 minutes
최근 ECS를 도입하면서 Rolling Deploy 를 적용했다. 이전에는 EC2인스턴스마다 방문하면서 배포를 했다면 이제는 새로운 Fargate기반 태스크가 생성되면서 기존 태스크는 없애는 방식으로 배포된다. 테스트를 진행하다보니 ALB Target Group에 등록된 아이템이 Draining에 걸리는 시간이 긴 것이 눈에 들어왔다. 기본값으로 이 값은 300초가 주어지기 때문에 트래픽이 많지 않거나 커넥션을 오래 유지할 필요가 없다면 이 시간만큼 Fargate인스턴스를 더 사용하는 […]

Docker Entrypoint와 쉘 함수의 사용

30 Apr, 2020 - 1 minutes
Docker 컨테이너는 Entrypoint를 가지고 있어서, 컨테이너를 하나의 실행파일처럼 동작할 수 있게 해준다. An ENTRYPOINT allows you to configure a container that will run as an executable. https://docs.docker.com/engine/reference/builder/#entrypoint 이를 이용해 때때로 활용하는 기법이 있는데, Entrypoint를 쉘 함수로 엮어 사용하는 방법이다. 최근 Jenkins에 AWSCLI v2를 사용해야할 일이 있었다. 이미 aws v1이 시스템 전체에 설치되어 운영되고 있기 때문에 […]

AWS MySQL Aurora 최대 접속수 수정방법

19 Feb, 2020 - 1 minutes
오랜만에 Aurora MySQL의 최대 접속수를 다시 지정했다. 개발용도의 데이터베이스는 사용량은 작지만 여러 프로젝트들이 connection pool 을 생성하니 기본 정의값보다 올려서 사용하는 경우가 종종있다. max_connections를 다시 지정한 파라미터 그룹으로 교체하면 된다. 이건 TIL이라 할 것도 없다. 하지만 글로 남기는건 10분이면 될 일을 1시간이나 헤맸기 때문. 클러스터 파라미터그룹과 인스턴스 파라미터 그룹 양쪽에 max_connections가 있다. 파라미터 수정 후 […]

Jenkins 역할기반 전략으로 프로젝트 권한지정하기

14 Feb, 2020 - 2 minutes
Jenkins의 Security Rule 중 Role Based 플러그인을 사용한 사용자 권한 설정을 했다. Manage Jenkins > Configure Global Security 의 Authorization 에서 Role-Based Strategy를 선택한다.(Enable security 상태) 이후  Manage Jenkins > Manage and Assign Roles 화면에서 역할을 추가하고 사용자에 역할을 지정할 수 있다. Manage Roles 역할을 추가, 편집, 삭제한다. 전역(Global)과 프로젝트별 역할이 있다. Assign Roles Manage […]

GCP BigQuery Schema 구성 팁

12 Feb, 2020 - 2 minutes
생성은 CSV를 통하면 편리하다. BigQuery의 테이블스키마는 생성할때 UI가 꽤 불편한 편이다. 그래서 텍스트로 편집 옵션이 있기도 하지만 타이핑하기 좋지 않은 신택스를 가지고 있어서 CSV업로드로 자동생성하는 편이 개인적으로는 가장 편했다. CSV 파일 업로드는 10MB까지만, 그 이상은 Cloud Storage 등에서 가져와야 한다. CSV가 다룰 수 있는 데이터 타입에는 한계가 있다. 예를들어 날짜시간 등을 사용하고자 하면 메뉴얼의 Limitation부분을 […]

AWS NAT 인스턴스의 가성비 확인

9 Jul, 2019 - 3 minutes
AWS의 Private Subnet에 있는 인스턴스가 외부와 통신하려면 NAT를 활용해야한다. 그렇다면 NAT인스턴스를 만들어 사용할지, NAT 게이트웨이(Gateway, 이하 GW)를 사용할지 결정해야 한다. AWS VPC 와 서브넷 VPC의 NAT Gateway 가격은 서울리전에서 $0.059 이다. 1달이 월 720시간이라면 Multiple AZ를 고려해 2개를 설치하면 월 $84.96, 약 10만원의 추가부담이 생긴다. NAT Instance로 구성한다면 EC2 1년 선결제 없는 경우의 예약 인스턴스 […]

AWS VPC 와 서브넷

3 Jul, 2019 - 1 minutes
AWS 의 VPC는 리전 내에 위치하고 서브넷은 AZ내에 위치한다. 한 VPC에 AZ에 대해 여러 서브넷을 둬서 고가용성(HA)를 확보할 수 있다. 서브넷의 통신 방법은 VPC의 라우팅 규칙(Route Tables)을 따른다. 라우팅 규칙은 아이피 대역(CIDR)에 따라 타깃을 설정할 수 있고, 서브넷에 붙이는(associate) 방식으로 서브넷의 통신 방법을 설정할 수 있다. 서브넷과 라우팅 규칙은 1:n 관계이다. 각 서브넷은 한개의 라우팅 […]

원격근무의 필수조건, AWS에 OpenVPN 구축기

17 Nov, 2018 - 5 minutes
근무중인 세븐핀테크는 설립 때부터 리모트 근무에 높은 가치를 두고 실천해오고 있다. 각 멤버는 인천 송도, 천안, 제주에서 근무하고 있다. 세븐핀테크는 주식 고수의 실시간 계좌를 열람하고 거래 알림을 받는 모바일 앱 월스트릿파이터를 개발, 운영하고 있다. 집이나 도서관, 카페 등 본인이 편한 곳에서 근무하기 때문에 모든 사내 리소스는 물리적인 공간에 두지 않으며 클라우드(주로 AWS)에서 운영된다. 그러나 보안 […]

sami-parser 와 개발자의 매너

4 Jun, 2016 - 3 minutes
한국에서는 자막으로 주로 SMI 파일을 사용한다. 이 포맷은 MS 가 만들었고 한국에서는 자주 쓰이지만 전세계적으로 봤을 때는 많이 쓰이지 않는다. 대신 SRT 파일이 많이 사용된다. 그래서 외산 플레이어들이나 디바이스들은 잘 지원하지 않는다. 윈도우 계열에서 손을 뗀지가 벌써 10여년이라, 영상을 즐길 때 SMI 파일들은 항상 스트레스였다. 그래서 만든 프로젝트가 Sami-paser 였다. 일단, SMI 파일들을 제대로 파싱할 […]

슬쩍 떠보는 npm 과 package.json

21 Jul, 2015 - 6 minutes
GruntJS 와 같이 Node.js 로 만들어진 유틸리티들은 npm 을 통해 설치하고 사용하는 것이 쉽고 편리하다. 하지만 Node.js 를 깊이 공부해보려는 목적이 아니라면 굳이 npm 에 대해 깊이 알 필요는 없다. 그런 사람들과 입문자들을 위해 npm 을 통한 패키지의 설치/제거방법과 package.json 에 대해 간단히 알아보려고 한다. npm 는 Node Package Manager 의 약자이다. 보통 npm 은 […]

Google Spreadsheet 로 쉽고 빠른 Backoffice 구축

12 Jul, 2015 - 6 minutes
Google IO Extended Seoul 에 다녀왔다. 나는 C 홀에 있었는데 라이트닝 토크 세션이 있고 그 자리에서 발표신청을 해도 된다길래 즉석해서 “스타트업 개발자의 수고를 줄여주는 GoogleSpreadsheet” 라는 주제로 자료를 만들어 발표했다. 5분은 짧은 시간이었지만 개괄적으로 이야기하기에는 충분한 시간이었다. 세션 후에 적극적으로 질문 해주시는 분들을 보고 나에게만 고민스러웠던 주제가 아니구나 하는 생각을 하게 됐다. 발표자료를 공유하고 더 […]

구형 맥북프로, 연속성 기능 활성화 성공

OSX Yosemite(v10.10) 이 되면서 혁신적이었다고 평가받는 것은 바로 연속성 기능 이다. 이 기능은 맥과 iOS 를 오가며 실행하던 애플리케이션을 끊김없이 실행할 수 있는 기능이다. 현재 가지고 있는 맥북은 Macbook Pro 15” 2011 Early CTO 버전이다. 물론 이미 노쇠했지만 개인적인 사정으로 은퇴하지 못하고 꾸준히 부품을 교체하며 버티고 있다. 하지만 현재 가지고 있는 모델이 연속성 기능이 제대로 […]

중첩된.오브젝트.프로퍼티.가져오기.성공적 = getobject 

TypeError: Cannot read property ‘..’ of undefined 는 매우 흔히 발생하고 오랫동안 개발자를 괴롭혀온 에러다. 이 에러는 오브젝트의 프로퍼티에 접근하려 하는데 그 오브젝트가 undefined 인 경우 발생한다. 즉, 아래 같은 상황이다. > var opt = {}; undefined > opt.a.b.c.d TypeError: Cannot read property ‘b’ of undefined … > 특히 API 연동처럼 외부에서 생성된 오브젝트를 가져와 […]

스타트업, 제품 시장 궁합과 고객찾기 – 사내 그로스 해킹 세미나

재직하고 있는 KStyleTrip 에서 그로스 해킹(Growth Hacking) 관련 세미나를 했다. 그로스 해킹에 대해 위키피디아에서는 이렇게 정의한다. 그로스해킹이란 기술기반 스타트업에서 개발된 마케팅 기법으로 (기존의 것과 다른) 창의적인 방법, 분석적인 사고, 소셜 지표 등을 통해 제품을 노출하고 판매하는 것이다. (Growth hacking is a marketing technique developed by technology startups which uses creativity, analytical thinking, and social metrics […]

Google Chrome 에서 Grunt 사용하기

KStyleTrip 에서는 프론트엔드 영역에서 디자이너와 개발자가 협업하고 있다. 나는 사실 HTML CSS 를 어느 수준으로 다루기는 하지만 퍼블리셔는 아니어서 픽셀 단위의 디테일을 구현하는데는 어려움이 있다. 디자이너는 디자이너 대로 원하는 만큼의 디테일을 구현하기 어려워하는 내 모습을 보기 안타까워 했다. 그래서 현실적인 수준에서 협업을 시작했다. 개발자가 디자인을 보고 큰 덩이에 대해 마크업과 CSS 처리를 하면 디자이너가 원하는 […]

OS X, Case Sensitive 볼륨을 Case Insensitive 볼륨으로 변경하기

최근 들어온 정보에 따르면 El Capitan 에서는 HFS+ 의 Case Sensitive 볼륨을 만들 수 없게 되었다고 합니다. 자세한 사항은 정식버전 출시 후 업데이트 하겠습니다. OS X 디스크 볼륨은 파일의 대소문자를 구분하지 않는(Case Insensitive) 것이 기본값이다. 하지만 주 업무가 리눅스 서버에 설치되는 프로그램들을 만들다보니 가끔 파일 이름에서의 실수가 발생하는 경우가 있었다. 예를들어 파일이름은 foo.json 인데 프로그램에선 […]

Git Merging 과 Rebase 의 상황별 사용법

Git 을 사용하기 시작한지가 벌써 3년이다. 한번은 문상환님하고 Git 의 Merge branch 커밋에 대해 이야기를 한 적이 있다. 대화가 진행될 수록 Rebase 와 Merge 를 머리로만 알고 있을 뿐, 제대로 이해하지 못하단 걸 알게됐다. 일종의 산파법이랄까. Git 에서 코드를 합치는 방법에 대해 탕수육의 뿌먹파와 찍먹파처럼 Rebase 파와 Merging 파가 있다. 나는 Merging 파였다. Rebase 에 […]

핸드스튜디오 사내강의 “Git+, Git 조금 더 배워보기”

4 Apr, 2015 - 1 minutes
2013년 핸드스튜디오와 연이 닿아 프로젝트를 함께 진행한 적이 있었다. 개인적으로 매우 잘 아는 유명한 회사이다 🙂 당시 핸드스튜디오는 Git 을 사내 버전 관리시스템으로 도입한 초기였고, 그 과정에서 도움이 되고싶어 사내강의를 자처했다. 당시 “svn 능력자를 위한 git 개념 가이드” 라는 아주 좋은 슬라이드가 있어 도입초기에는 이 슬라이드를 교안으로 강의를 진행했고, 이후 조금 더 잘 사용해보자는 의미에서 […]

Undefine:D 에서 발표한 “GruntJS로 개발프로세스 구축하기”

16 Nov, 2014 - 1 minutes
페이스북의 Undefine:D 정기세미나에서 “GruntJS로 개발프로세스 구축하기” 를 발표하게 되었다. GruntJS 는 어떤 플러그인을 어떻게 사용하는지에 성패가 달려있다고 생각하기 때문에 기초보다는 사용하고 있는 플러그인 위주로 발표했다. 기초에 대해서는 이전에 많은 분들이 소개를 하셨기 때문에 발표로서의 차별화도 고려했다. 조직에서 사용하기 위해서는 구성원을 납득시킬 수 있어야 하기 때문에 도입에 대해 확신을 가질 수 있도록 장점을 보여줄 수 있는 […]

구글애널리틱스 IQ 시험 후기

스타트업에 있다보니 지표 측정이 중요하다. 아무래도 경력이 있다보니 어깨너머로 들은 지식들은 있지만 지표측정에 대해 정확히 안다고 이야기할 수는 없었다. 그렇다고 요즘 유행하는 강의를 듣기에는 비용부담이 만만하지 않았다. GA 강사들의 프로필을 보다보니 Google 애널리틱스 공인 전문가(GAIQ)가 빠지지 않는다는 것을 알게 되었다. 아직은 회사규모가 지표만 분석하는 사람을 뽑기에는 어려움이 있어서 내가 공부하고 적용해보기로 마음먹었다. 그렇지 않아도 GA 와는 인연이 있다. 예전 KTH 에 입사해 처음 작업한 일이 바로 이벤트 측정 코드를 곳곳에 심는 일이었다. 그렇게 대략 200개 정도의 이벤트 코드를 꽂았다.

Dockerfile – ADD 를 통해 build 캐시막기

31 Aug, 2014 - 1 minutes
Dockerfile 을 수정하고 다시 빌드할 때 cache 덕분에 빠르게 재실행이 가능하다. Dockerfile 의 명령라인이 변경되지 않으면 자동으로 캐시가 작동하게 되는데 가끔 이 기능이 불편할 때가 있다. Node 개발용 서버를 구축하는 중에 이런 경우를 만났다. “git pull“ 을 하고, 의존성 해결을 위해 “npm install“ 을 하는 플로우인데, “RUN git pull“ 행이 변경되지 않으니 계속 캐시가 작동했다. 캐시를 작동하지 않게 하는 명령을 추가하는 것에 대해 이 곳에서 계속 논의가 진행중인데, 이 이슈를 살펴보다 랜덤스트링을 추가하는 괜찮은 방법을 알게

어느 스타트업의 백오피스 인증 구현기

27 Jul, 2014 - 5 minutes
![백오피스 로그인 화면](/sites/default/files/backoffice_login.png “백오피스 로그인 화면”) 스타트업에는 놓치지 않아야 할 여러 가지가 있다. 난 그 중 백오피스를 꽤 높은 순위에 둔다. 백오피스를 가졌을 때의 장점은 1. 서비스를 만들고 지표의 변화를 감지해 서비스를 개선하는 데 큰 도움이 된다. 2.

VirtualBox – Vagrant Disk IO 성능개선 방법

26 Apr, 2014 - 1 minutes
  • VirtualBox 에서 제공하는 공유폴더 기능은 심각한 퍼포먼스 저하가 있다.

하이브리드 프론트엔드 개발 5원칙

15 Apr, 2014 - 3 minutes
3년 정도 하이브리드 플랫폼들을 경험했다. 하이브리드 플랫폼은 정말 여러 곳에서 쓰이고 있다. 하지만 그 모든 플랫폼이 크롬, 파이어폭스만큼 우수한 디버깅 환경을 제공하지는 않는다. 에뮬레이터를 지원하지 않는 경우는 부지기수이고 한 줄이라도 수정하면 앱을 종료했다 다시 켜야 변경사항이 반영되는 때도 있다. 오늘도 하이브리드 개발 중에 API 서버가 죽었다. 일정도 꼬인 김에 하이브리드 개발 때 도움이 될만한 팁을 공유해본다. ## 독립된 API 서버를 갖춰라 가능하다면 독립된 API를 갖는 게 좋다. 하이브리드 앱은 API와 통신이 많은 부분을 차지한다. 끊임없이 개발되고 있는 와중에 개발 중인 API가 안정적이기를 바라는 것은 무리다.

더 효과적인 피어 코드 리뷰를 위한 여섯가지 방법

7 Nov, 2013 - 3 minutes

한빛미디어에서 당신의 동료가 더 효과적으로 코드리뷰를 할 수 있게 만드는 여섯 가지 방법 라는 좋은 글을 접했습니다. 그런데 읽다보니 번역문이 이해하기 어려운 점이 많아서 원문을 다시 읽게되었고 요약하게 되었습니다.

램디스크로 더 빠른 개발환경 구축하기

29 Aug, 2013 - 3 minutes
최근에 한 웹앱 프로젝트를 완료했다. 이 프로젝트를 진행하면서 램디스크를 오랫만에 사용해보게 됐다. 웹앱은 특히 HTML템플릿을 많이 사용했는데 그 특성상 처음 퍼블리싱된 파일이 너댓개 템플릿으로 분리되는 것이 예사였다. 파일이 많아지면서 프로젝트 내에서 파일이름을 검색해 여는 단순한 작업도 은근히 느려지는 것을 느꼈다. 그리고 파일 내부 검색에도 시간이 오래걸렸다. 처음에는 SSD 로 업그레이드를 해야하는가 고민했지만 마침 얼마전 램을 16GB로 업그레이드 하면서 평소 메모리 사용량이 꽤 많이 남게 되어서 활용하기로 했다. 램드라이브를 사용하게 되면서 파일이름을 검색하든 파일 내부를 검색하든 버벅거림이 전혀 없고 아주 만족하며 사용중이다.

자바스크립트의 변수형을 알아내는 다른 방법

23 Mar, 2013 - 2 minutes
JavaScript 의 변수형을 알아내는 데는 일반적으로 typeof 를 사용한다. 하지만 toString 을 사용하면 어떤 객체의 인스턴스인지까지 한번에 알아낼 수 있다. ## JavaScript 의 변수형을 알아내는 데는 일반적으로 typeof 를 사용한다. 이 방법이 가장 간단하고 일반적인 방법이다. typeof 가 나타낼 수 있는 변수형은 아래와 같다. undefined, object, boolean, number, string, function, object typeof 가 변수에 대한 기본적인 호기심을 해결해주긴 하지만 몇가지 모자란 점이 있다. 

웹호스팅환경에서 git push 때 자동으로 pull 하기

13 Mar, 2013 - 2 minutes
ssh, bare repository, post-receive hook 을 사용해 로컬저장소에서 push 하면 호스팅 서버에서 자동으로 pull 받을 수 있는 환경을 꾸며봅니다. Bitbucket 에서 private 저장소를 만들어 버전관리를 하고 있는 프로젝트가 있다. 웹 프로젝트이고 이 프로젝트의 결과물은 Cafe24 에 월 500원짜리 웹호스팅에서 서비스된다. 처음엔 remote origin 을 Bitbucket 으로 두고, 이 저장소를 통해 로컬과 호스팅 서버간의 통신을 했다. 소스를 고치고 push 하고, 호스팅서버의 커맨드라인에서 pull 을 해야했으니 매우 불편했다.

jQuery 요소 선택의 성능문제, 셀렉터와 탐색 중 어떤 것이 더 빠를까?

8 Mar, 2013 - 3 minutes
스택오버플로를 둘러보다 아래와 같은 질문을 찾았다. Is jQuery traversal preferred over selectors? jQuery 에서 요소 선택의 성능문제를 묻는 질문인데, $(“#vacations”).find(“li”).last(); $(“#vacations li:last”); 이 두 가지중 어떤 것이 더 빠를까?

자바스크립트 파일이 세미콜론으로 시작하는 이유

3 Mar, 2013 - 1 minutes
어떤 코드를 살펴보면 자바스크립트 파일이 세미콜론으로 시작하는 때가 있다. ;(function () {})(); 왜일까 궁금했었는데 스택 오버플로를 살펴보니 대략 아래와 같은 답변이다. 이 세미콜론은 자바스크립트 파일을 합칠 때(concatenating) 안정성에 도움이 된다.

Facebook Comment 를 Disqus 로 내보내는 FB2Disqus

24 Feb, 2013 - 1 minutes
페이스북의 Social comment 를 잘 사용하고 있었지만, Disqus 로 옮기고 싶었다. 페이스북 사용자가 아니면 댓글을 달기 어려운 면이 있기 때문에 좀 더 확장하고 싶었다. 그리고 더 큰 이유는 디자인 이었다. 블로그를 새로 꾸미면서 블로그 글 영역을 가변폭으로 만들었는데 Facebook 의 social comment 는 고정폭 만 지원하고 있다.

SSI 를 활용한 프론트엔드 리소스 버저닝

6 Feb, 2013 - 2 minutes

개요 리소스 버저닝은 리소스 캐시를 목적으로 한다. 리소스 캐시는 해당 파일이 변경된 경우 컨텐츠를 새로 전송(Cache Miss)하고, 변경되지 않았다면 컨텐츠를 전송하지 않는(Cache Hit)다. 많이 사용되는 방법으로 버전이름을 쿼리스트링(Query String, GET 파라미터라고도 함)에 명시하는 방법이 있다. 버전이름을 쿼리스트링에 명시하는 방법은

브라우저 자동완성 기능의 미래

4 Feb, 2013 - 3 minutes
Form element 에 autocomplete 기능이 소개된 것은 1999년 Internet Explorer 5이 최초였다. 이후 각 브라우저 별로 산발적으로 지원하던 자동완성 기능은 HTML5에 이르러 표준화 되었다. HTML5 스펙은 2012년 12월 17일 버전으로 기준으로 함. 이전 스펙에서 autocomplete attriute 는 “on” 또는 “off” 값만 가질 수 있었으나 최근의 스펙에서는 on, off 외에 공백으로 분리된 토큰들을 가질 수 있다. 이에 따르면 attribute 이 on, off 가 아니라면 아래와 같은 순서로 동작한다. 1. 첫 8글자가 “section-” 으로 시작하는 경우 필드가 이름을 가진 그룹에 속함을 나타낼 수 있다.

평범한 인터렉션, 비범한 인터렉션

20 Sep, 2012 - 4 minutes
여러분은 지금 어떤 자세로 이 페이지를 보고 있나요? 혹시 턱을 괴고 마우스에 손을 올리고 있지는 않은가요? 웹서핑을 할 때 많은 시간을 마우스와 함께 합니다. 하지만 가끔 양 손 모두가 키보드 위에 올라오는 때가 있죠. 바로 양식(Form)을 입력할 때 입니다. 양식을 채워서 로그인을 합니다. 메일을 쓰는 것도 양식을 채우는 일 입니다. 글을 보고 코멘트를 달아주는 것도 양식을 채움으로써 가능합니다.

Safari 6 Web Inspector 로 iOS6 Safari 디버그하기

10 Sep, 2012 - 1 minutes
차기 아이폰 출시일이 9월 12일로 예상되고 있습니다. 아울러 iOS6도 출시될 텐데요.

Git pull 시에 Merge branch .. 메시지 나오지 않도록 하기

8 Sep, 2012 - 1 minutes

Git Pull 시에 머지 커밋하지 않기 $> git pull 을 실행하면 리모트의 내용과 내 작업내역을 머지하게 되는데 이 때 머지되었다는 커밋을 한번 더 수행해주어야 한다. 이 경우 Merge branch ‘local branch name’ of remote into ‘remote branch’ 와 같은 자동 생성 커밋 메시지가 올라온다. 머지 커밋이 불필요하다고 생각하는 경우라면 $> git pull –rebase 를 사용하면 머지 커밋이 필요없다. ***Github Client 의 Sync 기능이 내부적으로 이와 같이 동작 중임.

SSI를 이용한 HTML 산출물 모듈화

31 Aug, 2012 - 4 minutes
개요 SSI 는 Server Side Include 의 약자로, 웹서버에서 직접 제공하는 서버사이드 스크립트 언어 입니다. PHP, ASP, JSP 등도 서버사이드 스크립트 언어의 범주에 들어가지만, SSI 는 대부분의 웹서버에서 직접 지원하고, 문법이 HTML 형식이라는 특징이 있습니다. 문법을 살펴보면, <!–#include virtual=”../quote.txt” –> 와 같이 HTML 의 주석 문법에 #을 붙인 형태로 지시자를 작성하고, attirubte 을 사용해 파라미터를 전달합니다. 일반적인 지시자들 일반적으로 많이 사용하는 지시자들 입니다.

HTML5 Page Visibility API

16 Aug, 2012 - 1 minutes

Page Visibility API * 브라우저에서 탭이 이동해서 안보이는 경우, 비디오는 끄고 싶다. * 페이지가 안보이는 중에는 이미지 로테이션을 멈춰두고 싶다. * 페이지가 안보이는 중에는 서버에 요청하지 않았으면 좋겠다. 이런 경우에 사용하기 위해 Page Visibility API 스펙이 표준화되고 있습니다.

입력 필드 내 텍스트 UI, 어떻게 구현하는 것이 좋을까?

14 Jul, 2012 - 4 minutes
요즘 많이 사용하는 UI 중, 입력 필드 내에 입력정보 텍스트를 표시하는 UI 가 있습니다. 아무래도 placeholder속성이 구현되었을 때와 비슷한 모습을 하고 있어서 placeholder 로 오인되는 경우가 있는 것 같습니다.

모바일 웹 디버깅 툴 – Weinre

17 Jan, 2012 - 3 minutes
국내 모바일 브라우저 시장 점유율은 2011년 12월 현재 Webkit 계열이 99% 이상의 점유율을 가지고 있다(Statcounter 기준, Android, iPhone, iPod Touch, Dolfin 을 합한 수치). 하지만 Webkit 계열의 브라우저로 천하통일되었더라도 모바일 사이트를 구축하는 것은 여전히 쉽지 않은 일이다. 단말기가 다양할 뿐 아니라 단말기마다 사용된 웹킷 브라우저 버전이 각각 다르고, 단말기에 적용된 OS 버전에 따라서도 다르다. 심지어는 제조사의 커스터마이징이 이루어진 경우도 심심치 않게 볼 수 있다. 같은 회사에서 나온 라인업(갤럭시 S, 갤럭시 K 등) 에서도 다르게 동작하는 경우마저 있다.

Semantic URL 를 프로젝트 내 소통수단으로!

13 Dec, 2011 - 4 minutes
Semantic URL이란? Semantic URL 은 Clean URL, Fancy URL, Rewritten URL 으로 불리기도 합니다. 위키피디아에서는 Semantic URL과 Clean URL을 각각 다른 용어로 정의하고 있기는 하지만 내용을 살펴보면 근본적으로는 비슷합니다.  즉, 비전문가(사용자)에게 친숙한, (의미를 표현하는)구조적인 URL입니다.

맥에서 hosts 파일 관리 – Gas Mask

24 Nov, 2011 - 1 minutes

[번역/요약] Professional Frontend Engineering

1 Jun, 2011 - 20 minutes
원문은 YUI의 Professional Frontend Engineering 입니다. 스크립트와 함께 보시면 더 좋습니다.  오역/오탈자 신고는 메일로 해주세요.

JS프로그램의 압축(Compression of JavaScript Program)

8 May, 2011 - 8 minutes
원문은 http://j.mp/gl4jDq 에서 보실 수 있습니다. 오역의 가능성이 있으니 원문과 비교하며 보세요~

위지윅(WYSIWYG) 에디터를 만들고자 할 때 고려할 사항

8 May, 2011 - 3 minutes
원문은 http://bit.ly/ksonHb 에서 보실 수 있습니다. 1. iframe docs vs. contenteditable divs 위지윅에디터를 제작하고자 할 때 iframe을 사용할 지, 어느 엘리먼트에나 존재하는 contenteditable 속성을 이용할 지 고민될 수 있습니다. 답변자는 iframe을 추천합니다. 그 이유로:  iframe내에서는 문서 타입, CSS, script 등을 이용해 완전한 제어를 할 수 있습니다. 여러 다른 페이지내에서 통일된 액션과 모습을 보여주는 데에 꼭 필요합니다. 특히 Firefox에서 contenteditable 속성을 가진 엘리먼트가 매우 버그가 많은데, 이것은 몇 년 전부터 있어왔고 아주 잘 동작하는 document의 designMode속성에 비해(pre-1.0 부터인가? 확실하지 않습니다) 이 속성이 비교적 최근에(3.0버전부터) 도입되었기 때문입니다.   2.

더 나은 SEO를 위해 알기쉬운 사이트 구조 작성하기

6 Mar, 2011 - 8 minutes
원문: Intelligent site structure for better SEO!

회원가입 프로세스를 심플하게 만드는 17가지 방법

1 Mar, 2011 - 2 minutes
xguru님의 이번 주 기술뉴스에 포함된  “회원가입 프로세스를 심플하게 만드는 17가지 방법” http://j.mp/eeC2Qp 에 대한 간단한 번역입니다. 원문에는 이해가 쉽도록 이미지 등도 있으니 참고하세요~  오역의 가능성은 다분합니다 -_-   1. 이메일을 아이디로 만들어라   2. 사용자가 항상 쓰는 비밀번호를 쓸 수 있게 하라. (복잡한 규칙을 설정하지 마라. 은행, 개인정보 등 민감한 사항을 다루는 웹사이트들은 예외.)   3. 추가 정보는 우선 계정을 만든 다음에 받도록 해라.   4.