분류 전체보기
-
[Gitn] GIT CLI - Branch, BackUp(push, pull, clone), Conflict생활코딩/Gitn 2021. 1. 27. 14:03
Branch # git remote add 원격저장소 주소 같은 뿌리를 가졌지만 서로 다른 역사를 써가고 있는 가지들 깃 공식홈페이지(git-scm.com/book/ko/v2/Git-브랜치-브랜치란-무엇인가)에는 이렇게 나와있다: 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. # git branch // 브랜치 목록 출력 # git branch apple // apple 브랜치 생성 # git checkout master // master 브랜치로 이동 # git log --all --graph // --all: 모든 브랜치를 보여주는 옵션, --gr..
-
[Gitn] git CLI - 버전관리생활코딩/Gitn 2021. 1. 25. 11:14
저장소 만들기 # git init 대상 디렉토리(현재 디렉토리라면 .) 상태 확인 # git status 파일 git 버전관리 대상에 포함시키기(staging area로 올리기) # git add ... # git add . // working tree의 모든 파일을 올리고 싶은 경우 버전 생성(Commit) # git commit -m "커밋 메시지" # git commit -am "커밋 메시지" // add 작업 + commit 작업 동시 수행 /* 새로 추가된 Untracked 파일은 자동으로 add 되지 않으므로 유의 */ 기록 보기 # git log # git log --stat // 파일 상태도 보고 싶다면 # git log --name-only // 파일 목록까지만 보고 싶다면 # git l..
-
[Gitn] Git의 목적과 쓸모 - 버전관리/백업/협업생활코딩/Gitn 2021. 1. 25. 10:00
git: -(문서의) 버전관리/백업/협업에 특화된 도구 -구체적으로는 자주 변경되는 수많은 문서를 관리해야 하는데, 그 문서들이 어떻게 변경되었는지 알아야하고, 백업도 해야하고, 다른 사람과 공유해서 공동으로 작업해야 하는 경우에 사용하면 아주 좋다. [강의 출처] opentutorials.org/course/3837/22435 생활코딩 수업을 따라가다가 WEB3 즈음에서 코드가 슬슬 복잡해지면서 Git의 필요성을 느끼고 잠시 방향 전환했다. 이참에 Git을 잘 배워서 코드는 Github에 올리고 여기에는 진행 과정만 적어두도록 해야겠다. 버전관리가 왜 필요한가? 작업을 진행하면서 여러 경우의 수를 만들어야 할 때, 특정 작업 이전의 원본을 따로 보관해두어야 할 때, 버전관리를 사용하지 않는다면 파일_1..
-
[Node.js & MySQL] 코드 리팩토링, 이슈 정리생활코딩/WEBn 2021. 1. 24. 11:47
다음 단계인 Express로 가기전에 나름대로 코드를 정리하는 시간을 가졌다. 생활코딩에서는 다음 단계로 넘어갈 때 원초적인 골격 코드를 가지고 해당 주제에만 초점을 맞추는데 아까워서 전 단계에서 실습했던 코드를 그대로 가지고 추가추가 하는 과정을 거쳤더니 WEB3까지 마친 지금은 코드가 조각조각 이어붙인 넝마주이가 되고 말았다. 현재 이정표는 아래와 같다. WEB1 HTML&Internet -> WEB2 CSS -> WEB2 JavaScript -> WEB2 Node.js -> WEB3 Node.js & MySQL WEB1 HTML&Internet: 기본적인 HTML 페이지 골격 작성 WEB2 CSS: 디자인 부분을 스타일시트로 이동 & 로 연결 WEB2 JavaScript: Night Day 버튼으로..
-
[Node.js & MySQL] 도전과제: 검색/페이징/정렬생활코딩/WEBn 2021. 1. 24. 11:33
생활코딩 Node.js - MySQL 마무리에서 제시된 도전과제를 구현하였다. 1. 검색: form get 방식으로 요청을 받고, db단에서 SQL구문 SELECT * FROM 테이블 WHERE 컬럼 LIKE "%키워드%"로 데이터를 찾는다. 찾은 데이터를 html 데이터로 구성해서 웹페이지로 띄운다. 2. 페이징: 한번에 보여줄 페이지를 설정하고, 페이지목록을 만들어서 넘길 수 있도록 한다. 각 페이지는 SELECT * FROM topic LIMIT 0 OFFSET 20; 구문을 응용해서 구성하고, 페이지 목록은 SELECT COUNT(*) FROM topic; 구문으로 전체 글 개수를 확인한 다음 나눠서 구한다. 3. 정렬: 타이틀-오름차순/타이틀-내림차순/작성일순/작성일역순 4가지 옵션으로 검색이 ..
-
[Node.js & MySQL] 도전과제: 검색 - 색인기능 살펴보기생활코딩/WEBn 2021. 1. 20. 23:11
자주 검색하는 컬럼이라면 색인을 넣어주자. 검색 속도가 빨라진다. 아래처럼 인덱스를 만들어주고, 기존대로 WHERE 컬럼명 = ?으로 검색하면 된다. 다만 데이터가 꽤 많아야(테스트했을 때는 몇십만건 정도) 유의미한 차이를 느낄 수 있다. CREATE INDEX index_category ON 테이블명(컬럼명) 생활코딩 Node.js - MySQL 수업은 이고잉님이 추가 도전과제를 던져주는 것으로 끝난다. 검색, 정렬(저자 이름 순, 시간 순), 페이지 기능을 구현해보면 좋겠다. 그리고 팁을 몇 가지 준다. 1. 검색 의 get 방식을 이용해서 검색 요청을 처리하고, db단에서 SQL구문 SELECT * FROM topic WHERE title = "keyword"로 데이터를 찾는다. 이때 데이터가 많으..
-
[Node.js & MySQL] 보안: SQL injection, Escaping생활코딩/WEBn 2021. 1. 13. 20:41
외부로부터 유입되는 정보는 필터링이 필요하다. 유저가 입력 데이터로 악성 SQL을 주입해 공격하는 경우인 SQL injection 예방법과 해당 데이터를 웹브라우저로 실행할 때 발생할 수 있는 Cross site scripting (XSS) 예방법을 살펴본다. [강의 출처] opentutorials.org/course/3347/21299 SQL injection 예방법 페이지를 아래처럼 로드한다고 할 때, var mysql = require('mysql'); var db = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'data' }) db.connect(); var app = ht..
-
[Node.js & MySQL] 테이블 생성생활코딩/WEBn 2021. 1. 13. 18:57
DB에서 가져온 데이터를 반복문을 이용해 html 테이블() 형태로 작성 +기본적인 조작에 필요한 CSS [강의 출처]opentutorials.org/course/3347/21202 테이블 생성 html에서 테이블을 생성하는 태그는 이다. 그 아래로 제목 , 행 , 컬럼(셀 하나하나 자리) 가 온다. 는 강조를 위한 제목태그로, 제목 부분에서 를 대신해서 사용하면 된다. # C1 C2 1 Data1 Data2 2 Data3 Data4 Foot . . # C1 C2 1 Data1 Data2 2 Data3 Data4 결론 . . 기본 값은 테두리 없음이다. 전체 테두리를 쳐보자. html 내에서 css를 실행하려면 # C1 C2 1 Data1 Data2 2 Data3 Data4 결론 . . 헤딩 부분은 td..