오늘 공부한 내용을 두서 없이 작성해보겠다.
JS와 스프링을 공부했는데 기초에 가까운 내용을 공부해서 아직까지는
서로 연관성도 없고 공부글이라기 보다는
개인적인 일기에 가까운 듯하다.
프로그래밍 언어 중 하나로 웹 페이지의 동적인 기능을 구현하기 위해 사용된다.
자바스크립트는 웹 브라우저에서 실행되는 클라이언트 사이드 언어이다.
소스코드를 한줄 한줄 읽어나가는 형식인 인터프리터 방식으로 실행된다.
자바스크립트는 프론트엔드 , 백엔드 둘 다 개발이 가능하며
IOS, 안드로이드 등 다양한 분야에서 널리 사용되고 있다.
JavaScript 사용 방법
내부스크립트는 HTML문서의 <script> 태그 안에 JS코드를 직접 작성하는 방식이다.
<script> 태그를 <html> 파일의 <head>또는 <body>안에 작성한다.
주로 간단한 테스트 코드 작성에 사용한다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>내부 스크립트 예제</title>
</head>
<body>
<script>
function greet() {
alert("Hello, 내부 스크립트!");
}
</script>
</body>
</html>
자바스크립트 파일을 HTML과 별개인 .js 확장자의 파일로 저장한 후 불러온다.
HTML내에서 <script>의 src속성으로 HTML문서 위치의 기준 파일 경로를 입력해준다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>외부 스크립트 예제</title>
</head>
<body>
<script src="script.js"></script>
<button onclick="greet()">Click Me</button>
</body>
</html>
JS의 기초문법1
JavaScript에는 변수를 선언하는 3가지의 키워드가 있다.
1. var
최신 코드에서는 거의 사용하지 않으며 , let과 const로 대체된다.
변수가 선언된 함수 내부에서만 유효하며
같은 이름의 변수를 다시 선언할 수 있다.
변수가 선언되기 전에 해당 변수에 접근할 수 있지만 , 그 값은 undefined로
초기화된다.
function exampleVar() {
if (true) {
var x = 10; // var는 블록 스코프를 무시
}
console.log(x); // 10
}
exampleVar();
var a = 5;
var a = 10; // 중복 선언 가능
console.log(a); // 10
2. let
변수가 선언된 블록({ }) 내부에서만 유효하다.
함수와 블록 모두에서 사용할 수 있다.
같은 이름으로 변수를 다시 선언할 수 없다.
선언 전에 변수를 사용하려고 하면 참조 오류가 발생한다.
function exampleLet() {
if (true) {
let x = 10; // let은 블록 스코프를 따름
console.log(x); // 10
}
// console.log(x); // 변수 x는 블록 외부에서 유효하지 않음
}
exampleLet();
let a = 5;
// let a = 10; // 이미 선언되어 에러가 남
3. const
한번 값을 할당하면 재할당이 불가능하다.
let과 동일하게 블록 ({ }) 내부에서만 유효하다.
초기화 후 변경이 불가능하지만
객체 혹은 배열의 속성은 수정이 가능하다.
선언 전에 사용하려고 하면 참조 오류가 발생한다.
function exampleLet() {
if (true) {
let x = 10; // let은 블록 스코프를 따름
console.log(x); // 10
}
// console.log(x); // 변수 x는 블록 외부에서 유효하지 않음
}
exampleLet();
let a = 5;
// let a = 10; // 이미 선언되어 에러가 남
스프링을 배우기 전에 알아야 할 기본적인 지식들을 소개하겠다.
서버로 요청하는 모든 프로그램
클라이언트의 요청을 받아 처리하는 주체
데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소
Relational Database의 약자
관계형 데이터베이스
데이터를 행과 열로 이루어진 테이블로 관리하며 기본키를 사용해 각 행을 식별함
테이블 간에 관계도 지을 수 있다.
RDB는 저장,질의,수정,삭제가 용이하나 성능을 올리는게 쉽지않음
데이터베이스의 성능을 올리기 위해서는 머신의 성능을 좋게하는 스케일 업 혹은
머신을 여러 대로 분리하는 스케일 아웃이라는 것이 필요함
스케일 아웃은 데이터베이스의 분산이 필요 → 트랜잭션을 사용하면 성능이 떨어짐
트랜잭션이란?
데이터베이스의 상태를 변화시키기 위한 작업의 단위
모든 작업이 성공적으로 완료되거나 하나라도 실패하면 전체 작업이 취소 되어야 함
다음의 조건을 만족해야한다.
원자성
트랜잭션 내의 모든 작업이 전부 성공하거나 전부 실패해야함
일관성
실행되기 전과 후의 일관성이 데이터베이스의 보장되어야함
고립성
동시에 여러 트랜잭션이 실행될때 독립적으로 실행되는 것처럼 보장되어야 함
지속성
성공적으로 완료되면 그 결과는 영구적으로 반영되어야 함
IP : 서버의 주소
Port : 해당 서버의 특정 서비스 주소
라이브러리
→ 애플리케이션 개발에 필요한 기능인 클래스,함수 등을 모아놓은 코드의 모음
프레임워크
→ 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발환경
즉, 프레임워크는 애플리케이션을 개발할 때 전체적인 구조를 잡기 위해 사용하는 것이고
라이브러리는 애플리케이션을 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용