전체 글 99

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

Thread(스레드)

Thread 스레드 컴퓨터의 기본 작업 실행 단위. 하나의 스레드는 하나의 작업이다. 스레드는 크게 물리 스레드(Physical thread)와 논리 스레드(Logical thread) 로 나뉘어진다 물리 스레드: CPU 코어에서 동시에 실행할 수 작업의 개수를 뜻함 논리 스레드: OS에서 다루는 작업들이다. 논리 스레드가 실제로 실행이 되려면 물리 스레드에 작업이 인계(스케줄링)가 되어야 한다. 때문에 OS는 현재 실행 예정인 논리 스레드를 스케줄링 전략(process scheduling)에 따라 물리 스레드에 넘겨줘서 작업을 실행시킨다. 하나의 프로세스는 기본 1개 이상의 논리 스레드로 실행이 된다. OS는 프로세스의 스레드들을 스케줄링 전략에 따라 CPU의 물리 스레드에게 넘겨줌으로써 멀티태스킹을 ..

OS 2023.12.09

정규표현식 과 리눅스 명령어

파일의 권한 r w - 읽기 쓰기 사용가능 4 2 1 파일의 권한 변경 : chmod chmod [파일권한] [변경할 파일 위치 또는 이름] chmod 777 hello.txt /*숫자는 순서대로 /소유자 /그룹 /그외 사용자를 의미함*/ 소유권 변경 : chown root 권한이 있어야 실행 가능 chown [소유할유저]:[소유할그룹] [소유권 변경하고 싶은 디렉토리 or 파일 명] 디렉토리 생성 : mkdir 빈파일 생성 : touch touch [생성할 파일 이름] 형식으로 사용 touch [디렉토리 경로/파일 명] 사용 가능 디렉토리 삭제 : rmdir 비어있는 디렉토리를 삭제 지정한 디렉토리에 파일이 있을 경우 삭제 불가 파일 및 디렉토리 삭제 : rm rm [option] [삭제할 파일 및 디..

OS 2023.12.08