본문 바로가기
네이버클라우드/JAVA 웹 프로그래밍

JAVA 3일차 (2023-05-24) 프로그래밍 개론 DAY3

by prometedor 2023. 5. 24.

사용 OS => MacOS - M1 

Java Application 개발 준비

개인 작업 저장소 생성

ㄴ github 에서  repository 생성
=> https://github.com/github아이디/bitcamp-study(repository)

 

git clone https://github.com/eomcs/eomcs-docs

 

ㄴ 저번에 생성한 git 이라는 디렉터리에 강사님의 bitcamp-study 를 teacher 라는 이름으로 clone

ㄴ 강사님의 git에 있는 eomcs-docs 와 eomcs-java 도 동일한 방식으로 clone

ㄴ 강사님이 파일 1개 추가하여 강사님 repository 업데이트 => 현재 위에서 repository 를 clone 한 상태이므로 pull 을 이용해 최신으로 업데이트

 

 

Gradle 빌드 도구 설치

windows

 

 

 

 

C: 드라이브에 tools 라는 폴더 생성

 

ㄴ JAVA_HOME 환경변수 설정때와 동일하게 설정

 

ㄴ 설정 끝난 후 PowerShell 다시 열기 

 

ㄴ PowerShell 에서 gradle 버전 확인

 

** 참고 

build.bat => 윈도우용

 

macOS

ㄴ brew 명령을 이용하여 gradle 설치

 

 

 

소프트웨어 형상관리 시스템

ㄴ SCM : Software Configuration Management System
ㄴ 형상 관리 시스템은 버전 관리 시스템이라고도 함
ㄴ 여기서 형상 관리 시스템은 보다 전체적인 소프트웨어 개발 프로세스와 관련하여 학술적인 의미를 갖는 반면, 버전 관리 시스템은 실무적인 의미를 더 강조하며, 주로 개발자 간의 협업과 코드 변경의 추적을 중점으로 함
변경사항들을 추적하고 통제함 => 전과 후 상태를 추적하고 통제함

1. 로컬 버전 관리 시스템

RCS

ㄴ Revision Control System
ㄴ 로컬에서 동작하는 단일 사용자 버전 관리 시스템으로 프로젝트를 데이터베이스(DB)에 저장하고 꺼내오기도 함
ㄴ 소스 코드와 같은 텍스트 파일의 개별 버전을 추적하고 관리하기 위한 버전 관리 시스템
ㄴ 파일 단위로 개별 버전을 관리하며, 중앙 서버 없이 사용자의 로컬 시스템에 저장된
ㄴ 분산 작업을 지원하지 않아 개발자들은 중앙 서버에 연결하여 작업하며, 네트워크 연결이 끊어지면 작업할 수 없음

2. 중앙 집중식 버전관리

ㄴ Subversion(SVN) 과 CVS(Concurrent Versions System) 가 있음
ㄴ 서버에 문제 발생 시 모든 이력을 일을 수 있음
=> 서버 저장소에 문제 방생 시 모든 변경 이력 복구 불가
ㄴ 서버 저장소(Remote)에서 project 를 checkout 해서 PC (local) 에 최신 프로젝트를 가져올 수 있음

SVN

ㄴ Subversion
ㄴ 클라이언트-서버 아키텍처를 가지고 있음
ㄴ 파일과 버전은 중앙 서버에 저장되며, 개발자는 중앙 서버와 통신하여 작업함


CVN

ㄴ Concurrent Versions System
ㄴ SVN과 유사한 클라이언트-서버 아키텍처를 가지고 있음
ㄴ SVN과는 달리 파일 수준이 아닌 디렉토리 수준에서 변경을 관리함
ㄴ 분산 작업을 지원하지 않아 개발자들은 중앙 서버에 연결하여 작업하며, 네트워크 연결이 끊어지면 작업할 수 없음.


3. 분산 버전 관리

ㄴ 기존의 중앙집중식 버전 관리 시스템과 달리, 여러 개발자가 동시에 작업하고 변경 내용을 공유하며 작업할 수 있는 유연성을 제공

서버 문제 발생 시 local 저장소를 서버에 백업하면 됨

ㄴ local 에 있는 project 를 꺼내고(checkout), 편집 후 저장을 함(commit)

ㄴ 여기서 clone 은 서버에서 project 를 가져오는 명령어 이고, push 는 서버에 올리는 명령어임

 

 

$ git clone 저장소 URL [Local 디렉터리명]

 

$ git add docs/프로그래밍_개론.pdf

$ git add .

 

$ git commit -m "백업 이유"

 

$ git push

 

$ git pull