소프트웨어 형상관리 시스템(SCM: Software Configuration management System)
= 버전관리 시스템(변경 사항을 추적, 통제) + 알파
1. 로컬 버전 관리 시스템 (RCS)
pc에서 db에 프로젝트 저장 및 꺼내기
2. 중앙 집중식 버전 관리 (CVS : Control Version System), SVM (sub Version)
각 pc에서 remote 서버에서 프로젝트 check out(가져오기) / check out 한 프로젝트는 최신 snap shot이며, 변경이력은 확인 불가.
문제점: 서버에 문제가 생기면 모든 변경이력을 잃는다.
3. 분산 버전 관리
remote \ 프로젝트의 보관소 자체를 로컬pc에 clone 하고, 로컬에서 저장소를 서버에 push(업로드)
server는 그냥 백업용임
git 사용법
저장소 복제 : git clone 저장소URL[로컬 디렉토리명]
*로컬 디렉토리명 생략하면 REPO 이름으로 디렉터리를 만든다.
1. snap shot 대상 등록 (백업 대상 파일 명단 작성)
$git add 백업대상파일(추가/변경/삭제된 파일)
ex) git add docs/프로그램개론.pdf
대상 파일이 있는 폴더에서 git add 해야함
git add . 으로 현재 폴더 및 하위 폴더의 추가/변경/삭제된 파일 환경 변수 지정할 수 있음
2. snap shot 대상에 등록된 파일을 로컬 저장소에 백업
$git commit -m "백업 이유"
3. 로컬 저장소를 서버저장소와 일치 시킨다.
$git push
4. 서버저장소의 데이터를 로컬저장소로 가져오기
(대상폴더에서)
$git pull
자바기초
컴파일러 사용법
1. 단순 컴파일
$javac 소스파일명
ex)
javac hello.java
=>
Hello.class 소스파일과 같은 폴더에 .class 생성
2. -d 옵션 (새로운 폴더 만들고 class 파일 생성)
$javac -d 배포디렉터리 소스파일
ex)
$javac -d bin Hello.java // bin 폴더 생성됨
3. 소스파일과 클래스파일 분리
$javac -d bin src/Hello.java
bitcamp(폴더)
src(폴더) | Hello.java <- 소스파일 두는 폴더
bin(폴더) | Hello.class <- 컴파일된 파일을 두는 폴더
프로젝트 폴더
☞ 1 저장소 : 1 프로젝트
bitcampstudy / <- 저장소 겸 프로젝트 폴더 -src/ -bin/ |
실무에서 사용하는 방식
프로젝트의 변경관리 = 저장소 파일에 대해 변경 관리
☞ 1 저장소 : 多 프로젝트
bitcampstudy / <-저장소 - java-basic / <-프로젝트 폴더 -src / <- 소스 폴더 -bin / <- 컴파일된 파일을 두는 폴더 |
Build 도구
build : 컴파일 & 바이트코드 문서파일화 & 배포파일 생성
Ant - > Maven -> Gradle (*안드로이드 스튜디오 기본 빌드 도구)
빌드도구 구동
프로젝트 폴더 속 소스파일과 빌드스크립트 파일을 빌드도구를 통해 산출물을 냄(.jar, 문서파일)
주요빌드 도구
Ant | Maven | Gradle | |
빌드스크립트 파일 | build.xml | pom.xml | buil.gradle |
+의존 라이브러리 관리 =Maven |
+빌드스크립트 파일 +프로그래밍 언어도입 =Gradle |
maven 호환되며 의존라이브러리를 다운 받을 때 Maven 중앙서버를 사용 |
Gradle 사용법
1. 프로젝트 디렉토리 구성 (=maven표준 디렉터리 구조와 같다)
$gradle init
// 옵션대로 아래와 같은 폴더를 만들어준다
2. 프로젝트 빌드
$gradle build = compile -> test -> .jar 파일로 packing
프로젝트폴더 속 setting gradle 실행 후
app 폴더 속 build.gradle 실행,
src 폴더에서 소스 컴파일 후 test 후
build/ 폴더 하위 classes/ <- 소스파일 컴파일 후 생성된 .class 파일 저장
distribution/ <- 최종산출물인 배포파일 저장
3. 프로젝트 실행
$gradle run
$gradle -q run (-q옵션 : 에러로그만 출력)
4. 개별 클래스 실행
프로젝트 폴더 $ java -classpath build/classes/java/main bitcamp.App
bitcamp.App => 패키지
main() 메서드
-> jvm이 클래스를 실행할 때 제일 처음 실행하는 코드블럭(메서드=함수)
= 진입점(entry point)
메인이 없는 클래스는 직접 실행할 수 없다.
'[네이버클라우드] 클라우드 기반의 개발자 과정 7기 > 웹프로그래밍' 카테고리의 다른 글
[NC7기-23일차(5월25일)] - 웹프로그래밍 4일차 (4) | 2023.05.25 |
---|---|
5/25 깃 사용법, gradle (0) | 2023.05.25 |
5/24 git, gradle (1) | 2023.05.24 |
[NC7기-21일차(5월23일)] - 웹프로그래밍 2일차 (1) | 2023.05.23 |
5/23 powershell 설정 및 git 연결 (0) | 2023.05.23 |