전체 162

Github - 레포지토리 복사

github의 repository를 통째로 복사해서 다른 repository로 옮기고 싶을 때가 있다. 내 경우에는 퍼블리싱 작업물을 디자인 버전 별로 branch를 나누어서 관리하고 있었는데, 각 브랜치에 있는 작업물들을 브랜치마다 gh-pages로 배포하고 싶었다. 하지만 github는 한 repository당 하나의 gh-pages만 배포할 수 있도록 되어 있기 때문에, 이 작업물들을 별도의 repository로 분리해서 각각의 gh-pages로 배포하는 것이 내 목표였다! 간단하게 새로운 repository를 생성해서 그 안에 한꺼번에 커밋을 하는 방식으로 해결이 가능하지만, 이러한 방법을 사용하면 예전 커밋 로그들이 다 날아가기 때문에 좋은 방법은 아니다. 그래서 구글링으로 찾아보니, git의 ..

기타/Git 2021.11.02

React - 1. 리액트 입문 정리

리액트의 특징 - state 값이 변경되면 DOM을 업데이트하지 않고 아예 새로 만듦 - JSX라는 문법을 사용 - Webpack, babel 등 리액트의 Virtual DOM - 브라우저에 실제로 보여지는 DOM이 아니라 메모리에 가상으로 존재하는 DOM - Javascript 객체 => 실제 DOM보다 속도가 굉장히 빠름 JSX - babel을 통해 JSX 문법이 Javascript로 변환 - 닫힌 태그가 꼭 있어야 함(혹은 self closing tag) - 하나의 최상단 태그로 감싸야 함 => 리액트의 Fragment 사용 가능() - JSX 내부에 자바스크립트를 사용해야 할 경우 {}로 감싸서 사용 Babel - 자바스크립트 문법 확장 도구 - 아직 지원되지 않는 최신 문법 혹은 실험적인 문법을..

Frontend/React 2021.11.01

Spring - session 정보 DB에 저장

보통 Spring에서 로그인 정보는 session에 저장하는 방식을 사용한다. session 저장 방식은 주로 다음과 같은 3가지 방식 중 하나를 사용한다. 1. 톰캣 내장메모리 session 사용 : session은 톰캣의 내장 메모리에 저장이 되므로 서버를 재시작할 때마다 세션이 초기화된다는 특징이 있다. 보통 1대의 was를 사용하는 프로젝트에서 주로 사용하는 방식이다. (2대 이상의 was를 사용할 경우 추가적인 설정 필요) 2. DBMS에 session 저장 : 여러 was에서 공용으로 세션을 사용할 수 있다. 로그인/로그아웃 시마다 DB I/O가 발생하여 성능에 영향을 준다는 단점이 있다. 로그인/로그아웃 요청이 많지 않은 프로젝트에서 주로 사용된다. 3. Redis, Elastic cache..

Backend/Spring 2021.10.28

Node.js - express 특징 및 사용법 정리(공식 문서 참고)

해당 글은 Express 공식 문서인 https://expressjs.com/ko/starter/installing.html를 참고하여 작성했습니다. Express 설치 설치 Node.js가 이미 설치되었다고 가정한 상태에서, 애플리케이션을 보관할 디렉토리를 작성하고 그 디렉토리를 작업 디렉토리로 설정하십시오. $ mkdir myapp $ cd myapp npm init 명령을 이용하여 애플 expressjs.com Express의 특징 - 현재 4 버전까지 출시, 5 버전은 알파 릴리스 단계 - 프로젝트 내에 DBMS 드라이버를 간단하게 설치하여 사용 가능 : MySQL, Redis, ElasticSearch 등 # npm i mysql2 # npm i mongodb Express 프로젝트 생성 - 아..

Backend/Node.js 2021.10.10

Node.js - ORM 및 Sequelize 개념, 사용 방법, 문법 정리

ORM(Object Relational Mapping) 이란? 객체를 통해 간접적으로 데이터베이스를 다루는 방식 직접 SQL 쿼리를 작성하지 않고 프로그래밍 언어를 이용하여 DB에 접근할 수 있음 - 장점 1. 개발 코드와 DB의 종속성 분리 2. 생산성 향상 및 유지보수 용이 3. 특정 DBMS에 종속적이지 않아 Object에만 집중 가능 (= 다른 DBMS간에도 문법이 호환되므로 프로젝트 진행시 다른 종류의 DBMS로 교체할 경우 편리) - 단점 1. 커스터마이징 및 디버깅이 어려움 2. 실행 속도가 raw 방식보다 느림 3. 복잡한 쿼리 작성이 어려움 - Express에서 MySQL ORM 모듈로는 Sequelize와 TypeORM, Knex 등이 있음 ① Sequelize → PostgreSQL,..

Backend/Node.js 2021.10.10

Javascript - 부모 창에서 window.open()으로 연 자식 창 관리

javascript에서 window.open(url)을 사용하면 현재 부모창에서 새로운 페이지를 열 수 있다. window.open([URL 또는 html 파일명], [자식 창의 접근자 이름], [자식 창의 스타일]) 예를 들어, 다음과 같은 방식으로 사용하면 된다. window.open('https://www.naver.com/', 'naverView', 'width: 240px, height: 400px'); // 해당 url을 새로운 탭에서 엶 window.close(); // 해당 창을 닫음 SNS 로그인 등을 구현할 때 새 창을 띄워서 권한 승인을 받는 경우가 많은데, 이 때 해당 창이 닫힌 여부를 판단하여 이벤트를 발생시키고 싶다면? window.open() 함수가 window 객체를 반환하기..

Language/Javascript 2021.10.03