전체 글
-
[git] 실제 프로젝트에 적용하는데 필요한 tipGit 2021. 8. 20. 20:48
1. git branch 활용 부서마다 다르지만, 브랜치를 만들기 전에 이슈 생성을 먼저 진행합니다. # 참고 사이트 : github issue template site 부서에서 진행하는 형식에 맞게, 브랜치 이름 및 컨벤션을 지켜야 합니다. # 참고 사이트 : git/github branch standards & conventions site 커밋 메시지를 재밌게 남기기 위해서 깃모지를 사용하기도 합니다. # 참고 사이트 : gitmoji site 2. commit 활용 1) checkout을 활용한 커밋 '이동' HEAD로부터 몇번 째 혹은 해당 commit_id로 이동할 수 있습니다. 이때 임시 브랜치(?)로 해당 커밋이 나타나고, 해당 커밋의 소스파일을 새롭게 커밋하고싶다면 merge 작업을 거치..
-
[git] workflowGit 2021. 8. 20. 00:14
팀원들과 프로젝트를 진행하면 필연적으로 git을 사용합니다. 혼자가 아닌 다양한 개발자와 협업하기 위해서는 'branch간의 규칙'을 정해야하고 이를 'git branch strategy'라고 합니다. 만약 규칙이 정해져 있지 않다면 "어느 branch에 push해야되지?", "급하게 수정 후 배포해야되는데 어떤 branch가 최신이지?"에 대한 고민이 생깁니다. 즉, 여러명이서 git을 '잘', '효율적으로' 사용하고 싶어 다양한 work flow(작업 흐름)가 존재합니다. 여기에는 git-flow, github-flow gitlab-flow 등 다양한 모델이 존재합니다. 1. git flow 항상 유지되는 메인 브랜치 (master, develop)와 일정 기간 동안만 유지되는 보조 브랜치 (feat..
-
[git] GithubGit 2021. 8. 13. 15:08
1. github란 'git 원격 저장소'를 제공 해주는 서비스입니다. git 원격 저장소를 지원해주는 서비스는 github, gitlab, wiki 등이 있습니다. 필요한 이유 팀 개발 시 다른 사람과 작업 내용을 공유하여 '협업' 할 때 유용합니다. ex) fork, pr, merge etc 개인 프로젝트시 '백업용'으로 유용합니다. 소스코드 '공개용'으로 유용합니다. 2. 원격 저장소 명령어 1) git remote 원격 저장소 관련 명령어입니다. $ git remote add remote_alias remote_url github 원격 저장소 url의 '별칭'을 지정합니다. 이떄, remote_url은 .git 끝까지 복사하고, https로 연결된 링크를 가져오는 것이 좋습니다. $ git rem..
-
[git] CommandGit 2021. 8. 12. 22:52
1. git 기본 명령어 $ git init 명령어 $ git init 현재 디렉토리에서 git 버전 관리함을 선언합니다. 이때 .git directory가 생성됩니다. $ git config 명령어 $ git config --global user.name 'name' $ git config --global user.email 'email@gmail.com' git 유저명 및 이메일을 설정하는 명령어입니다. 만약 git commit 할 때 로그인이 안되어 있으면 에러가 발생해서 위 방식으로 로그인 해야합니다. $ git add 명령어 $ git add test.txt $ git add . add 명령어는 해당 파일을 추적하겠다는 의미인데, 추적된 파일들은 staging area[.git directory..
-
[git] IntroduceGit 2021. 8. 11. 15:20
1. git이란? 소스코드를 효과적으로 관리하기 위한 '분산형 버전 관리 시스템[DVCS]'입니다. Q) 버전 관리 시스템이란? A) 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템입니다. 프로젝트 버그시 누가 문제를 일으켰는지 '추적'할 수 있습니다. 파일을 잃어버리거나 잘못 고쳤을 때 원하는 버전으로 쉽게 '복구'할 수 있습니다. 팀 프로젝트시 branch, merge 등 '협업'을 수월하게 할 수 있습니다. Q) Distributed Version Control System이란? A) 단순히 서버 파일의 마지막 버전 스냅샷만을(특정 버전의 소스코드) 저장하지 않고, 로컬 저장소에 델타, 스냅샷 등의 모든 히스토리를 복제합니다. 만약 서버에 문제가 생기면 로..
-
Chapter 3. Java Virtual MachineJava 2021. 7. 4. 22:36
1. JVM이란 자바 가상 머신으로 아래 2가지의 특징을 가능하게 한다. 자바 언어로 개발된 프로그램은 소스파일을 수정하지 않아도, JRE가 설치된 모든 OS에서 실행가능하다. JVM에 존재하는 Garbage Collector가 자동으로 메모리를 관리한다. ※ Java SE(Java Standard Edition)는 JRE와 JDK로 구성된다. JRE (Java Runtime Environment)는 JVM, 라이브러리, API 등의 '실행 환경'을 포함한다. JDK (Java Development Kit)는 JRE에 추가적으로 컴파일러를 포함한다. 이미 개발된 프로그램만 실행시킬목적이라면 JRE를 설치하면 되고, 프로그램을 개발할려면 JDK를 설치하면된다. 2. 이식성 '자바 파일'을 컴파일하여 '클래..
-
Chapter 2. Java Memory & Variable TypeJava 2021. 7. 4. 19:02
1. Memory Structure Heap Area : 런타임 도중 생성되는 영역으로 JVM에 의해 메모리 할당/해제가 빈번히 일어난다. Method Area : 전역변수, 멤버 변수, 스태틱 변수, 클래스 정보 등이 포함된다. static 변수는 클래스 당 하나가 생성되며 모든 객체들이 공유한다. 클래스 로딩 시 생성되며 클래스가 해제할 때 소멸된다. JVM Stack : LIFO 구조로 함수와 관련된 정보가 포함된다. 함수 리턴 주소, 파라미터 정보, 지역 변수 등이 포함된다. Native Method Stack : C, C++ 등 Native 언어에 필요한 정보들이 포함된다. PC Register : 다음 수행할 Instruction 주소가 포함된다. 2. Primive Type vs Refere..
-
Chapter 1. Object Oriented ProgrammingJava 2021. 7. 4. 17:55
1. 객체지향이란 '모듈'별로 개발하고, 이를 '조립'하는 프로그래밍 방법론이다. 여기서 말하는 모듈은 '객체' 혹은 '클래스'를 의미한다. 클래스란 '설계도', 혹은 '붕어빵 틀'로 표현되며 '멤버 변수', '멤버 함수', '생성자'로 구성된다. 객체란 '설계도를 바탕으로 생성된 실체', 혹은 '붕어빵'으로 표현되며 '클래스를 실제 실행한 것'이다. 2. OOP 특징 캡슐화 : 클래스의 일부 데이터를 '숨길수도' 혹은 자식 클래스에게 '상속하지 않도록' '접근 제한자'를 둠으로 모듈별로 캡슐화가 가능하다. 예를 들어 어떤 객체의 멤버 변수로 score 변수는 0부터 100까지의 값만 설정 될 수 있다. 개발자가 해당 데이터를 바로 접근하여 소수, 혹은 매우 큰 값등 이상 데이터를 넣을 수 있다. 따라서..