USE TASDBGS;
-- 사용할 DB 선택
ALTER DATABASE TASDBGS SET RECOVERY SIMPLE;
-- DB 복구 모델을 SIMPLE로 설정하여 파일을 비운다.
DBCC SHRINKDATABASE(TASDBGS);
-- DB의 필요 없는 공간을 축소
ALTER DATABASE TASDBGS SET RECOVERY FULL;
-- DB 복구 모델을 FULL 로 설정
Git을 설치하고 나서 가장 먼저 해야 하는 것은 사용자이름과 이메일 주소를 설정하는 것이다. Git은 커밋할 때마다 이 정보를 사용한다.
시작 - git폴더 - Git Bash 실행
아래와 같이 콘솔창이 나오면 정상실행 완료!
사용자 정보
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
위에 쓰인 you@example.com, Your Name 부분을 본인 이메일, 이름으로 수정해서 Enter를 해주면 된다.
시작하기
git init 를 터미널에 쳐서 .git이라는 폴더 만든다.
git 명령어: - git status // 상태 파악 - git status --short // 혹은 -s하면 짧게 볼 수 있음 (-- 를 앞에 붙이면 전체 단어를 씀)
- git add 파일명 // (ex. basic.html)을 하면 index에 올라온 상태 git add . // (.은 해당폴더)(*은 전체폴더) 현재 폴더에 있는 모든 것을 업로드한다는 뜻
- git commit // 터미널에서 commit하기 (commit창 뜨고 간단한 메모 쓰고 끄면 저장됨) git commit -m "n 번째 커밋입니다." // 커맨드 창에서 바로 메모 쓰고 commit할 수 있는 기능, 창 안뜸 git commit -am "n 번째 커밋입니다." // add하면서 바로 commit까지 하기 (※ 만약, git commit시 터미널에서 하라고 나오면 내용 간단하게 쓰고, 맨 밑에 :q하면 그냥 꺼짐, :wq누르면 저장하고 꺼짐)
- git log // 커밋 기록 확인할 수 있음 git log --oneline // 로그 간단하게 보여줌 한 줄씩 git log --graph // 간단하게 디렉토리를 표시해줌 (근데 Extensions에서 git graph 찾아서 설치하고 Source control에서 누르면 더 가시적으로 볼 수 있음)
- git --help // 간단한 명령어들 알려줌
**저장된 기록을 되돌릴 수 있는 방법(stage->work tree)
1. add // 스테이지로 올린다 - git add . //
2. restore // 스테이지에 올라와 있는 것을 취소한 방법 - git restore --staged 파일명 // stage에 올라간 파일 다시 내릴 수 있음
3. - git diff --staged // 뭐가 변경되었는지 확인할 수 있다.
** 저장한 기록을 되돌릴 수 있는 방법(commit -> stage) // 반드시, commit이 된 상태로 움직여야 함, 무조건 commit 먼저 하기) // 마스터(혹은 메인이라고도 함)가 항상 기본이라고 생각해야 함
프로그램 개발에 필요한 컴파일러,통합개발도구(IDE),서버 런타임,편집기 및 유틸리티 등을 개발 컴퓨터에 세팅해 놓은 것.
🟩 Eclipse
자바 기반의 오픈소스 통합 개발 환경(IDE)입니다. 이클립스는 프로그래밍 언어로 자바뿐만 아니라 다양한 다른 프로그래밍 언어와 프레임워크를 지원하며, 코드 편집, 디버깅, 빌드, 테스트 및 프로젝트 관리를 위한 다양한 기능을 제공합니다.
🟩 Web
정의: 웹은 인터넷 브라우저를 통해 접근되는 웹사이트나 웹 애플리케이션을 의미합니다.
접근 방식: URL을 통해 접근하며, 다운로드나설치 과정 없이사용 가능합니다.
호환성:다양한 브라우저와 기기에서 사용할 수 있어호환성이 높습니다.
개발 언어: HTML, CSS, JavaScript 등 웹 표준 기술을 사용합니다.
🟩Front-end 개발
프론트엔드는 단어에서 예측할 수 있듯이사용자의 앞에 보이는 화면, 즉 인터페이스를 만드는 작업이라고 볼 수 있다.
프론트에서사용자가 선택한 요청사항에 따라 데이터나 서비스를 서버에 요청하거나 또는 요청해서 얻은 데이터를 사용자에게 보여주는 것. 보이는 인터페이스에 대한 개발인 만큼 사용자 인터페이스(UI)와 사용자 경험(UX)과 밀접한 관련이 있다.
🟩HTML(HyperText Markup Language)
•기능: HTML은웹페이지의 구조를 정의하는 마크업 언어입니다.웹페이지의 틀을 만들고,텍스트,이미지,링크 등의 콘텐츠를 웹페이지에 배치합니다.
•역할/필요성: HTML은 웹의 기본 구조를 만드는 데 필수적입니다.웹페이지의 모든 요소들이HTML을 통해 정의되며,이를 통해 사용자에게 정보를 제공하고 상호작용을 가능하게 합니다.
🟩CSS(Cascading Style Sheets)
CSS 적용 전 - 후
•기능: CSS는HTML로 만든 웹페이지의 디자인과 레이아웃을 꾸며주는스타일 시트 언어입니다.폰트 스타일,색상,간격,레이아웃 및 다양한시각적 효과를 정의합니다.
•역할/필요성: CSS는 웹페이지의 시각적 매력을 높이는 데 중요합니다.사용자 경험(UX)을 향상시키고,웹페이지를더 읽기 쉽고 접근하기 쉬운 형태로 만듭니다.반응형 디자인을 통해 다양한 기기에서도 웹페이지가 잘 보이게 할 수 있습니다.
🟩JavaScript
•기능: JavaScript는 웹페이지에Interactive한 요소를 추가하는 프로그래밍 언어입니다.사용자와의 상호작용을 가능하게 하고,데이터를 처리하며,동적인 콘텐츠를 생성합니다.
•역할/필요성: JavaScript는 웹페이지를 동적이고 생동감 있게 만듭니다.사용자의 입력에 반응하여 웹페이지의 내용을 실시간으로 변경할 수 있으며,복잡한 사용자 인터페이스와 애니메이션,게임,양방향 어플리케이션 등을 구현할 수 있습니다.
🟩AJAX (Asynchronous JavaScript and XML)
•비동기 통신:서버와의 통신을 위해XMLHttpRequest객체를 사용하여,사용자의 활동에 따라 필요한 데이터만 서버로부터 비동기적으로 요청하고 받아옵니다.
동기 통신(좌), 비동기 통신(우)
•페이지 일부분만 갱신:서버로부터 받은 데이터를 이용해 웹 페이지의 특정 부분만을 업데이트합니다.이는 페이지 전체를 새로 고치는 것보다 빠르고 효율적입니다.
•JSON, XML, HTML,텍스트 데이터 처리: AJAX는JSON, XML, HTML,텍스트 등 다양한 형식의 데이터를 처리하고,이를 페이지에 동적으로 표시할 수 있습니다.
🟩Back-end 개발
백엔드 개발(Backend Development)은 웹사이트나 애플리케이션의 서버, 데이터베이스, 그리고 애플리케이션의 핵심 기능적 부분을 구축하는 과정을 말합니다. 사용자가 직접 보거나 상호작용하는 프론트엔드(웹 페이지의 시각적 요소 등)와 달리, 백엔드는 주로데이터 처리, 보안, 서버 관리 등 사용자에게 직접 보이지 않는 부분을 담당합니다.
백엔드 개발의 주요 구성 요소는 다음과 같습니다:
서버: 클라이언트(예: 웹 브라우저)의 요청을 받아 처리하고, 필요한 데이터를 응답으로 보내는 시스템입니다.
데이터베이스: 정보를 저장, 검색, 업데이트, 삭제할 수 있는 구조화된 데이터의 집합체입니다. 백엔드 개발자는 데이터베이스와의 상호작용을 통해 데이터를 관리합니다.
애플리케이션 로직: 사용자의 요청에 따라 특정 작업을 수행하고, 결과를 사용자에게 전달하는 프로그램의 일부분입니다. 이 로직은 서버에서 실행됩니다.
백엔드 개발자는 주로 서버 사이드 프로그래밍 언어(예: Java, Python, Ruby, Node.js 등)와 데이터베이스 관리 시스템(예: MySQL, PostgreSQL, MongoDB 등)을 사용하여 이러한 기능을 구현합니다. 또한, API(애플리케이션 프로그래밍 인터페이스) 개발, 서버 보안, 데이터 처리 및 저장 최적화 등의 업무도 수행합니다.
🟩JAVA
•기능:자바는 강력한객체지향 프로그래밍 언어로서,다양한 플랫폼에서 실행될 수 있는 애플리케이션을 개발하는 데 사용됩니다.
•역할/필요성:자바는‘WORA(Write Once, Run Anywhere)'이라는 특징을 가지고 있어,다양한 환경에서의 호환성과 이식성을 제공합니다.
•JDK (Java Development Kit):자바 애플리케이션 개발을 위한핵심 도구 모음으로,소스 코드를 컴파일하고 실행하는 데 필요한 컴파일러와 라이브러리를 포함합니다.자바 개발자에게 필수적인 환경입니다.
•JRE (Java Runtime Environment):자바 애플리케이션을 실행하는 데 필요한 환경을 제공하며, JVM을 포함한 라이브러리와 기타 파일로 구성됩니다.사용자가 개발된 자바 애플리케이션을 실행할 때 필요합니다.
•JVM (Java Virtual Machine):자바 바이트코드를 실행하고,다양한 운영 체제에서 자바 애플리케이션을 구동할 수 있도록 하는 가상 실행 환경입니다.'한 번 작성하면 어디서나 실행될 수 있음'을 가능하게 만드는 핵심 요소입니다.
🟩Spring
•정의 :엔터프라이즈용Java애플리케이션 개발을 편하게 할 수 있게 해주는오픈소스경량급 애플리케이션 프레임워크
•장점:다양한 라이브러리를 제공하며업무 분업화및 느슨한 결합을 통해유지보수에 용이하게 할 수 있다.
•단점:초기 설정 및러닝커브가높다.
🟩git
•기능:분산형 버전 관리 시스템의 한 종류이다.
✅버전관리란?
각 파일을이전 상태로 되돌릴 수 있다.
프로젝트를 통째로 이전 상태로 되돌릴 수 있다.
시간에 따라수정 내용을 비교해 볼 수 있다.
누가 문제를 일으켰는지도 추적할 수 있다.
누가 언제만들어낸 이슈인지도 알 수 있다.
파일을 잃어버리거나 잘못 고쳤을 때도쉽게 복구할 수 있다.
✅git의 장점?
소스 코드를 주고 받을 필요 없이, 같은 파일을여러 명이 동시에 작업하는 병렬개발이 가능하다.
분산 버전 관리이기 때문에인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 저장소가 날라가 버려도 원상 복구할 수 있다.
팀 프로젝트가 아닌, 개인 프로젝트일지라도 Git을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정도 간단해진다.
클라이언트가 GET, POST 등의 메소드를 이용해전송한요청을 받아 HTML이나 오브젝트를 HTTP 프로토콜을 이용해 전송하는 프로그램 입니다. 웹 서버는 웹 페이지, 이미지 등의정적인 컨텐츠만제공할 수 있습니다.
✅Apache 란?
Apache란 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버입니다. Apache는 오픈 소스이기 때문에 누구든지 수정, 재배포가 가능합니다. 게다가 Apache는 다양한 기능을 제공하고 다른 웹 서버들에 구축이 쉽다는 이유로 많이 사용되고 있습니다.
✅Tomcat 란?
Tomcat이란 아파치 재단에서 만든 오픈 소스 WAS(Web Application Server)입니다. Tomcat은 Java Servlet과 JSP가 실행할 수 있는 환경을 제공하여 동적인 페이지를 생성합니다. 그리고 DB 연결 및 데이터 조작, 다른 응용프로그램들과 상호 작용이 가능합니다.
🟩 App ?
•정의:앱은모바일 기기(스마트폰,태블릿)또는 데스크탑에 설치되어 사용되는소프트웨어 응용 프로그램입니다.
•접근 방식:앱 스토어(Apple App Store, Google Play Store등)를 통해 다운로드하여 설치한 후 사용합니다.
•호환성:특정 운영 체제(iOS, Android)에 최적화되어 있어,기기 간호환성이웹에 비해제한적일 수 있습니다.
•개발 언어: Swift, Kotlin, Java등 특정 플랫폼에 특화된 언어를 사용합니다.
jar파일로 만든 후 라이브러리 추가하는법 다시 해보기 (만약 FileInputStream 같은 파일 경로를 지정하는 class파일이 있으면 경로를 사전에 잘 설정하고 생각해 보기.)
🟩 객체지향 프로그래밍(OOP-//Object Oriented Programming)
실 세계(real world)의 일들을 객체를 사용해서 모델링하고, 객체를 사용하지 않으면 불가능 혹은 무지 어려웠을 일들을 쉽게 처리하는 방법을 제공한다는 것입니다.
객체지향은 코딩이 아니고, 설계이다.
캡슐화/ 상속 추상화/ 다형성
함수는 외부데이터의 영향을 받지 않기 위해 지역변수를 사용했다.... 근데 문제가 생겼다! 지역변수가 구조화되면 문제가 생긴다. 구조화된 객체를 사용하는 함수는 객체의 구조를 변경에 아주 취약하다.
캡슐화를 하면 데이터 구조에 따른 코드의 수정법 위를 캡슐 범위로 한정할 수 있다.(캡슐 범위 내에서 오류가 나서 그 부분만 찾으면 된다.)
은닉성
객체지향의 캡슐화
데이터구조 + 함수구조
🟩 객체와 개체
개체 : 개별적으롤 나눌 수 있는 것 (비행기, 자동차, 사람)/ 종류명(Type)이 개체이다.
객체 : "B747"이라는 개체의 "왼쪽으로 날아가는 비행기" 객체
추상화된 이름, 개체, 객체 구분하기
객체의 속성이란?
모든 객체는 식별하기 위해 식별코드가 존재한다.
🟩 static 메서드와 instance 메서드
class안에 함수는 static 메서드(울타리 안에 있는 함수)
객체지향으로 만들어지면 instance메서드
Static Method는 받아오는 값(매개변수)이 있으니까 This를 사용할 수 없다.
Instance Method는 받아오는 값(매개변수)가 없으니까 This를 사용해서 받아온다.(This생략가능)
🟩 생성자 : 초기화를 위한 특별한 함수
1. 객체가 생성되자마자 무조건 제일 먼저 실행되어야 만 한다.
2. 생성될 때 단 한 번만 실행되어야 만 한다.
new Exam();
new Exam + ();//소괄호는 생성자를 호출했다는 것
//생성자를 안만들어주면 기본 생성자가 생성됨
public Exam{
private int kor;
private int eng;
private int math;
}
Exam exam = new Exam();
Exam exam = new Exam(1); //parameter
Exam exam = new Exam(1,6);
public Exam(){//객체의 초기화(이름이 없어서 여러번 호출 할 방법이 없음)
kor =3;
eng = 4;
math= 5;
}
public Exam(int a){//객체의 초기화(이름이 없어서 여러번 호출 할 방법이 없음)
kor =a;
eng = 4;
math= 5;
}
public Exam(int a, int b){//객체의 초기화(이름이 없어서 여러번 호출 할 방법이 없음)
kor =a;
eng = b;
math= 5;
}
🟩 생성자 오버로드
public Exam(){//객체의 초기화(이름이 없어서 여러번 호출 할 방법이 없음)
//this.kor=3;//사용한 적이 없어야 한다.
this(3,4,5);//이름이 없기때문에 this를 사용한다.
}
public Exam(int kor,int eng, int math){//객체의 초기화(이름이 없어서 여러번 호출 할 방법이 없음)
this.kor =kor;
this.eng = eng;
this.math= math;
}
🟩 캡슐에 역할부여와 플랫폼
캡슐화는 함수만 묶는 것이 아니라 역할을 주어지는 것.
Ex) Exam아 국어 성적 저장해~!
🟩 상속
객체의 분리와 결합(Has A 관계)
UI와 데이터 서비스는 분리하는 것이 바람직 하다.
Getter/Setter
용도 :
객체지향 프로그램의 구조
Dependency 의존성 = 도구라고 부른다
c를 b가 만들엇다
객체의 탈부착 관계(Associaton Has a 상속)
------------------------------------------- 1. Association: 파트타이머 부품(Exam) 클래스의 속성만 준비한 상태에서 필요에 의해 객체를 주입해야 하는데,
이때 setter(혹은 다른 이름의 만들어주는 메소드도 가능) 또는 생성자의 매개변수로 부품(Exam) 클래스의 객체를 생성하는 녀석
2. Aggregation: 파트타이머 Association이 일대다(배열)의 관계가 되면 이녀석
3. Composition: 정규직 제품 클래스(ExamConsole)의 객체가 만들어지면서 생성자에 의해 부품 클래스(Exam)의 객체가 동시에 만들어지는 녀석 (일대다, 일대일 구분 없음) -------------------------------------------
Composition has a(일체형) : 객체를 A가 만들때 B객체가 같이 있는 것.(한번에 다 준비되어 있는 상태)
public class ExamConsole {
// has a 상속관계/ A(ExamConsole)가 B(Exam)를 가지고 있다.
// 누군가가 ExamConsole을 만들면 Exam이 자동으로 만들어 진다.
//Composition has a 관계
private Exam exam = new Exam();
}
Aggregation has a () : 그때 그때 필요할 때 만들어 두는 관계.(준비만 해두는 상태)
public class ExamConsole {
private Exam[] exams;
private int index;
public ExamConsole() {
int max = 3;
exams = new Exam[max];
index = 0;
}
}
SELECT age+100 age from member;
SELECT age+'100' age from member;
//오라클에서는 +연산자는 숫자로 연산한다.
문자열 더하기 연산자
SELECT NAME ||'('||ID||')' NAME FROM MEMBER ORDER BY ID;
SELECT *FROM [테이블명] WHERE BETWEEN [숫자] AND [숫자]
%를 사용하면 *와 같음.
010-2345-246[0123456789] //뒤에 0~9까지 숫자잇것을 찾음
010-2345-246[0-9] //위랑 같은 식
010-2345-[0-9][0-9][0-9][0-9] //간단하게 표현한 식
010-2345-\d\d\d\d
010-2345-\d{4}
010-\d{4}-\d{4}
010-\d{3, 4}-\d{4} //중간에 3자리 또는 4자리를 찾음
01[016789]-\d{3, 4}-\d{4} //예전 번호 양식으로 정규식을 만듦
^\d{1,3}(?:,\d{3})*원$
regular +expression -mdn
(?<=\+)\w+
x
SELECT M.* FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) M WHERE NUM BETWEEN 6 AND 10 ;--SUB 쿼리
SELECT ROWNUM, MEMBER.* FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 5 ;
--SELECT ROWNUM, MEMBER.* FROM MEMBER WHERE ROWNUM BETWEEN 6 AND 10 ;
SELECT * FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) WHERE NUM BETWEEN 6 AND 10 ;
SELECT * FROM ( SELECT ROWNUM NUM, M.* FROM (SELECT * FROM MEMBER ORDER BY ID DESC) M )WHERE NUM BETWEEN 6 AND 10;
SELECT M.* FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) M WHERE NUM BETWEEN 6 AND 10 ;--SUB 쿼리
SELECT DISTINCT AGE FROM MEMBER;--중복값 제거
SELECT LENGTH(NAME) FROM MEMBER;
SELECT * FROM MEMBER WHERE LENGTH(NAME)=3;
SELECT * FROM MEMBER ORDER BY NAME DESC;
SELECT * FROM MEMBER ORDER BY NAME DESC,ID ASC;
UPDATE MEMBER SET NAME='리유진' where ID=15;
오름차순 - 낮은수부터
내림차순 - 큰수부터
--문법 작성시 이 순서대로 써야한다.
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY