반응형

vs code에는 code 자동완성 기능이 있다. 이를 snippets 이라고 한다.

생산성을 높에주는 아주 편리한 도구이다. 그런데 간혹 자동 완성된 코드가 마음에 들지 않을 때가 있다. 이럴 경우 사용자 지정으로 만들어서 사용하면 편리하다.

다음은 사용자 snippets을 만드는 과정이다.

1. File > Preferences > User Snippets 선택

2. 새로운 파일 이름 입력. (C:\Users\[user name]\AppData\Roaming\Code\User\snippets\ 여기에 저장됨.)

3. 새로운 파일이 생성되면 자동으로 열리면서 셈플 코드가 주석 처리되어 나온다. 이것을 복사하여 주석을 없애고 수정해서 사용한다.

	// Example:
	// "Print to console": {
	// 	"scope": "javascript,typescript",
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }

  1) "Print to console" - 여기에 snippet 제목을 쓴다.

  2) "scope": "[변환할 키워드]" - code에 삽입할 때 사용할 키워드

  3) "prefix""html5-developerN" - 표시될 제목

  4) "body": [ "[삽입할 내용] " ] - 삽입될 내용. 여러줄을 삽입할 경우 콤마(,)로 구분한다.

  5) "description""[간단한 설명]" - snippets의 간단한 설명

 

다음은 html을 입력하면 삽입될 snippets의 예이다.

    "HTML5 form": {

    "scope""html",

    "prefix""html5-developerN",

    "body": [

      "<!--",

      " * File : ${1:file name & version}",

      " * Update: ${2:date}",

      " * Author: developerN",

      "-->",

      "<!DOCTYPE html>",

      "<html lang=\"ko\">",

      "<head>",

      " <meta charset=\"UTF-8\">",

      " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",

      " <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",

      " <title>${3:title}</title>",

      "</head>",

      "<body>",

      "$0"

      "</body>",

      "</html>"

    ],

    "description""default html5 form"

 

사용자 snippets 만들기
사용자 snippets 만들기

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

다음은 네이버 검색에 웹사이트를 등록하는 방법이다.

 

  1. 네이버 웹마스터 도구에 로그인 하기. (네이버 아이디가 있으면 별도로 가입할 필요 없음.)
  2. 사이트 추가에 원하는 웹사이트의 URL을 입력하고 '추가'버튼을 클릭
  3. 사이트 소유 확인.
    3가지 방법을 제공하고 있다.
    1) HTML파일 업로드 : 네이버에서 제공하는 html파일을 다운로드 받아, 웹사이트의 root에 업로드 하는 방법.
    2) HTML 태그 : 네이버에서 제공하는 meta tag를 웹사이트 index.html 의 <head>네에 복사하는 방법.
    3) 소유확인 없이 사이트 추가 : 비 추천. 소유확인이 있어야 네이버에서 제공하는 하는 각종기능을 사용할 수 있다.

* 먼저 '소유확인 없이 사이트 추가'를 한 후 나중에 소유 확인을 할 수도 있다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,

[CSS3] CSS style guide

CSS3 2019. 11. 6. 20:08
반응형

정해진 규칙이 없이 생각 나는 대로 코딩을 하다보면 가독성이 현저히 떨어지는 것을 알 수 있다. 이는 어떤 언어이건 마찬가지다. 이런 이유때문에 기업이나 개발자 들이 코딩 스타일 가이드를 제시하고 있다. 그 중 CSS의 스타일 가이드에 관해 생각해 보자.

 

1. attribute(속성) 이름순으로 정렬.
2. “attribute(속성): value(값);”의 기본 형식에서
  1) 콜론(:) 뒤 공백 1칸 띄어쓰기.
  2) 마지막 속성 값 뒤에 세미콜론(;) 사용.
3. Selector(선택자) 단위 개행.
4. 블록 간 빈 줄 삽입.
5. single quotation 사용.

6. value가 없을 경우 none보다 0를 사용.
7. class이름에 camel notation 보다는 hyphen(-)을 사용.
8. 블록 주석보다 라인 주석 권장.
9. ID는 안티패턴으로 간주됨으로 사용하지 않는다.
사용하는 것 자체는 가능하지만 재사용이 불가능 하기 때문이다.

 

[ 개발자n의 생각 ]
일반적인 style guide는 위와 같다. 하지만 상기 1번의 속성을 이름순으로 정렬하는 것에는 반대한다.
최근 대표적이 에디터들도 알파벳 순으로 정렬하지 않으면 귀찮은 안내 문구가 뜨기도 한다. 왜 이런 가이드가 난무하는지는 모르겠으나 무조건 알파벳 순으로 정렬하면 가독성이 현저하게 떨어진다.
따라서 속성의 순서는 알파벳 순이 아닌 기능별로 순서를 정하는 것을 권장한다. 기능별 순서는 외형에서 상세형태의 순으로 작성한다.
모질라 파이어폭스의 CSS선언 순서를 참고하면 이해가 쉬울 것이다.
1. Display & Flow
2. Positioning
3. Dimensions
4. Margins, Padding, Borders, Outline
5. Typographic Styles
6. Backgrounds
7. Opacity, Cursors, Generated Content

 

