반응형

2019/11 4

Git 고급 브랜치 전략과 Gitflow

Git 고급 브랜치 전략 소개와 Gitflow를 통해 우리 프로젝트에 적용하는 방법에 대해 소개합니다. Vincent Driessen 의 브랜치 모델 Vincent Driessen가 제안한 고급 브랜치 전략으로 브랜치를 다음과 같이 분류하고 규칙을 정해 버전관리를 합니다. Main Branch master 현재 릴리즈되어있는 버전 또는 바로 릴리즈가 가능한 다음 버전 master 브랜치에 merge 가 발생하는 것은 곧 신규 릴리즈가 있다는 의미 발견된 모든 버그가 해결된, 정상적으로 동작하는 상태여야함 develop 다음 릴리즈를 위해 개발된 모든 기능들이 통합되어 관리되는 브랜치 모든 개발자가 함께 관리하는 브랜치, 항상 컴파일이 가능한 상태를 유지 Supporting branch feature 특정..

IT기본 2019.11.15

Netlify를 사용하여 정적 사이트 배포하기

근래의 웹개발은 주로 백엔드와 프론트엔드 영역을 나누어 개발하는 것이 주류가 되었습니다. 개인적으로 과거 JSP, jQuery 기반으로 개발된 웹사이트들은.. 두 번 다시는 겪고 싶지 않을 정도로 프론트엔드를 개발하는 기술들이 눈부시게 발전했고, 지금도 진행중입니다. 이런 추세때문인지 자연스레 정적 웹사이트를 쉽게 배포할 수 있는 서비스가 인기를 얻고있는데, 그 중 하나인 Netlify 를 소개합니다. 개요 Netlify는 JAMstack 혹은 SPA 형태로 개발된 프론트엔드 애플리케이션을 배포하는 것에 최적화된 서비스입니다. Gatsby와 같은 블로그를 배포하는 용도로 쓰이는 것으로 유명한데요. 이외에 Vue, React 등 많은 형태의 정적 애플리케이션을 배포할 수 있습니다. (참고로 Gatsby는 ..

IT기본 2019.11.14

Java ORM JPA과 객체지향 쿼리 사용(JPQL, Criteria, QueryDSL)

개요 예전부터 객체지향 언어인 자바와 관계형 데이터베이스간 패러다임의 불일치로 개발자들이 많은 불편함을 겪여왔다. 객체지향 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성 줄여주는 장치들을 제공 관계형 데이터베이스는 데이터 중심으로 구조화, 집합적인 사고가 필요하고 추상화, 상속, 다형성 같은 개념이 없음 연관관계를 표현할 때 객체는 타 객체 참조 (reference) 로, 관계형 DB 는 외래키로 표현하는 등 연관관계를 표현 객체를 테이블에 맞춰 모델링 class Member { String id; // MEMBER_ID 컬럼 사용 Long teamId; // TEAM_ID FK 컬럼 사용 String userName; } class Team { Long id; // TEAM_ID PK ..

Back-End/JPA 2019.11.04

Reflection Type을 활용해 JPA 공통 AttributeConverter 구현

얼마전에 JPA에서 사용할 공통 AttributeConverter 를 구현하면서 고민했던 점들을 정리한다. 공통 AttributeConverter 의 필요성 Entity와 테이블을 매핑하다보면 String, Integer, Long, LocalDateTime 외에 Json값이 저장되어있는 컬럼이나 코드값이 저장되어있는 컬럼의 경우 AttributeConverter 를 통해 Json 모델, Enum 과 매핑을 시킨다. // Entity @Entity public class UserEntity { @Converter(converter = UserStatusAttributeConverter.class) private Status status; @Converter(converter = UserOptionAttr..

Back-End/JPA 2019.11.04