객체지향 (Object-Oriented) S/W의 핵심을 객체로 삼음, 객체를 도출하고 역할을 정의 하는 것 중심 모듈 + 모듈 + 모듈 = 객체(class) 시스템을 효과적으로 분해하고 구성, 효율적으로 다룰 수 있게하는 프로그래밍 패러다임 객체 지향 구분방법 캡슐화, 다형성, 클래스 상속 지원여부 데이터 접근 제한 여부 캡슐화 (Encapsulation) 객체내부 세부사항을 감춤, 정보은닉 목적 정보 노출 방지, 보안성 ↑ 변경 쉬운 객체, 결합도 ↓ private: 접근 제어자(인스턴스 내부에서만 해당 변수에 접근 가능하도록 제한) 오로지 setter로만 변수 변경, getter로만 변수 조회 캡슐화 예시코드 /** Encapsulation **/ class User { private name: s..
Class 객체지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 틀이다 객체를 정의하기 위한 상태, 멤버 변수와 메서드로 구성됨 동일한 object를 뽑는 기계 기본문법 - 클래스를 정의 할때는 "class" 키워드를 사용하여 클래스 정의, 생성사 함수, 메서드로 이루어짐 - 객체를 생성하기 위해 "new" 연산자를 사용하여 생성 예제1 //클래스 선언 class User { constructor(이름 , 나이) { this.name = 이름; // this.name = kim this.age = 나이; //this.age = 20 } sayHi() { //kim입니다, 20 살입니다 console.log(`${this.name}입니다, ${this.age} 살입니다`); } } /..
Node.js lv3 과제 - mongoDB로 작성된 db를 Sequlieze라이브러리를 사용하여 MySQL로 변경하기 - 기존 mongoose 명령어와 큰 차이 없이 동작원리가 거의 동일하여 MySQL로 DB를 변경하는데 어려움이 없었다. Migration 생성 - nickname컬럼을 수정해주지 않은 부분과 컬럼에서 UserId가 아닌 userId로 변경해주기 위해 Migration을 생성하여 DB를 수정하였다 npx sequelize migration:create --name 생성하려는migrate파일이름 - 생성된 Mirgration 파일, Migration파일을 위에서부터 아래로 실행되기 때문에 수정하려는 파일이 참조하려는 파일보다 아래에 있어야한다. Column수정 테이블에 입력된 컬럼의 값을..
미들웨어 웹 서버에서 요청이나 응답에 대해 공통적인 관리가 가능 ex)모든 요청에 대해 로그를 남겨 확인하고 싶은 경우 - 모든 로깅을 관리해주는 미들웨워 app.use(express.urlencoded({ extended: false })); app.use(express.json()); 유명한 웹서버 Apache nginx 미들웨어 기본 - 위에서 부터 순차적으로 미들웨어를 통과함 - next()가 무조건 있어야 다음 미들웨어 실행 app.use((req, res, next) => { console.log('첫번째 미들웨어'); next(); }); app.use((req, res, next) => { console.log('두번째 미들웨어'); next(); }); app.use((req, res, ..
Node.js 개인과제 에러 핸들링 및 배포 에러 핸들링 - 개인과제 마지막 부분인 각 항목별 에러 핸들링 코드를 작성하였다. api명세는 총 9개의 기능에 8개의 에러 핸들링 코드 작성했지만 거의 똑같은 코드여서 에러 처리할 부분이 제일 많은 delete메서드를 중점적으로 에러처리를 고민했다. 에러 처리는 try catch 문을 사용하여 처리 하였으며 아직 try catch에 대해 간단한 동작 방식만 이해하고 다른 어떤방식으로 에러를 처리하는지 구체적인 부분은 이해하지 못해서 조건문으로 작성하였다. //에러처리 try { let post = await Posts.findOne({ _id: _postId }) //# 400 body 또는 params를 입력받지 못한 경우 if (!password || n..
Node.js 1주차 개인과제 트러블 슈팅 1 . 게시글 작성 api - post 요청으로 게시판에 데이터를 삽입 하는 코드를 작성하였다. //1. 게시글 작성 api router.post("/posts", async (req, res) => { //입력받은 데이터 값을 req.body에 저장 const { user, password, title, content, createdAt } = req.body console.log(req.body) // 클라이언트가 요청한 데이터가 없을 때 if ((!user || !password || !title || !content) || null) { res.status(400).json({ message: "요청한 데이터가 없습니다." }) return } try {..
개념정리 HTTP - 데이터를 주고받는 통신규약중 하나 ( 다른방법 : Web Soekcet을 이용한 실시간 통신 (채팅)) - 가장 범용적으로 쓰이는 통신규약 - 통신규약 : 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속 표현수단 표현방법 사람 말 언어 컴퓨터 네트워크 통신규약 (http , ws) HTTP 통신방법 클라이언트(브라우저)는 서버(쉽게생각하면 식당종업원 = server (필요한 음식 === 필요한 데이터))에게 원하는 페이지, 데이터를 요구 Requsest 서버(server)는 클라이언트가 요구한 페이지나, 데이터의 존재여부를 확인하고 있으면 해당페이지에 대한 데이터를 반환 response(응답) 클라이언트(브라우저는) 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줌 Network ..