
day31. 2024-11-19-화요일

day33. 2024-11-21-목요일
--UI가 완성되지 않았더라도 나는 테스트할 수 있는 클래스 설계를 했는가?
MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같이 설명할 수 있습니다.
모델: 데이터와 비즈니스 로직을 관리합니다.
: 만일 나중에 myBatis 라이브러리를 사용하기 편리한 설계는?
: 비즈니스 로직 - BoardLogic.java
: 데이터 계층은 ?
뷰: 레이아웃과 화면을 처리합니다.
컨트롤러: 모델과 뷰로 명령(메세지)을 전달합니다.
:BoardController.java
html : DOM Tree
css : 획일적인 디자인, 일괄처리 - CSSOM
-> DOM Tree + CSSOM = Render Tree -> 브라우저
태그들에 대한 인터프리터 - 태그는 안보임 - 화면출력
innerHTML(태그안보임) vs. innerText(태그보임)
///////////// js와는 구분

브라우저의 도움이 없어서 Javascript코드를 실행할 수 있음
-> NodeJS 기반의 백엔드 구성이 가능하다
V8엔진 - 크롬 - 오픈소스 - 엣지
V8엔진 기반으로 Server Side Javascript 소프트웨어 시스템
Java 언어가 각각의 운영체제 JVM을 통해 구동되듯이 NodeJS도 웹브라우저에 종속적인 Javascript를 각각 운영체제에서 실행할 수 있도록 Javascript Runtime환경을 제공
https://velog.io/@tjdrhd1207/Node.js-프로젝트-생성하기n
npm install [모듈명] -g : global하게 설치
npm install [모듈명] --save
npm install - 프로젝트 package.json에 작성된 모듈을 한번에 설치하고 싶을 때 사용
1) 프로젝트 디렉토리를 생성한 후 생성된 디렉토리로 이동한다
2) 익스프레스 프로젝트를 쉽게 생성해주는 express-generator모듈을 전역으로 설치
npm install express-generator -g
3) express명령어를 실행해서 프로젝트 디렉토리를 생성한다. 이때 화면담당 템플릿 엔진은 자바진영의 jsp와 유사한 ejs로 설치한다.(jsp예습효과) -e옵션 반드시 추가할것
express -e 프로젝트명
4) express 기반으로 웹서버를 구동하려면 package.json에 의존성 패키지를 반드시 설치해야한다. npm install
5) 실행방법: npm start 엔터, 서버 중지: Ctrl+c
6) 만일 서버의 포트번호 변경하려면 ./bin/www 파일에서 수정: 디폴트-3000
7) npm start로 노드를 실행하면 소스 코드 수정한 것이 반영되지 않음. 불편-
day34. 2024-11-22-금요일
완벽하려고 말기! 불안해 말기! 복습 조금씩 꾸준히만 하기!

