반응형

ESLint, Prettier 설정하기

🔹ESLint

ESLint는 코딩 컨벤션에 위배되는 코드를 작성하거나 잘 못된 코드를 검출해주는 도구다.
해당 도구를 연결하는 것만으로 잘못된 코드 습관을 고치는데 크게 도움이 된다.
쓸데없이 import나 선언해두고 사용하지 않는 변수를 잡아주는 것은 시작에 불과하다.
미리 잘못된 코드들을 잡아주다보니 추후 버그가 나올 가능성이 현저히 줄어드게 된다.(그렇다고 만능은 아니지만 많은 부분에서 크게 도움이 된다. ts와 ESLint의 조합이란....)

🔹Prettier

Prettier는 코드 포맷터이다. 다양한 언어와 도구에서 지원이 되는데, 일관된 코드를 작성할 수 있게 도와주어 코드를 짜는데 있어서 가독성을 높여준다.
특히 협업을 할때, 누구는 2개의 탭을 넣고 누구는 4개의 탭을 넣게되어 쓸데없는 깃의 꼬이는 현상도 막아주고 일관된 코드를 작성해준다.
코드 스타일의 규칙을 초반에 정해놓고 설정만 해두면 prettier가 전담해서 코드를 일관성 있게 작성해주니 이후부터 코드 작성 스타일에 대한 스트레스와 시간을 절약해주는 좋은 도구이다.

🔹VSCode에서 사용법

VSCode에서 플러그인 설치 후 설정을 통해 연결할 수 있다.
ESLint를 검색하고 설치하면 된다.

Prettier도 마찬가지로 검색하면 바로 나오므로 설치해서 사용하면 된다.

🔹프로젝트별 ESLint설정법

프로젝트 최상단에 .eslintrc.cjs 또는 .eslintrc.json형태로 파일을 생성한다.
아래는 vite에서 react개발을 하면서 사용한 옵션들이다.

.eslintrc.cjs

module.exports = {
  env: { browser: true, es2020: true },
  extends: [
    'eslint:recommended',
    'plugin:react/recommended',
    'plugin:react/jsx-runtime',
    'plugin:react-hooks/recommended',
  ],
  parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
  settings: { react: { version: '18.2' } },
  plugins: ['react-refresh'],
  rules: {
    'react-refresh/only-export-components': 'warn',
  },
};

옵션별 설명

  • env: 코드가 실행되는 개발 환경을 말한다. 브라우저, node서버, 등 목적에 맞게 작성한다. 환경의 설정값을 통해 eslint가 api와 전역변수들을 이해하고 분석해준다.
  • extends: 공개된 설정들을 그대로 가져와서 해당 프로젝트에 적용하는 옵션(airbnb, goggle, facebook등 대기업에서 배포한 기술도 적용 할 수 있다.)
    • react/recommened: React프로젝트에 맞는 권장하는 규칙과 설정을 제공한다.(JSX, React 권장 패턴, 관행 등)
    • react-hooks: React Hook(useState, useEffect, useCallback등)관련된 권장 규칙과 설정을 제공
    • jsx-runtime: jsx의 관련된 규칙이 작성되어 있다.작성 형식, 태그닫기, 명명규칙 등을 도와주고 가독성을 높여준다.
  • plugins: 기본적으로 제공하는 규칙 외에 추가적으로 적용할 규칙에 사용할 플러그인을 작성
  • rules: extends옵션에서 설정된 규칙 외에 덮어쓰고 싶은 규칙을 작성할 때 사용되며, 규칙에 대한 내용을 세세하게 작성하기 위해 사용하는 옵션
  • parserOptions: javascript코드를 이해하기 위해 Eslint에서 사용하는 파서를 구성한다. ECMAScript버전(ecmaVersion), sourceType: 소스유형
  • ignore: eslint의 설정을 무시할 파일이나 디렉토리를 설정할 수 있다.

