온라인코딩부트캠프 63

트랜잭션과 격리 수준

트랜잭션 특징 원자성(Atomicity) 트랜잭션이 DB에 보두 반영되거나 모두 반영되지 않아야 한다. 일관성(Consistency) 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다. 독립성(Isolation) 한 트랜잭션이 동시에 병행될 때, 다른 트랜잭션이 연산에 끼어들 수 없다. 지속성(Durability) 트랜잭션이 성공적으로 처리되면 영구적으로 반영되어야 한다. Commit 과 Rollback Commit : 하나의 트랜잭션이 성공적으로 끝나 DB에 지속성을 만족시켰음을 알리는 연산 Rollback : 하나의 트랜잭션 처리 중 하나가 비정상이였을때 원자성이 깨져 원래 대로 돌린다. DBMS의 구조 DB의 구조는 Query Processor(쿼리 처리기) 와 Storage System(저장 ..

데이터 베이스 2023.12.29

JavaScript에서 Object 및 this

JS 객체 형식 예시) const 객체명 = { 프로퍼티 : ‘값’, } 자바 객체의 특징 1. 함수의 프로퍼티 - 선언된 객체의 내부 프로퍼티는 확정된 틀이 아니며 추후 프로퍼티와 값이 추가될 수도 있다. 예시) const obj = { name : 'a', age : 10, } obj.id = 1; obj['gender'] = 'male'; console.log(obj) /* { "name": "a", "age": 10, "id": 1, "gender": "male" } */ delete obj.gender; console.log(obj) /* { "name": "a", "age": 10, "id": 1 } */ 2. 함수를 통한 생성 - 함수를 정의 하고 함수를 실행하면서 객체를 만들어 변수에 넣을..

JavaScript 2023.12.27

MVC 아키텍쳐 및 SpringMVC 구조

MVC 아키텍쳐 MVC 란? Model - View - Controller를 독립적으로 구성하여 확장이 가능하고 유연하도록 설계한 아키텍처 Model : 데이터가 담겨 있는 객체 클라이언트의 요청에 대한 응답할 결과 데이터가 담기는 곳 View : 요청에 따른 결과값을 담은 Model을 받아 웹브라우저나 애플리케이션 화면에 담아 제공 Controller : 클라이언트의 요청을 받아 로직을 수행하여 결과값을 주는 역할 MVC1 패턴 MVC1 패턴은 View와 Controller를 모두 JSP가 담당했었다. JSP가 요청을 받고 응답을 View로 처리하는 구조 JSP에 요청 응답 및 화면에 뿌려주는 역할까지 하여 재사용성이 떨어지고 유지보수가 어려웠다. 이로 인해 MVC2패턴이 생겨났다. MVC2 패턴 MV..

Spring 2023.12.26

제어의 역전(IoC)과 의존관계 주입(DI)

더보기 Spring 특징 - Java를 기반으로한 프레임워크 - POJO 프로그래밍을 지향 : 별도의 API가 아닌 Java 코드를 이용하여 객체를 구성하는 방식, 특정 라이브러리나 기술에 종속적이지 않다. - 데이터베이스와 연동되어 트랜잭션을 지원한다. - 의존성 주입(DI)를 통하여 스프링 내부의 객체를 관리해준다. - 스프링 컨테이너에 Bean객체를 등록(컴포넌트 스캔을 통해 Bean에 등록)하면 스프링 컨테이너가 Bean의 생명주기(생성→의존성 설정→ 초기화 → 소멸)을 모두 관리해준다. - 의존성 부여의 경우 @Autowired로 주입된 객체를 스프링이 스프링 컨테이너에서 찾아 의존관계를 외부에서 넣어준다. 장점 정형화 되어 있는 프레임워크임으로 일정수준의 품질을 기대할 수 있다. 유지보수가 비..

Spring 2023.12.22

객체지향의 5가지 원칙 (SOLID)

