。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/웹프로그래밍

[NC7기-22일차(5월24일)] - 웹프로그래밍 3일차

quarrrter 2023. 5. 24. 20:29

소프트웨어 형상관리 시스템(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)

메인이 없는 클래스는 직접 실행할 수 없다.