컴파일러, JVM버전과 클래스 파일(바이트코드)에 대한 이야기로 시작헤보자. JVM은 Bytecode 실행에 대하여 하위호환성을 보장한다. 높은 버전의 JVM은 낮은 버전의 컴파일러가 생성한 바이트코드는 실행할 수 있다. 그러나 낮은 버전의 JVM은 자기보다 높은 버전의 컴파일러가 생성한 바이트코드는 실행할 수 없다. *컴파일 시 호환되는 JVM의 버전을 하위버전도 호환되도록 설정해주어야 한다. *컴파일 시 같은 버전의 JVM만 호환되도록 설정할 수도 있다. 그러면 버전관리를 할 때, java 소스파일을 컴파일 한 .class 파일을 보관해야 하는지 의문이 생긴다. 버전 관리 시스템의 관리 대상을 생각해보자. 아래의 항목들은 버전 관리 시스템에서 관리해줘야 하는 대상일까? 소스파일 문서 설정파일 개발도구..
충돌이 뭐요? 버전관리 시스템에서 충돌이란 무엇이고 언제 발생할까? 충돌은 부딪히는 걸 말하는데, 깃에서는 로컬 리포지토리 => 리모트 리포지토리로 Push 하는 내용이 겹치는 것을 말한다. 두 개발자가 같은 파일에 대해서, 같은 버전에 대해 다른 작업을 해서 둘 다 서버에 Push 하려고 할 때 충돌이 발생한다. 깃 서버는 늦게 보낸 쪽의 Push를 거절한다. (reject) 혼자서도 의도적으로 충돌을 일으켜서 해결 실습을 해볼 수 있다. 리모트 리포지토리를 로컬에 두 개를 clone 한다. 그리고 같은 파일에 대해서 수정한 후 add >> commit >> push 해보면 된다. 그러면 늦게 한 쪽의 push가 reject 된다. 충돌은 어떻게 해결하는가? 방식은 한가지가 아니나 Merge 방식을 가..
Git, 깃의 기본적인 사용 방법을 알아보자. 깃이란 무엇인가? 깃은 분산형 저장관리 시스템의 한 솔루션이다. 분산형 버전관리 시스템을 깃이라고 부르는 것이 아니다. 분산형 버전관리 시스템을 구현한 소프트웨어 중 하나가 깃이다. 깃 서버(Git server) 중앙 집중형 버전관리 시스템과 유사하게 분산형 버전관리 시스템 또한 변경기록과 소스코드를 저장하는 서버가 있다. 깃에서는 그 서버를 ‘깃 서버’ 라고 부른다. (Git Server) 깃 클라이언트(Git client) 그리고 PC에서 깃 서버를 사용하기 위해 사용하는 소프트웨어는 Git Client(깃 클라이언트) 라고 한다. 깃허브는 뭔데? 깃이랑 깃허브가 무엇인지 혼동이 있을 수 있다. 깃은 위에서 말했듯이 분산형 버전관리 시스템을 구현한 소프트..
SCM이란? SCM은 Software Configuration Management의 약자이다. 경영학에서 사용하는 Supply Chain Management(공급망 관리)도 약자가 같아서 혼동하기 쉽다. 그 SCM이랑 이 SCM은 다르다. 더보기 공급망관리; SCM(Supply Chain Management)이란? 1. 공급망이란 어떤 경제활동을 위해 형성된 공급자 => 수요자의 모든 망을 말한다. (제품/서비스의 생산부터 소비를 경제활동이라고 하자) 2. 공급망(Supply Chain)에서 자원은 한정되어 있다. 3. 한정된 자원 하에서 어떻게 하면 가장 효율적인, 최대의 가치를 생산할 수 있을지를 논하는 것이 SCM이다. 참조해보면 좋을 글 https://www.samsungsds.com/kr/ins..