본문 바로가기

전체 글

(132)
Project 마무리(2) - Board 사이트 구현 1) 마무리 1-1) 개요 1-2) 결과물 1-3) 진행 중 이슈 및 해결 1-4) 후기 1) 마무리 1-1) 개요 2022년 12월 26일부터 12월 30일까지 5일간 진행한 게시판 사이트 구현 프로젝트! 이번에는 지금까지 내 자신이 얼마나 route, controller, service, repository를 이해(express 모듈을 비롯한 cookie-parser, MVC 패턴 등)하고 있는지를 확인하는데 가장 큰 목적을 두고 작업을 진행했다. 이를 위해 함께 프로젝트를 진행한 팀원 분과 논의하여 담당 파트를 구분하고, 단독으로 코드를 구현할 수 없고 기능이 이어져 있다고 판단되는 부분에 대해서는 협업을 통해 구현해나가기로 결정했다. 이렇게 묘한 설렘과 긴장을 안고 첫날 To Do List를 작성..
MySQL 기초(3) - cookie, 로그인/로그아웃 구현, AJAX 1) MySQL 기초 1-1) cookie 1-2) 코드 실습 - 로그인, 로그아웃 구현 1-3) AJAX 1) MySQL 기초 1-1) cookie HTTP의 특징 : "비연결성"을 가진다! HTTP는 한 번 request와 response를 주고 받으면 연결을 끊기 때문에 다시 request와 response를 주고 받으려면 반드시 다시 연결(3-way Handshaking)을 먼저 한 뒤 request와 response를 주고 받아야 한다!!(HTTP의 "비연결성") request와 response가 파일 단위로 계속 주고 받는다는 점을 명심할 것!! 이러한 "비연결성"을 보완하기 위해 "cookie"가 등장함!! 브라우저(Client) 안에 작은 저장소에 데이터를 저장하고(마치 이전에 배운 로컬 ..
MySQL 기초(2) - RDBMS 및 SQL 정리 1) MySQL 기초 1-1) 데이터베이스 / DBMS 1-2) RDBMS 1-3) SQL 1-4) 코드 실습 - list 구현하기 1) MySQL 기초 1-1) 데이터베이스 / DBMS 데이터베이스(Database) : 단순하게 데이터들을 저장하는 공간 DBMS(DataBase Management System) DBMS 정의 : 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합 DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다! SQL(Structured Query Language) SQL 정의 : 데이터들을 저장하는 기능, 권한을 부여하는 기능 등 조작을 할 수 있도록 하는 명령어들 혹은 언어를 의미함 ..
MySQL 기초 - MySQL(데이터베이스) 기본개념 및 설치 1) MySQL 기초 1-1) MySQL(데이터베이스) 기본개념 1-2) MySQL 설치 1) MySQL 기초 1-1) MySQL(데이터베이스) 기본개념 MySQL(프로그램)을 설치한 뒤 이를 실행시켜야 프로세스가 돈다!! 프로세스가 꺼졌다가 다시 돌게 되었을 때 데이터는 사라진다! 메모리 : 휘발성(컴퓨터를 껐다 키면 데이터가 사라짐) 하드디스크 : 비휘발성(컴퓨터를 껐다 켜도 데이터가 사라지지 않음) MySQL은 하드디스크를 조작하는 것이라 보면 된다! 컴퓨터가 껐다 키더라도 데이터를 유지하기 위해 데이터베이스(MySQL)를 사용한다! 여러 사람들이 하드디스크에 데이터를 저장한다(동시작업을 의미함)고 했을 때 필요한 것이 데이터베이스(MySQL)이다! 하드디스크가 망가지지 않는 한 데이터를 영구저장한..
Javascript 기초(8) - callback hell, Promise, async/await 1) Javascript 기초 1-1) callback hell 1-2) Promise 1-3) async/await 1) Javascript 기초 학습 순서 callback Promise async/await socket.on('data', (chunk) => { console.log(chunk); }) // 비동기 코드: 언제 올지 모르는 코드 // 콜백 함수 안에서 다시 콜백 함수를 실행하는 것을 여러번 반복한 상황을 "callback hell"이라 부른다!! // "callback hell"이 나올 수밖에 없는 이유는 비동기 코드를 처리하기 위함이다! // 이 과정에서 "이벤트 기법"이라는 것을 활용해 처리함! net.createServer((socket) => { socket.on('data',..
Node.js(10) - express를 활용한 게시판 구현(CRUD) 및 Router 나누기 1) Node.js 1-1) express를 활용한 게시판 구현(CRUD) 1-2) Router 나누기 1-3) 게시판 코드 실습 - Router 나누기 1) Node.js 1-1) express를 활용한 게시판 구현(CRUD) "프레임워크"와 "라이브러리"의 차이 express는 실제로 "마이크로 프레임워크"지만 "라이브러리"에 가깝다고 볼 수 있다! 1. 프레임워크의 특징 : 디렉토리가 정해져 있음! 2. 라이브러리의 특징 : 디렉토리 구조가 없음 3. 프레임워크와 라이브러리의 공통점 : 둘 다 다른 사람들이 만들어 놓은 것을 가져다 쓰는 개념이다! (단, 가져와서 쓸 때, 즉 사용법이 다르다는 차이가 있다!) $ npm init -y #package.json 파일 생성 $ npm install ex..
Node.js(9) - express를 활용한 게시판 구현 1) Node.js 1-1) express 기본 세팅 1-1-1) server 대기 상태 1-1-2) 템플릿 엔진 설정 1-1-3) 정적파일 미들웨어 생성 1-1-4) bodyParser 1-2) 코드 정리 1) Node.js 1-1) express 기본 세팅 DBMS, 즉 데이터베이스 없이 구현할 예정 사전 숙지 사항 express 기본 설명 게시판 형태 숙지 1-1-1) server 대기 상태 $ npm init -y # package.json 파일 생성 $ npm install express # 외장모듈인 express 설치 및 node_modules 디렉토리 생성 # server.js 파일 생성 및 실행 $ node server const express = require("express"); co..
Javascript 복습(2) - 클로저, 로또 Refactoring 1) Javascript 복습 1-1) 클로저 1-2) 로또 Refactoring 1) Javascript 복습 1-1) 클로저 function main() { for (var i = 0; i { console.log(i); }, 1000 * i); } } main(); // 문제 // var 키워드는 "함수 레벨 스코프"이므로 // main 함수 바로 밑(for 문 바로 위)에 "var i;"로 선언이 되고, // setTimeout()의 경우, 본인 스코프(for 문 내부) 내에서는 변수 i를 찾을 수 없기에 // for 문 위로 올라와 변수 i를 찾게 되는데 // 이때 변수 i는 이미 for 문을 다 돈 상태이기에 결과적으로 "i = 5"의 값을 ..