# Back-End

    [Git] Git Flow 전략

    🔍 주제 Git Branch 전략 중 하나인 Gir Flow는 프로젝트를 전략적으로 관리할 수 있도록 하는 전략입니다. Git Flow전략에서의 브랜치 종류 5개 feature/{티켓기능} : 개발자가 특정 기능을 개발할 때 사용하는 브랜치 develop : 개발 브랜치, 기능 구현 완료 후 develop에 머지 release : 배포(출시)하기 위해 준비하는 브랜치, release 브랜치의 코드를 바탕으로 QA팀에서 QA를 수행 master : 실제 서비스로 런칭될 코드가 런칭되는 브랜치, 프로덕트 레벨 hotfix : 버그 수정 등 긴급 패치 시 사용하는 브랜치, 수정된 내용은 develop과 master에 동시에 머지 협업툴인 Slack, Jira와 함께 사용하면 더 효율적으로 사용할 수 있다. 개..

    [JPA] 연관 관계를 가진 엔티티의 생성

    다대일의 관계에서 데이터를 저장할 때 연관관계를 매핑시키는 방법에 대한 글입니다. 문제상황 "유저는 여러 개의 상점을 등록할 수 있다." 상점을 저장하기 위해 유저에 대한 정보를 갖게 해줘야 했습니다. (비슷한 경우는 게시물 저장 시 사용자의 정보 갖게 하기) 먼저 저장에 사용되는 Store 엔티티와 DTO를 알아보겠습니다. 👉 Store 엔티티 @Getter @NoArgsConstructor @Entity public class Store extends BaseTimeEntity { @Id @Column(name = "STORE_ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false..

    [JPA] hibernate.ddl-auto 옵션 정리

    hibernate.ddl-auto 속성이란? Spring Boot 서버가 실행될 때 연결된 DBMS의 스키마의 변경이 있을 때 어떤 방법으로 변경할 지 정하는 속성이다. 이때 사용할 수 있는 전략은 4가지가 있다. none: 변경하지 않음 (대부분의 DB에서 디폴트값) update: 변경된 스키마만 적용 validate: 변경된 스키마가 있는지 확인하고 변경이 있다면 Application을 종료 create: 시작될 때 테이블을 DROP 하고 테이블을 다시 생성 create-drop: 시작과 종료에서 모두 drop 개발 초기 단계 : create 또는 update 테스트 서버 : update 또는 validate 스테이징, 운영 서버 : validate 또는 none

    [Git] remote url 변경

    변경 전 확인 git remote -v 변경 (fetch, pugh 모두) $git remote set-url 변경 후 확인 git remote -v

    인증과 인가란?

    📖 인증이란? (Authentication) 보호된 리소스에 접근하는 것을 허용하기 이전에 등록된 유저의 신원을 입증하는 과정 📖 인가란? (Authorization) 요청된 리소스에 접근할 수 있는 권한이 있는 인증된 유저인지 입증하는 과정 인증된 사용자만이 인가 받을 수 있다. 인증된 사용자만이 인가받을 수 있다. 인가 받은 "인증된 사용자"만이 요청된 자료에 접근할 수 있다. 인증과 인가의 방법 인증하기 : Request Header 인증 유지하기 : 브라우저의 쿠키, Session 안전하게 인증하기 : Server 효율적으로 인증하기 : Token (Ex: JWT : Json Web Token) 다른 채널을 통해 인증하기 : OAuth 1. Request Header 사용자는 Request Hea..

    [Git] Commit message 작성 규칙

    Git Commit 메시지 관련한 글을 퍼옴 출처 : https://meetup.toast.com/posts/106 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 제목과 본문을 한 줄 띄워 분리하기 제목은 영문 기준 50자 이내로 제목 첫글자를 대문자로 제목 끝에 . 금지 제목은 명령조로 본문은 영문 기준 72자마다 줄 바꾸기 본문은 어떻게보다 무엇을, 왜에 맞춰 작성하기 커밋 메시지 성격 ⭐ feat : 새로운 기능에 대한 커밋 🛠 fix : 버그 수정에 대한 커밋 🧱 build : 빌드 관련 파일 수정에 대한 커밋 👏 chore : 그 외 자잘한 수정에 대한 커밋 ⚒ refactor : 코드 리팩토링에 대한 커밋 🎨 style : 코드 스타일 혹은 포맷 등에 관한 커밋 ✏ docs : 문서 수..

    ORM 과 SQL Mapper 비교

    ORM vs SQL Mapper 얼마 전 [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 라는 도서를 읽으며 처음 ORM이라는 기술을 접했다. 이전에 회사에서 접했던 스프링 프로젝트에서는 Ibatis 혹은 Mybatis(SQL Mapper)를 이용하여 직접 작성한 SQL문으로 RDB에 질의를 하고 그 결과를 객체에 매핑을 시켜줬었는데, 도서를 읽으며 토이프로젝트에 JPA라는 기술을 사용하니 SQL 구문을 직접 작성하지 않고 간단한 CRUD는 모두 처리할 수 있어 편리하였다. 지금까지 스프링 프로젝트를 진행하며 사용해본 기술에 대해 정리하고자 글을 작성한다. 📝 영속성(Persistence) 먼저 데이터가 갖는 특성 중 영속성을 알아본다. 영속성이란 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는..

    [VS Code] VS Code 프로젝트 Github에 올리기, 연동하기

    🌸 사전 작업 1. VS Code 기본 터미널을 Git Bash로 사용하기 kingpiggylab.tistory.com/281

    [VS Code] VS Code 기본 터미널을 Git Bash로 설정하기

    1. [Ctrl + ,] 명령어로 설정 열기 2. 설정 검색 칸에 terminal.integrated.shell.windows 를 입력 3. 설정에 하단 속성 추가하기 "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe" 경로도 확인할 것

    [Git] fatal: couldn't find remote ref master

    Repository의 최상위 브랜치 이름이 main 이었음. (이클립스에서 올릴 때 Default가 main인듯) Github에서 master로 이름을 바꿔주고 다시 Pull