분류 전체보기 136

[Git & GitHub 4] git merge, merge commits, resolving merge conflicts

git merge, resolving merge conflictsgit mergegit merge 명령어를 통해 독립적인 브랜치에서 작업한 것을 통합(병합)할 수 있습니다.브랜치를 다루는 전략은 다양합니다.Fast-forwardFast-foward는 일반적인 전략으로,main(master) 브랜치는 손대지 않고,다른 기능 브랜치를 만들어 main 브랜치에 merge하는 것입니다.여러 번의 commit내역이 있는 branch를 HEAD에 병합합니다.(특정 commit 간 병합이 아닙니다)따라서 HEAD를 기준 branch(main, master)로 이동 후, 병합합니다.git switch maingit merge featuremain branch의 레퍼런스 포인터가 feature branch의 commit..

SCM/Git 2024.05.05

[Git & GitHub 3] Branch, HEAD, git branch(생성, 삭제, 이름 변경), 브랜치 이동(git checkout, git switch)

Branch, HEAD, git branch(생성, 삭제, 이름 변경), 브랜치 이동(git checkout, git switch)git에서 commit을 하면 commit은 숫자와 문자가 연속적으로 조합된 특이한 해시를 갖습니다.현재 커밋은 이전 커밋(부모 커밋)을 참조합니다.기본적인 커밋은 직선 형태를 띕니다.각각의 작업은 서로 영향을 미치지 않고 독립적으로 이루어져야 합니다. 그런데 다른 사람들이 동시에 작업을 한다면,위와 같이 순차적인 형태의 커밋 구조는,병행 작업한 코드를 병합하거나 최신화하는 등 형상 관리에 어려움이 있을 것입니다. 이 때 필요한 것이 Branch(브랜치)입니다.BranchBranch는 깃의 가장 특정적인 기능이며 일종의 타임라인입니다.사용자가 원할 때마다 별도의 콘텍스트를 생..

SCM/Git 2024.05.04

[Git & GitHub 3] Atomic Commits, Commit Message

1. Atomic Commits; 커밋을 원자적으로 유지하기하나의 주제에 속한 것만 커밋하는 것을 권장합니다.코드리뷰, undo, rollback이 용이해지기 때문입니다.따라서 커밋을 단일 작업에 집중할 수 있도록 분류해야 합니다. (파일 하나를 커밋하라는 것이 아닙니다, 기능, 변화, 수정 등 기본 단위 별로 커밋하라는 것을 의미합니다)예컨대 사용자 계정 기능은 로그인 기능, 로그아웃 기능 등으로 구분할 수 있습니다.2. Commit Message메시지 작성을 위한 에디터git commit 시 긴 내용을 포함한다면 git commit -m 사용이 어려울 수 있습니다.이 때, 에디터를 사용합니다.특정 에디터를 사용하도록 설정하려면 git config 명령어를 사용합니다.공식 문서에 특정 에디터 별 명령어..

SCM/Git 2024.05.04

[Git & GitHub 2] git init, git status, git add, git commit [-m] [--amend], git log [--pretty], .gitignore

git init, git status, git add, git commit [-m] [--amend], git log [--pretty], .gitignore0. Git Repository; Git Repo; 깃 저장소, 깃 작업공간Repository(Repo)란 파일(또는 프로젝트)을 추적하고 관리하는 작업 공간으로,프로젝트의 변경사항을 담고 있습니다.각 Repository는 독립된 프로젝트입니다.Git을 사용하려면 각각의 프로젝트 폴더에 가서 Git Repository를 생성하도록 해야합니다. Git 명령어에 대한 것은 Git 홈페이지에서 찾아볼 수 있습니다.https://git-scm.com/docs Git - ReferenceReferencegit-scm.com1. git init, git sta..

SCM/Git 2024.05.03

[Git & GitHub 1] Git 설정(이름, 이메일), GitKraken 설치

Git 설정Git을 설치했다면,작업을 수행하는 대상을 식별할 수 있도록 이름과 이메일을 설정합니다. git config --global user.name "이름"global 옵션을 사용하여 user.name 인스턴스 사용시 "이름"을 가져오도록 합니다.이메일도 동일하게 설정합니다.git config --global user.email 이메일주소저는 제 깃허브 이메일 계정으로 설정했습니다. 이제 Git 작업을 하면, 설정된 이름, 이메일이 드러나게 됩니다.GitKraken(깃 크라켄) 설치GitKraken은 Git GUI입니다.gitkraken을 검색하고, OS에 적합한 클라이언트를 다운로드합니다.이제 계정을 등록하고 사용합니다.

SCM/Git 2024.05.03