자세한 설정에 대한 내용은 아래 URL을 참고하자.
[https://eslint.org/docs/latest/use/configure/]

🔹프로젝트별 Prettier설정법

프로젝트별로 협업하는 사람들마다 스타일의 형태가 다양하다. 나만의 방식을 추구하고 싶겠지만, 협업이다보니 다수의 의견을 따라야 하는 경우가 있다. 이런 경우 나만의 VSCode에 설정한 Prettier가 아닌 프로젝트 최상단에 .prettierrc를 추가하고 옵션을 설정하면 된다.

아래는 .prettierrc 예시이다.
.prettierrc

{
  "singleQuote": true,
  "semi": true,
  "useTabs": false,
  "tabWidth": 2,
  "trailingComma": "all",
  "printWidth": 80
}

옵션별 설명

  • printWidth: 최대 줄 너비를 지정
  • tabWidth: 각 들여쓰기 수준에 대한 공백 또는 탭의 수를 지정
  • useTabs: true설정시 Prettier는 들여쓰기에 공백 대신 탭을 사용
  • semi: 명령문 끝에 세미콜론을 포함 여부
  • singleQuoute: 문자열 리터럴에 작은땀옴표 또는 큰따옴표 사용여부 결정
  • quouteProps: Javascript또는 JSON에서 개체 키를 처리하는 방법을 지정 "as_needed" 옵션은 필요한 경우에만 따옴표로 변환, "consistent"는 모든 키에 일관된 따옴표를 지정 "preserve"는 원래 따옴표를 유지
  • jsxSingleQuoute: singleQuoute와 유사한 옵션이지만 jsx속성에 해당
  • traillingCommna: 여러 줄 개체 리터럴 및 배열에 후행 쉼표를 포함 여부("all" 모든 여러 줄 배열 및 객체의 후행 쉼표, "es5" 해당 되는 경우 배열 및 객체의 후행 쉼표, "none" 후행 쉼표 없음)
  • bracketSpacing: 개체 리터럴 대괄호({}) 사이에 공백을 포함할지 여부
  • arrowParents: 화살표 함수 매개변수 주위에 괄호를 추가할지 여부("avoid" 매개변수가 하나만 있는 경우 괄호 없음, "always" 항상 괄호 추가)
반응형
반응형

개발의 기능이 어느정도 완성되거나 버그를 수정하거나 그날 올릴 소스가 존재한다면 많은 분들이 Git을 통해 관리를 하고 있을텐데, Git의 GUI도구(Sourcetree, fork, gitkraken 등등)를 사용해서 올리는 분들이 있을텐데, 저같은 경우엔 아직 gui가 필요한 수준도 아니고 가볍게 작업할 땐, VS Code에서 열심히 개발을 끝내고 터미널 창을 열어서 밀어넣는 작업을 하고 있습니다.

 

하지만 터미널에서 기존에 가볍게 작성하던 커밋 메시지를 저만의 커밋컨벤션의 규칙을 지키면서 넣다보니 실수도 많아지고 잘못된 개행처리나 사용시 불편함이 너무 많았습니다. 이런 문제를 해결하기 위해 git, vscode에 각각 약간의 설정을 하여 해결하였습니다.

 

Git설정

$ git config --global core.editor "code --wait"

해당 설정을 하게 되면 기존에 `git commit -m "커밋 메시지를 작성합니다!!! blah blah~"`

커밋 명령과 메시지를 동시 입력했지만  `git commit`만 쳐주면 새로운 창이 열리고 커밋 메시지를 적을 수 있게 해줍니다.

 

파란색부분에 commit message의 header와 개행을 입력하고 body부분을 양식에 맞게 작성하시고 저장 후 끄시면 됩니다.

 

 

VS Code설정

위 설정으로 vs code에서 메시지 작성은 쉬워졌지만 여전히 메시지 길이에 대한 문제가 있습니다.

많은분들이 따르고 있는 50/72규칙입니다.

제목은 50자, 바디는 한 줄당 72자에 대한 규칙인데, 매번 작성시 이걸 하나하나 세는것도 고역일 수 밖에 없습니다.

이것을 VS Code에서 언어별로 설정을 할 수 있는데 규칙을 추가함으로써 해결이 가능합니다.

 

1. File - Preferences - settings

 

2. setting.json열기

우측 상단에 Open Settings를 통해 JSON파일로 열 수 있습니다.

 

3. 길이 설정 제한하기

"[git-commit]": {
    "editor.rulers": [50,72],
    "editor.wordWrap": "off"
},

 

4. 설정 확인해보기

설정을 하게 되면 vs code 에디터 내에 2개의 라인이 생깁니다.

50, 72길이에 대한 제한인데, 문제는 한글에서는 제대로 처리가 되지 않는 문제가 존재합니다.

찾아보니 이런 경우를 위한 네이버에서 배포한 폰트 D2 Coding font가 존재하는데, 이것으로 해결이 가능하며 저같은 경우엔 폰트 적용까진 하지 않았습니다.

첫 줄의 경우 너무 길어 지면 빨간색으로 제한 표시 제한까지도 해주는걸 볼 수 있습니다.

 

적용 후기

요즘 플러그인들이 워낙 좋은것이 많기에 이렇게 커스텀해서 사용하는 것 보단 괜찮은 플러그인 하나 설치하는게 정신건강에 이로울수도 있을 것 같습니다! 

 

반응형
반응형

요즘 프론트엔드 리액트를 학습 중인데, 빠르게 따라치다보면 줄 정렬도 엉망이고 보기 안좋은 코드가 되기 일쑤다.

이런 것을 일관되게 조율해주는게 툴을 쓰는 이유라 볼 수 있는데, snippet부터해서 prettier, styled-component extension등 이것 저것 다 설치를 했는데도, 저장 시 자동 정렬 처리를 해주지 않아서 일관된 코드 작성이 어려웠다.

 

설정이 풀려있어서 적용법을 공유해본다.

 

먼저, 당연히 Prettier는 설치가 되어 있어야한다.

VS CODE

파일 - 기본 설정 - 설정

formatter라고 검색을 하고

 

 

기본 Formatter가 없음으로 되어 있었는데, Prettier로 설정을 변경해준뒤, 잘 돌아가는 걸 볼 수 있었다.

반응형
반응형

다른곳에서 소스를 받아와서 복사 후 붙여넣기만 하면 VS CODE가 자동으로 줄 정렬을 해주는데, 이 기능이 굉장히 좋을 때도 있지만 불편하게 만드는 경우도 있다.

 

예를들면 css는 개인적으로 한줄로 쭉 작성하는것을 선호하는 편이지만 VS CODE에 넣기만 하면 자동으로 단위별로 줄 정렬이 되어버린다.

 

prettier와 같은 플러그인을 설치하여 옵션을 꺼봤지만 저장시 자동 정렬은 별도의 옵션이였다.

 

아래와 같이 옵션을 끄면 자동 정렬을 끌 수 있다.

 

저장 시 자동 줄 정렬 끄기🛠

 

1. 파일 - 기본 설정 - 설정

 

2. formatOnSave를 입력한다.

 

체크되어 있는 Format On Save 옵션을 체크를 해제하면 더 이상 저장할 때 자동으로 정렬이 되지 않는다.

반응형
반응형

야밤에 잠깐 소스를 봐준다고 팀뷰어로 상대방 개발자분 컴퓨터를 보고있었는데, VS CODE툴을 사용해서 개발중이었다. VS CODE의 open in browser 확장프로그램 기능을 사용중이셨는데... 엉뚱하게 갑자기 해당 확장프로그램이 정상동작을 하지 않는 현상이 발견되었고 옵션을 사용할때마다 계속해서 동일 에러를 출력하였다.

 

문구는 다음과 같았다.

 

Vscode Error : Open browser failed!! Please check if you have installed the browser correctly!

 

여러가지 해결방법도 찾아봤는데 일단 명확한 해결방법을 찾지를 못했고, Stackoverflow 글들을 참고하면서 setting에서 브라우저 지정도 해보고 vscode를 전부 삭제하기전에 설정파일들까지 초기화해서 전부 삭제하고 재설치도 해보고 크롬도 재설치해봤지만, 해결은 되지 않았다.

 

그러다가 찾은 글이 같은 확장프로그램은 아니지만 버전을 낮춰보니 정상동작한다는 글을 보았고, 적용을 하고 리로드하니 정상동작하는것을 보았다.

 

1. 확장프로그램 탭으로 이동하고 원하는 확장프로그램의 톱니바퀴 아이콘을 클릭한다.

 

2. 다른버전 설치를 클릭한다.

 

3. 버전 정보들 중에 원하는 과거버전으로 설치한다.

(해당 문제가 발생하여 1.1.0 버전으로 설치하고 정상 동작을 확인했습니다.)

반응형
반응형

~.html 파일에 HTML, CSS, JS등으로 웹 페이지를 열심히 만들고 결과물을 전달해주는 과정에서 스프링프로젝트로 들어가는건지 모르겠지만 html파일을 전부 JSP로 변경해서 넘겨달라는 요청사항이 있었다.

 

한번 하는거면 문제가 없지만 넘기고 나서도 추가적으로 변경 요청사항이 있었고 그때마다 매번 html을 작업해보고 jsp로 하나하나 수정하는것도 번거로울 뿐더러 include를 통해 내부에 태그까지 심어달라는 둥 여러가지 요구사항이 있어서 구조적으로도 많이 달라지는 상황이었다.

 

그래서 애초에 jsp에서 다 작업해버리는게 좋다고 판단했고, 주로 사용하던 툴인 VS Code에서 간단하게 JSP를 구동시키고 로컬에서 페이스도 볼 수 있도록 환경 설정을 해보겠다.

 

spring 프레임워크 boot 설정법은 아니므로 해당 방법이 필요한분들은 다른 포스팅을 찾아보셔야 할 것 같습니다.

 

톰캣 설치

일단 먼저 WAS서버가 필요한데, 가장 보편적으로 사용하는 톰캣을 설치하자.

https://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

다운로드가 끝나면 인스톨 프로그램을 통해 설치를 진행한다.

윈도우 환경이라고 생각하고 설치는 간단하니 넘어가도록 하겠다. (설치경로는 기억해야합니다.)

 

 

 

VS CODE 설정

확장 프로그램 설치 - Debugger for Java, Tomcat for Java

먼저 2가지 확장 프로그램을 설치해줘야 한다. 맨 왼쪽 5번째 탭을 누르고 확장 프로그램을 설치해주자.

 

 

2가지 설치가 끝나고 탐색기탭으로 돌아가면 최하단에 TOMCAT SERVERS라는 탭이 생긴 것을 볼 수 있다.

 

탭을 열어보면 아무것도 없을텐데(캡처본은 제가 추가해서 보입니다...)

+버튼을 눌러서 아까 먼저 설치한 톰캣을 등록해준다.

 

아까 설치한 톰캣을 선택해주면 정상적으로 등록된다.

(일반적으로 설치프로그램을 통해 설치하면 C:\Program Files\Apache Software Foundation\Tomcat 8.5

해당 경로에 있을 확률이 높다. 설치경로를 잘 파악해둔다.)

 

톰캣이 정상적으로 등록되고 오른쪽 클릭을하면 여러가지 메뉴를 볼 수 있다.

Start : 톰캣을 구동한다.

Stop : 톰캣을 종료한다.

Restart : 톰캣을 재시작한다.

Rename : 등록한 톰캣의 이름을 변경한다.

Open in Browser : 브라우저를 통해 톰캣을 연다.

Open Server Configuration : 가장 중요하다!! 톰캣의 설정을 변경하는 설정파일이다.

 

Open Server Configuration을 클릭하면 server.xml파일이 열린다.

 

server.xml

이런식으로 xml파일이 보이는데, 우리가 추가해야할 정보는 2가지정도가 있다.

 

Host태그쪽에 보면 Value태그가 있는데 바로위에 Context라는 태그를 추가할것이다.

<Context path="" docBase="JSP작업을 할 위치"></Context>

 

해당 태그를 추가하고 Service 태그 바로 아래 첫번째 Connector의 포트값을 8080 기본에서 80으로 변경해준다.

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

 

작업이 끝나면 위 캡처의 형태로 변경되어 있어야 한다.

 

그럼 준비가 끝났다.

 

현재 세팅한 작업폴더의 위치는 E드라이브의 project의 jspWorks이다.

해당 폴더에 jsp를 만들고 확인해보겠다.

 

E:/project/jspWorks/test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>

<head>
    <title>VS CODE에서 JSP 동작시키기</title>
</head>

<body>
    <h1> test.jsp 페이지입니다.</h1>
</body>

</html>

 

test.jsp를 만들고 톰캣서버 탭에서 톰캣을 구동한다.

그럼 OUTPUT 탭에 여러 메시지들이 쭈르륵 출력되고 원하는 브라우저 하나를 켠다.

 

 

http://localhost/test.jsp

jsp명까지 끝까지 입력하여 주소를 입력하고 정상적으로 페이지가 열리는지 확인한다.

 

 

2020-09-25 추가----------------------------------------------------------

구동한 jsp의 .java, .class 위치 지정하기

먼저 확인해보았던 server.xml을 열어봅니다.

 

내부 태그 내용 중 Host태그를 찾고 workDir을 추가합니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Server port="8010" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxPostSize="-1" maxParameterCount="-1"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" 
          workDir="배포시킬 경로">
        <Context path="" docBase="E:/project/jspWorks/ROOT"></Context>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
      </Host>
    </Engine>
  </Service>
</Server>

톰캣을 재기동 하면 지정한 위치에 .java, .class가 생성된 것을 확인 하실 수 있습니다.

 

반응형
반응형

간단한 HTML, CSS, JAVASCRIPT의 작업을 할 때, 주로 아톰을 사용하다가 리액트 공부를 하면서 VS Code를 알게 되었습니다. 뭔가 더 직관적이고 간편한 UI가 마음에 들어서 요즘엔 주로 사용하는 툴입니다. 아톰의 추가 패키지 설치처럼 VS Code에도 추가 확장 프로그램을 설치 할 수 있습니다.

 

설치방법

좌측 메뉴 중 최하단의 Extensions 메뉴를 클릭하고 찾고자 하는 확장 프로그램을 검색해서 설치하면 됩니다.

단축키 Ctrl + Shift + X

 


확장 프로그램 추천

사용하면서 편리한 확장 프로그램을 알게 되면 계속해서 추가하겠습니다.

 

1. ESLint : 자바스크립트 문법 및 코드 스타일을 검사해줍니다.

 

2. open in browser : html 같은 페이지를 바로 브라우저창에서 키고 싶을 때, 브라우저 연결을 도와줍니다.

 

3. Prettier-Code formatter : 코드 스타일을 자동으로 정리해줍니다.

 

4. HTMLHint : 작성한 HTML 문법에 문제가 있는지 체크해줍니다.

태그가 안닫히거나 올바른 문법이 아니면 경고를 띄워줍니다.

 

5. Reactjs Code Snippets: 리액트를 사용하는분들에게 추천합니다.

함수를 작성하거나 단축 단어를 사용하여 간편하게 코드를 작성할 수 있습니다.

 

6. Korean Language Pack for Visual Studio Code: VS Code를 처음에 설치하시면 영문버전인데 툴을 한글버전으로 사용하고 싶은분들에게 추천합니다. 설치 후 별도의 설정이 필요합니다. 저는 영문버전으로 사용중입니다.

 

반응형