참고로 네이버의 CSS선언 순서는 다음과 같다.
1. display
2. overflow
3. float
4. position
5. width/height
6. padding/margin
7. border
8. background
9. color/font
10. animation
11. 기타

모질라와 네이버 방식에 큰 차이는 없다.
두가지 방식의 공통점은 레이아웃>테두리>배경>글꼴>동작 순으로 작성한다는 것이다.

어떤 형식을 따라도 상관없으나 가장 중요한 것은 가독성을 높이고, 지속적으로 사용이 가능해야 한다는 것이다.

W3C의 CSS의 유효성 검사 : http://jigsaw.w3.org/css-validator/
이 곳은 가이드 적용을 검사하는 곳이 아니라 문법적 오류가 없는지를 검사해 주는 곳이다. URL이나 파일 업로드, 직접입력 방식으로 CSS의 문법을 검사해준다.

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

자세한 내용은 구글의 'Search Console 고객센터'에 설명되어 있다. 문제는 너무 자세하다는 것이다. 처음 방문해서 읽다 보면 좀 당황스럽다. 내용은 '기본 체크리스트'를 중심으로 이루어져 있다.

기본 체크리스트는 다음과 같다.

  1. 내 사이트가 Google에 표시되나요?
  2. 사용자에게 고품질 콘텐츠를 게재하나요?
  3. 내 지역 업체가 Google에 표시되나요?
  4. 모든 기기에서 내 콘텐츠에 쉽고 빠르게 액세스할 수 있나요?
  5. 내 웹사이트는 안전한가요?

2번에서 4번의 경우 사이트의 내용이 적정한가, 서버의 위치가 구글서비스를 하고 있는 곳인가, 기술적 문제는 없는가를 확인하라는 것인데 일부는 운영자 스스로의 객관적 판단이 필요하고 일부는 범위가 모호한 기술적 문제이기 때문에 여기서 설명하지 않는다. 다만 일반적인 상황이라면 1번을 제외한 모든 사항은 만족할 것이다.

1번에 대한 확인은 간단하다.

구글의 검색창에 site:example.com이라고 검색해 본다. 물론 여기서 example.com은 여러분이 운영하는 사이트의 URL이다.

여기서 정상적으로 검색한다면 구글에서 벌써 여러분의 사이트를 크롤링했다는 뜻이다. 따라서 웹사이트를 등록할 필요가 없다.

하지만 검색이 안되면 지금부터 설명하는 데로 등록을 해야 한다.

1. '구글 웹마스터 도구 - Google Search Console'에 방문한다.

2. '시작하기' 버튼을 클릭한 후 새로운 창에서 'URL 접두어' 를 선택한다.

3. '소유권확인'이라는 새창이 뜨면, 'HTML 태그'를 클릭한다. 이때 생성된 메타태그를 복사하고 창은 그대로 놔둔 채로 4번항을 진행한다.

4. 자신의 사이트 index의 head에 복사한 meta tag를 삽입하고 저장한다. (당연한 얘기지만 서버에도 index파일을 교체해야 한다.)

5. 이제 3항의 창에서 '확인'을 클릭한다.

 

이제 구글 웹마스터 도구에 접속하면 대시보드가 보인다. 처음에 데이터가 보이지 않는 것은 크롤링 전이라서 그렇다. 몇일 후 방문하면 각종 데이터를 열람할 수 있다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

개발의 원칙으로 자주 소개되는 SOLID, KISS, YAGNI, DRY에 대해 알아본다.

 

KISS ( Keep it simple, stupid. )

바보같은 단순함을 유지해라.

 