[Git & GitHub 0] Git이란?, Git vs. GitHub

1. Git 이란?Git은 인기 있는 무료 오픈 소스 버전(형상) 관리 시스템(VCS; Version Control System) 입니다.(VCS에는 Git 이외에도 CVS, SVN 등이 있습니다)버전 관리 시스템이란? VCS; Cersion Control SystemVCS란 파일의 변화를 시간에 따라 추적하고 관리하는 데 도움을 주는 소프트웨어입니다. 파일의 변화를 비교하고 특정 버전으로 되돌리거나,변화를 공유할 수 있도록 합니다.따라서 여러 명의 개발자가 하나의 프로젝트를 병행 작업(+ 이슈 해결)할 때 큰 도움이 됩니다. 개발뿐만이 아니라 형상관리가 필요한 분야라면 Git이 사용되기도 합니다.(논문, 교과서, 에세이 등) GUI와 CMD를 통해 사용할 수 있습니다.CMD(터미널)가 빠르고, GUI가..

SCM/Git 2024.05.03

[Microservices] SpringBoot 3, Eureka, MSA 데모 프로젝트

0. MSA란?마이크로 서비스 아키텍처, MSA는 애플리케이션을 구성하는 소프트웨어 개발 접근 방식입니다.MSA는 느슨하게 결합도를 가졌습니다.MSA는 독립적으로 배포 가능한 서비스의 모음으로 구성됩니다.MSA의 각 서비스는 특정 기능을 수행하도록 되어있습니다.정의된 API를 통해 다른 서비스와 통신합니다. 각 서비스별로 개발, 배포할 수 있기 때문에 더 쉽게 업데이트할 수 있습니다.(더 빠른 릴리즈 주기를 가집니다) 현재 게시글에서 구현할 MSA는 아래와 같습니다.1. 애플리케이션의 gateway가 클라이언트의 요청을 받고2. Discovery server에 등록된 서비스를 바탕으로 리디렉션합니다.리디렉션은 HTTP 통신을 기반으로 진행합니다.Config server에서 각 애플리케이션의 구성 관리를 ..

Java 2024.05.01

[JPA(Jakarta Persistence API)] JPQL 문법(경로 표현식, 페치 조인, 다형성 쿼리, 엔티티 직접 사용, Named 쿼리, 벌크연산)

경로 표현식 JPQL에서 경로 표현식을 통해 ( . 점으로) 객체 그래프를 탐색할 수 있습니다. select m.name// 상태 필드로 그래프를 탐색 from Member m join m.team t// 단일 값 연관 필드 (단방향 연관관계) join m.orders o// 컬렉션 값 연관 필드 (orders 가 컬렉션인 경우) where t.name = 'A' 상태필드 상태 필드(state field)는 단순히 값을 저장하기 위한 필드이며, 더 이상 탐색할 수 없습니다. //JPQL select m.name, m.age from Member m //SQL select m.name, m.age from Member m 연관필드 연관 필드(association field)는 연관관계를 위한 필드입니다. ..

Java 2024.03.15

[JPA(Jakarta Persistence API)] JPQL 문법(SELECT, PAGING, JOIN, 서브쿼리, 조건식, 함수)

JPQL, Java Persistence Query Language JPQL은 객체지향 쿼리 언어이기 때문에, 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리합니다. JPQL은 SQL을 추상화해서 DB에 독립적입니다. select m from Member as m where m.age > 30 엔티티와 속성은 대소문자를 구분합니다(Member, age). JPQL 키워드는 대소문자를 구분하지 않습니다(SELECT, FROM, where). 테이블 이름이 아니라 엔티티 이름을 사용해야합니다. 별칭(as)을 사용해야 합니다(m). (SQL과 동일하게 as는 생략할 수 있습니다) TypeQuery, Query TypeQuery는 반환타입이 명확할 때 사용합니다. TypeQuery query..

Java 2024.03.14

[JPA(Jakarta Persistence API)] 다양한 쿼리 방법과 예시

DB에 요청하기 위해 SQL문을 사용합니다. JPA(Jakarta Persistence API)는 JPQL, JPA Criteria, QueryDSL, 네이티브SQL, JDBC API 등 다양한 쿼리 방법을 지원합니다 JPQL JPA 사용에 있어 토대가 되기 때문에 중요합니다. String jpql = "select m from Member m where m.age > 30"; List result = em.createQuery(jpql, Member.class).getResultList(); 객체 지향 쿼리 언어로, SQL 문법과 유사하며, SQL을 추상화하여 DB에 독립적입니다. SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN을 지원합니다. 가장 단순한 조회 방법입니다...

Java 2024.03.14
728x90
반응형