네이티브 앱 키: a6e8c481b51e2cf273af71f21c17d334
REST API 키: c14d46d612605294b4c8db02018a4136
JavaScript 키: e1ce6d7ae64d07e10d431f4f6bc635dd
Admin 키: e8fb9b545236530a050b4d843d721676
justify-content-end: 내부 요소를 가로 방향으로 끝정렬
justify-content-center: 내부 요소를 가로 방향으로 중앙 정렬
폼컨테이너
: 12칸 중에 몇개를 차지하는 지 비율로 정해서 표현한다
col-6 col-md-4
class="row my-5"
class="row": 부트스트랩 프레임워크에서 지원하는 그리드 시스템
row는 그리드의 한 행을 정의하면, 내부에 있는 열을 정렬함
주로 화면을 구분학 배치를 잡는 데 사용함
my-5: 부트스트랩의 마진 클래스임, 상단 하단의 5단위의 간격을 추가한다
:기본단위가 0.5rem
class=col : 열 클래스
부모 요소인 row안에서 열column을 구성함
자동으로 화면크기에 맞춰 조정되면 다른 열들과 균등하게 배치됨
jQuery는 HTML 문서 탐색, 이벤트 처리, 애니메이션, AJAX 요청 등을 간편하게 처리할 수 있도록 돕는 자바스크립트 라이브러리입니다. 웹 개발에서 반복적인 작업을 더 쉽게 할 수 있도록 해주는 도구로, 다양한 브라우저에서 일관된 동작을 보장합니다(chatGPT).
jQuery 사용 이유:
간단한 문법: 복잡한 자바스크립트 작업을 더 간단하게 작성할 수 있습니다.
호환성: 다양한 브라우저에서 동일한 방식으로 작동하므로, 브라우저 호환성 문제를 신경 쓸 필요가 없습니다.
빠른 개발: 많은 기능을 이미 제공하기 때문에 개발 속도가 빨라집니다(chatGPT).
book\index.ejs
<script `src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <!-- jquery import -->
-> JavaScript Bundle with Popper - import하는것
$.ajax({
url: 'data.json',
method: 'GET',
success: function(response) {
console.log(response);
}
});
사용 기본 형태 : $()
day35. 2024-11-25-월요일
ECMAScripts : var사용함 - 호이스팅 이슈가 있다
ECMAScript6 : let - 변하는값, const - 고정
javascript
const str1 = 'world' //world
const str2 = `Hello ${str1}` //Hello world - 템플릿 리터럴

(vs. '안녕', 1, 1000, -500 -> 참)




js에서는 함수도 객체 취급을 한다
함수호출 파라미터로 함수객체를 사용할 수 있다

오버로딩, 오버라이딩이 없는 js

(출처: https://codingapple.com/unit/why-use-firebase/)
Firebase는 서버 대신 만들어주는 서비스입니다
뭔가 배우기 전에 항상 용도를 잘 알아야합니다.
Firebase는 님들이 서버없이도 웹서비스/앱서비스를 만들 수 있게 도와주는 서비스입니다.
그래서 개발시간을 매우 단축가능한데 왜 가능한 것인지 그림으로 표현하자면

▲ 원래 웹서비스는 이렇게 동작하는데
유저가 댓글을 올리고 싶으면 1. 댓글을 서버에게 보내고 2. 서버는 댓글을 database에 저장해야합니다.
서버 안거치면 안됩니다. 악플 야짤 이런거 검열 어케할 것임
그래서 님들이 개발해야하는 코드는 2개인데
1. 댓글을 서버에 보내는 코드 (프론트엔드)
2. 서버가 댓글을 database에 저장하는 코드 (백엔드)
이렇게 됩니다.

▲ 근데 Firebase를 쓰시면 서버 코드 개발을 대신 해주기 때문에
님이 개발할건 1. 댓글을 서버에게 보내기 이거 밖에 없습니다.
그럼 Firebase가 database에 스마트하게 저장 알아서 해줌
그래서 HTML CSS JS 이 정도만 아시면 누구나 웹서비스 개발이 가능합니다.
(출처: https://codingapple.com/unit/why-use-firebase/)
day36. 2024-11-26-화요일
ejs & include의 역할

day37. 2024-11-27-수요일
###수업진도

https://velog.io/@rtandard1000/Handlebars-탬플릿-엔진이란-무엇인가
html
<img src="{{image thumbnail}}" alt="도서이미지" style="cursor:pointer; width:80%">
//{{thumbnail}} -> {{image thumbnail}로 변경
js
//Handlebars로 도서이미지 출력시 이미지가 없으면 더미 이미지로 변환하기
Handlebars.registerHelper("image",function(thum){
if(thum) return thum
else return "https://placehold.co/120x174"
})
-> 결과

(bookApp/views/posts/write.ejs)
npm -> Web repository를 가지고 있다
BOM의 XMLHttpRequest를 사용하지 않는다
구글API 사용시 -> url로 요청한다 -> 이때 import 해야 한다 (로컬이 아니라 web에 가져옴)
브라우저는 로컬로 서버와 동기화할 수가 없다. 프론트엔드에 불과하다.
따라서 NodeJS에서 npm을 가지고 web repo를 사용해야 한다. -> node_modules에 설치, package.json에서 관리 -> require로 사용
var express = require('express'); in app.jsrequire()는 다 node_modules에 있는 라이브러리 -> 로컬이므로 웹이 아님day38. 2024-11-28-목요일
day39. 2027-11-29-금요일