YAGNI ( You Ain't Gonna Need it )

필요할때까지 그 기능을 만들지 않는다.

 

DRY ( Don't Repeat Yourself )

같은 일을 반복하지 마라.

 

 

SOLID

S - SRP(Single Responsibility Principle : 단일 책임 원칙) : 하나의 객체는 하나의 역할 만을 담당한다.

O - OCP(Open/Closed Principle : 개방-폐쇄 원칙) : 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다.

L - LSP(Liskov Substitution Principle : 리스코프 치환 원칙) : 자식 클래스는 언제나 부모 클래스의 역할을 대체할 수 있어야 한다는 것을 말하며, 부모 클래스와 자식 클래스의 행위가 일관됨.

I - ISP(Interface Segregation Principle : 의존 역전 원칙) : 하나의 커다란 인터페이스 보다 여러 개의 구체적인 인터페이스가 좋다.

D - DIP(Dependency Inversion Principle : 인터페이스 분리 원칙) : 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

 

Win + E : 윈도우 파일 탐색기(Explorer) 실행.
Win + ^, v (상/하 방향키) : 사용 중인 창을 최소화/최대화
Win + <, > (좌/우 방향키) : 사용중인 창을 좌우로 이동. 
                            첫번째 창을 화면의 절반에 위치시키고 
                            나머지 창 중에 나머지 절반을 차지할 창을 선택하도록 되어 있다.
Win + Home : 사용중인 창을 제외한 모든 창 최소화.
Win + Tab : 윈도우 작업보기 실행. 열려 있는 모든 창을 작게 나열 하여 선택할 수 있도록 해준다.
Win + D : 모든 창을 최소화 시키고, 바탕화면 보기 실행. 한 번더 클릭하면 원래 작업화면으로 복귀.
Win + M : 모든 창을 최소화.
Win + R : 실행 창.
Win + = : 돋보기.
Win + X : 시스템 관리 메뉴.
Win + A : 알림 센터.
Win + L : 잠금화면 실행.

 

 

 

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

css에서 display 속성을 사용할 때 우리는 사용하는 tag가 block-lever인지 inline-level인지를 구분할 필요가 있다. 두 요소의 특징을 살펴보면 block요소는 한 라인을 전부 차지한다. 따라서 내용이 많지 않은 block요소라도 한 라인을 전부 차지하고 복수개의 block을 사용하면 옆에 위치할 수 없기 때문에 위 아래로 배치된다.

이에 반해 inline요소는 내용의 크기만큼만 자리를 차지하고 같은 라인이지만 옆에 자리가 남는다면 옆에 위치하게 된다.

다음 포스트에서 설명할 예정이지만 이런 특징 때문에 block요소의 tag지만 inline요소처럼 배치하고 싶을 때는 inline-block속성을 사용하게 되는 것이다.

다음은 block 속성의 tag와 inline속성의 tag를 정리한 것이다.

block 속성 tag inline 속성 tag

<address><article><aside><blockquote><canvas><dd><div><dl><dt><fieldset><figcaption><figure><footer><form><h1>-<h6><header><hr><li><main><nav><noscript><ol><p><pre><section><table><tfoot><ul><video>

<a><abbr><acronym><b><bdo><big><br><button><cite><code><dfn><em><i><img><input><kbd><label><map><object><output><q><samp><script><select><small><span><strong><sub><sup><textarea><time><tt><var>

 

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,

[HTML5] meta tag 총정리

HTML5 2019. 10. 31. 15:32
반응형

SEO의 출발은 meta tag이다.

html의 tag는 대부분 <body> tag 내부에 위치 하면서 노출될 웹페이지의 구조 등을 나타내기 위해 사용된다. 반면 meta tag는 <head> tag 내부에 위치 하면서 해당 페이지의 구성에 대한 정보를 기술한다.

이는 사이트를 방문하는 사용자를 위한 정보가 아니라, 검색엔진에 제공될 정보의 요약이라고 볼 수 있다.

따라서 이 meta tag를 잘 작성함으로서 검색엔진에 최적화된 사이트 제작이 가능하다.

 

[ 메타태그의 속성 ]

charset 등 몇가지 예외인 경우도 있지만 대부분 다음의 속성 두가지를 사용한다.

  • name="정보 이름" : meta 정보의 이름
  • content="정보값" : meta 정보의 내용

keywords : 페이지으 키워드

<meta name="keywords" content="html5, css3, javascrip, 강좌" />

description : 페이지으 설명

<meta name="description" content="front-end 개발과 관련된 자료 및 강좌 모음" />

subject : 페이지의 주제

<meta name="subject" content="메타태그 종정리" />

author : 페이지의 저자

<meta name="author" content="developer N" />

viewport : 페이지의 크기와 크기를 제어하는 ​​방법

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

 

이밖에 주요 meta 정보

<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <!-- 브라우저 호환성 -->

 

다음은 meta tag를 적용한 예시이다.

<!DOCTYPE html>
<html lang="ko">
<head>
  <title>Meta Tag Summary</title>
  <meta charset="UTF-8" /> 
  <meta name="keywords" content="html5, css3, javascrip, 강좌" />
  <meta name="description" content="front-end 개발과 관련된 자료 및 강좌 모음" />
  <meta name="subject" content="메타태그 종정리" />
  <meta name="author" content="developer N" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
</head>
<body>
  
</body>
</html>

 

 

 

 

 

 

 

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,