SOLID 원칙을 지키며 설계를 한다면 좋은 객체 지향 설계를 할 수 있다. 그렇다면 SOLID 원칙이 무엇인지 아래와 같이 예시와 함께 정리 해보았다. SOLID • SRP: 단일 책임 원칙(single responsibility principle) • OCP: 개방-폐쇄 원칙 (Open/closed principle) • LSP: 리스코프 치환 원칙 (Liskov substitution principle) • ISP: 인터페이스 분리 원칙 (Interface segregation principle) • DIP: 의존관계 역전 원칙 (Dependency inversion principle) • SRP: 단일 책임 원칙(single responsibility principle) - 한 클래스는 하나의 책..

Java 2023.12.22

REST와 RESTful

REST와 RESTful의 개념 REST의 정의 “Representational State Transfer” 의 약자 -자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미. -자원(resource)의 표현(representation) 에 의한 상태 전달 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일. REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나. REST 개념 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해..

HTTP 2023.12.20

자바스크립트 기본

자바스크립트의 역할 HTML : 웹의 구조 CSS : 꾸며주는 역할 JS : 동적 요소 변수 자바와 같이 변수를 변경 할 수 있다 변수의 이름은 숫자로 시작할 수 없음 자바스크립트의 변수는 타입을 지정할 필요 없으며 타입을 인식함 var 변수이름; -> 변수 선언 변수이름 = ""; 변수 초기화 ""의 경우 String var 변수이름 = 초기화 값 console.log(변수); -> 변수 출력 자바스크립트 적용 로 스크립트 코드를 연동 시킴 변수의 타입 JS에서 타입의 특징정적 타입(static/strong type)의 언어이를 명시적 타입 선언(explicit type declaration)이라 한다 컴파일 시간에 변수의 타입이 결정되는 언어 대표적으로 C,JAVA가 있다 정적 언어는 변수에 들어갈 ..

JavaScript 2023.12.16

MySQL 명령어 및 쿼리 (익숙하지 않은 문법 기록용)

USER 생성 명령어 CREATE USER 유저이름@localhost or ip 주소 IDENTIFIED BY ‘비밀번호’; 사용자 권한 부여 및 제거 // 권한 부여 GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명TO 유저이름@localhost or ip; FLUSH PRIVILEGES; /* `ALL PRIVILEGES는 모든 권한 부여 (SELECT, INSERT, DELETE 등 부여 가능) *(데이터베이스명).*(테이블명) 로 설정시 모든 데이터베이스의 테이블을 의미 마지막 FLUSH 해줘야 적용됨 */ // 권한 제거 REVOKE ALL ON 데이터베이스명.테이블명FROM 유저이름@localhost or ip; 제약조건정의(CONSTRAINT) //테이블 생성시 맨 아래에서 ..

데이터 베이스 2023.12.12

데이터 베이스 정규화

정규화란? 테이블간 중복된 데이터를 허용하지 않는 것 정규화를 통하여 무결성을 유지할 수 있으며 DB 저장 공간을 줄일 수 있다. 제1 정규화 테이블의 컬럼이 원자값(Atomic Value, 하나의 값) 갖도록 테이블을 분해한다. 정규화 전 이름 강의 Kim 국어 Lee 과학,수학 Park 영어 Jang 한자,중국어 정규화 후 이름 강의 Kim 국어 Lee 과학 Lee 수학 Park 영어 Jang 한자 Jang 중국어 제 2정규화 1차 정규화를 진행한 테이블에 대해 기본키의 일부(결과값을 결정하는 일부분)로 데이터가 결정되지 않도록 정규화 하는 것 *부분함수종속 을 제거하고 *완전함수종속이 되도록 테이블을 분해하는 과정 *부분함수종속 : 기본키를 구성하는 속성 중 일부가 다른 컬럼의 결정자 역할을 하는 ..

데이터 베이스 2023.12.12